SQL გამარტივებული აღმავალი. სამუშაო მონაცემთა ბაზა

ხშირად არსებობს გარკვეული შეკითხვათა შედეგების გამომავალი, მაგალითად, ანბანის მიხედვით. ამის გაკეთება, DBMS არსებობს სპეციალური ფუნქცია SQL ენაზე - დახარისხება. ამ შემთხვევაში, პროგრამისტი შეუძლია აირჩიოს რომელი სფეროები და რა მიზნით, ეს მოხდება სასურველი შედეგის მისაღწევად, სერიოზული პროგრამირების უნარ-ჩვევების გარეშე.

რა არის დახარისხება მონაცემთა ბაზაში?

მონაცემთა ბაზებთან მუშაობა მუდმივად უკავშირდება იმ ინფორმაციას, რომლისთვისაც აუცილებელია იმისათვის, რომ დადგინდეს ბრძანება. ამჟამად, არსებობს რიგი DBMS, რომელსაც აქვს ფუნქციების ფართო სპექტრი, რომელთა პოპულარულიც არის Oracle და MS SQL. მონაცემთა ბაზაში მუშაობის ერთ-ერთი მთავარი პროცედურის დახარისხება თითოეულ მათგანს სპეციალური ჩამონტაჟებული ფუნქციით უზრუნველყოფს.

მონაცემთა რეიტინგი საშუალებას გაძლევთ გამარტივდეს ძებნის პროცესი, ისევე როგორც ზოგიერთ შემთხვევაში ეხმარება გარკვეული ამოცანების გადაჭრას ან პროგრამის ფუნქციონირების ოპტიმიზაციას. SQL დახარისხება ხორციელდება ცალკე შერჩეული ველით, და საჭიროების შემთხვევაში, თუ თქვენ გაქვთ იგივე ღირებულებები ამ სფეროში ელემენტებში, შეგიძლიათ მიუთითოთ დამატებითი პარამეტრები, რომლებიც განსაზღვრავს რიგების ადგილმდებარეობას.

დალაგების გუნდი

მონაცემთა ბაზაში SQL დახარისხება უზრუნველყოფილია წესრიგის გამოყენებით. ასე რომ, მონაცემთა ბაზიდან ინფორმაციის გავრცელებისას, სვეტების და ცხრილების მითითების შემდეგ წაიკითხავს, \u200b\u200bთქვენ უნდა მიუთითოთ სახის ბრძანება, რის შემდეგაც აუცილებელია საველე ან დარგების განსაზღვრა, რომლის მიხედვითაც დახარისხება მოხდება.

მაგალითად, თუ თქვენ უნდა მიიღოთ მონაცემები ხალხის მაგიდის სახელით და ასაკობრივი დარგებისგან, ხოლო ანბანური წესრიგის შედეგად, სახელით სვეტის მეშვეობით, ის ხელს შეუწყობს შემდეგ შეკითხვას: აირჩიეთ სახელი, ასაკი ადამიანებისგან.

როგორ შევქმნათ სახის შეკვეთა?

თანამედროვე პირობებში სხვადასხვა ამოცანების დაწყებამდე სხვადასხვა ამოცანები და ზოგჯერ აუცილებელია წინასწარ განსაზღვრული, რა მიზნით მიიღებს შედეგებს - დამღუპველი ან აღმავალი, ალფავიტის ან საპირისპირო მიზნით? ამისათვის, SQL ენაზე, დახარისხების ბრძანება განისაზღვრება მოთხოვნის საკვანძო სიტყვით. დარგებისა და ცხრილების შერჩევის შემდეგ, საიდანაც სასურველი ინფორმაცია მიიღება, თქვენ უნდა დაამატოთ ბრძანება, რის შემდეგაც თქვენ მიუთითეთ სვეტის სახელი, რისთვისაც აუცილებელია დასალაგებლად.

საპირისპირო ბრძანების მისაღებად, თქვენ უნდა მიუთითოთ DESC პარამეტრი სახელით. თუ თქვენ გააქტიურებთ ნივთები ორ ან მეტ კრიტერიუმზე, სვეტები მითითებულია მძიმით, ხოლო პრიორიტეტი უნდა მიენიჭოთ იმ სფეროს, რომელიც პირველ სიაში მიდის. აღსანიშნავია, რომ საპირისპირო მიზნით საპირისპირო წესრიგის სამშენებლო ნივთების შესაქმნელად მხოლოდ ერთი ველი ითვალისწინებს, რის შემდეგაც ეს საკვანძო სიტყვა მითითებულია, თუ საჭიროა, საჭიროების შემთხვევაში, თქვენ უნდა მიუთითოთ ყველა შერჩეული სვეტში.

ალტერნატიული დახარისხება მეთოდები

არარსებობის უნარი გამოიყენოს ჩამონტაჟებული SQL დახარისხების ფუნქცია, შეგიძლიათ დაწეროთ ერთ-ერთი ცნობილი ალგორითმები. თუ აუცილებელია ელემენტების სწრაფი შეკვეთის მისაღწევად, აუცილებელია მეთოდის გამოყენება ელემენტების haunting მასივის საფუძველზე. რეიტინგის "ბუშტის" მეთოდებიც დიდი პოპულარობით სარგებლობს, რომელშიც ორი მიმდებარე ელემენტი იცვლება არასწორი ადგილმდებარეობის შემთხვევაში, "პირამიდული დახარისხება", ყველაზე დიდი ელემენტის გაგზავნა სიის დასასრულს, ასევე "დახარისხების ჩანართებს ", რომელიც წინასწარ განსაზღვრავს თითოეული ელემენტის ადგილმდებარეობას.

ალგორითმის პირადად წერა მნიშვნელოვნად არ გაზრდის დახარისხების სიჩქარეს, თუმცა ხელს უწყობს პროგრამირების უნარ-ჩვევების განვითარებას და ასევე საშუალებას მისცემს შეცვალოს პროცესის შეცვლა კონკრეტული მონაცემთა ბაზის შესაქმნელად პროგრამის ეფექტურობის გასაუმჯობესებლად.

შეკვეთა შეთავაზებით წვდომის ჩანაწერები დაბრუნდა მოთხოვნის, აღმავალი ან დაღმავალი ღირებულებების განსაზღვრულ სფეროში (სფეროებში).

Სინტაქსი

გადარჩევა list_pole
მდებარეობა. მაგიდა
სადაც. პირობები
[, საველე 2. ][, ...]]]

შეარჩიეთ ინსტრუქციები შემოთავაზებული წინადადების მიხედვით:

შენიშვნები

წესრიგის მიხედვით არ არის სავალდებულო. ეს უნდა იქნას გამოყენებული, როდესაც აუცილებელია მონაცემების ჩვენება დახარისხებული ფორმით.

ჩვეულებრივ, დახარისხების ბრძანებით გამოიყენება (დან Z, 0-დან 9-მდე). ქვემოთ მოყვანილი ორი მაგალითით, ნაჩვენებია დასაქმებულთა სახელების დასალაგებლად ბოლო სახელით.

აირჩიეთ LastName, FirstName
თანამშრომლებისგან.
შეკვეთა გვარი;
აირჩიეთ LastName, FirstName
თანამშრომლებისგან.
შეკვეთა LastName ASC- ის მიერ;

დასალაგებლად დაღმავალი (მე ვარ 9-დან 0-მდე), დაამატეთ დაცული Desc Word- ს თითოეული ველის დასასრულს, რომელსაც გსურთ ჩანაწერების დასალაგებლად. ქვემოთ მოყვანილ მაგალითში, ხორციელდება ხელფასის დამაკმაყოფილებელი დასაქმების სახელები.

აირჩიეთ გვარი, ხელფასი
თანამშრომლებისგან.
შეკვეთა ხელფასი Desc, LastName;

თუ ბრძანებით განაჩენი, მიუთითეთ MEMO ტიპის ან ოლეის ობიექტების მონაცემების შემცველი ველი, შეცდომა მოხდება. Microsoft Access DBMS Core არ უჭერს მხარს დახარისხებას ამ ტიპის სფეროებში.

წინადადება წინადადება, როგორც წესი, ბოლო ელემენტი SQL ინსტრუქცია.

შეკვეთა BA გთავაზობთ დამატებით სფეროებს. პირველი, ჩანაწერები დალაგებულია პირველი სასჯელის მიერ მითითებულ სფეროში. შემდეგ, პირველი სფეროს იმავე ღირებულებებთან, მეორეზე მითითებული ველით და ა.შ.


შემდეგი ციკლი:

ნაბიჯი 8. მარტივი დახარისხება

თუ თქვენი SQL- ის შეკითხვის შედეგი უნდა იყოს გარკვეული ანგარიშის წყარო მასალა, მონაცემების დახარისხების საკითხი ძალიან მნიშვნელოვანია, რადგან ის კითხვის ნიშნის ქვეშ მყოფი პირის მიერ არ არის ძალიან რთულია მისი ინფორმაციის მოპოვება . შეკითხვის შედეგების სვეტების მონაცემების დასალაგებლად (ჩვენს შემთხვევაში, ცხრილის სფეროებში), SQL- ში გამოიყენება ბრძანების საკვანძო სიტყვა. ქვემოთ მოყვანილი უმარტივესი დახარისხების მაგალითი. თხოვნით 2-ის მოთხოვნის მიღება: "მარტივი შერჩევის კრიტერიუმით." ჩვენ დასაქმებულებს სფეროს SEMNAME (სრული სახელი) მიერ.

აირჩიეთ s_name, s_experience დან d_staff სადაც s_experience

შედეგების SQL შეკითხვის ერთი ველი.

ნაბიჯი 9. კომპლექსური დახარისხება

ხშირად, და კიდევ თითქმის ყოველთვის აუცილებელია მონაცემების დასალაგებლად ერთზე მეტი სვეტით და ყოველთვის არ არის აღმავალი შეკვეთა. SQL Syntax ვარაუდობს, ქვემოთ მოყვანილ მაგალითში, ჩვენ ვაჩვენებთ ჩანაწერებს უკვე ყველა თანამშრომელს მათი გამოცდილების დაკავებისას. თანამშრომლები იგივე გამოცდილებით, ჩვენ ვაგებთ ანბანის მიხედვით.

აირჩიეთ s_experience, s_name d_Staff შეკვეთის მიხედვით s_experience desc, s_name asc


SQL შეკითხვის შედეგების დასალაგებლად ორ სფეროში.

საკმაოდ ხშირად, დახარისხების საპირისპირო ბრძანება გამოიყენება ტიპის ტიპის სვეტით. მაგალითად, თარიღის მაღაზიებში, მაგალითად, ინფორმაციის ინფორმაციის თარიღი, მაშინ, როდესაც საპირისპირო დახარისხება, სიის დასაწყისში, არის ის ჩანაწერები, რომლებიც ცოტა ხნის წინ დაემატა დანარჩენთან შედარებით. იმ შემთხვევაში, როდესაც მოთხოვნა მონაცემთა ბაზისგან გამოცხადდება, ჩვენ მივიღებთ განცხადებების ჩამონათვალს მათი შესაბამისობის მიხედვით, რომელიც შეიძლება იყოს ძალიან სასარგებლო, რადგან თქვენ, როგორც წესი, კითხულობთ განცხადებებს ზემოდან ზემოდან და ყველას არ აჩვენებს მათ საინფორმაციო საიტებზე, მაგრამ მხოლოდ რამდენიმე ყველაზე "ახალი".

მომავალში, ჩვენ შეიძლება დაგჭირდეთ ჩვენი ნიმუშის დასალაგებლად - ტექსტის ან აღმავალი / დაღმავალი - ციფრული ღირებულებებისათვის. ასეთი მიზნებისათვის SQL არსებობს სპეციალური ოპერატორი შეკვეთა. .

1. შერჩეული მონაცემების დალაგება.

მოდით შევინარჩუნოთ ყველა ჩვენი მაგიდა პროდუქტის გაყიდვების ოდენობით, კერძოდ სვეტზე თანხა..

გადარჩევა * SUMPRODUCT- ის თანხის ოდენობით

ჩვენ ვხედავთ, რომ მოთხოვნას აქვს არალეგალური ჩანაწერები მოშორებით სფეროში თანხა.. დარწმუნდით, რომ დაიცვას ოპერატორების თანმიმდევრობა, ანუ. ტელეფონისტი ქალი შეკვეთა. უნდა წავიდეს მოთხოვნის დასასრულს. წინააღმდეგ შემთხვევაში, შეცდომის შეტყობინება მიიღება.

ასევე ოპერატორის ფუნქცია შეკვეთა. ეს არის ის, რომ მას შეუძლია დაალაგოთ მონაცემები სფეროში, რომ ჩვენ არ შევარჩიეთ თხოვნით, ანუ, საკმარისია მონაცემთა ბაზაში.

2. მრავალრიცხოვანი სფეროების მიხედვით.

ახლა მე დავუკავშირდები ჩვენს მაგალითს დამატებით სხვა სფეროში. მოდით იყოს ველი ქალაქი.რომელიც აჩვენებს პროდუქციის გაყიდვის ადგილს.

გადარჩევა * SUMPRODUCT- ის თანხის ოდენობით, ქალაქი

დახარისხების ბრძანება დამოკიდებულია საველე ადგილმდებარეობის შესახებ შეკითხვაზე. ეს არის, ჩვენს შემთხვევაში, პირველი მონაცემები დალაგებულია სვეტით თანხა.და მერე ქალაქი..

3. დახარისხების მიმართულებით.

მიუხედავად იმისა, რომ ნაგულისხმევი ოპერატორი შეკვეთა. ზემოხსენებული, ჩვენ ასევე შეგვიძლია დარეგისტრირდეთ დახარისხების ღირებულებები. ამის გაკეთება, თითოეული ველის დასასრულს, ჩვენ ოპერატორს ვაყენებთ Desc. (რომელიც სიტყვის შემცირებას წარმოადგენს Დაღმავალი).

გადარჩევა * SUMPRODUCT ბრძანებით თანხა DESC, ქალაქი

ამ მაგალითში, ღირებულება სფეროში თანხა. გაათავისუფლეს და სფეროში ქალაქი. - აღმავალი. ტელეფონისტი ქალი Desc. იგი გამოიყენება მხოლოდ ერთი სვეტისთვის, თუ აუცილებლობის შემთხვევაში, უნდა იყოს გათვალისწინებული თითოეული ველიდან, რომელიც მონაწილეობს დახარისხებაში.