თითოეული ჩვენგანი რეგულარულად ხვდება და იყენებს სხვადასხვა მონაცემთა ბაზას. როდესაც ჩვენ ვირჩევთ ელ.ფოსტის მისამართს, ჩვენ ვმუშაობთ მონაცემთა ბაზასთან. მონაცემთა ბაზები იყენებენ საძიებო სერვისებს, ბანკებს კლიენტების მონაცემების შესანახად და ა.შ.
მაგრამ, მიუხედავად მონაცემთა ბაზების მუდმივი გამოყენებისა, მრავალი დეველოპერისთვისაც კი პროგრამული სისტემებიერთი და იგივე ტერმინების განსხვავებული ინტერპრეტაციების გამო ბევრი „ცარიელი ლაქაა“. ჩვენ მივცემთ მონაცემთა ბაზის ძირითადი ტერმინების მოკლე განმარტებას SQL ენის განხილვამდე. Ისე.
Მონაცემთა ბაზა - ფაილი ან ფაილების ნაკრები შეკვეთილი მონაცემთა სტრუქტურებისა და მათი ურთიერთობის შესანახად. ძალიან ხშირად, მონაცემთა ბაზას უწოდებენ მართვის სისტემას - ეს არის მხოლოდ ინფორმაციის საცავი გარკვეული ფორმატით და შეუძლია მუშაობა სხვადასხვა DBMS-თან.
მაგიდა - წარმოვიდგინოთ საქაღალდე, რომელიც ინახავს გარკვეული ატრიბუტის მიხედვით დაჯგუფებულ დოკუმენტებს, მაგალითად, ბოლო თვის შეკვეთების სიას. ეს არის ცხრილი კომპიუტერში ცალკე ცხრილს აქვს თავისი უნიკალური სახელი.
Მონაცემთა ტიპი - ინფორმაციის ტიპი, რომელიც დასაშვებია შესანახად კონკრეტულ სვეტში ან მწკრივში. ეს შეიძლება იყოს ნომრები ან გარკვეული ფორმატის ტექსტი.
სვეტი და მწკრივი- ჩვენ ყველანი ვიმუშავეთ ცხრილებთან, რომლებსაც ასევე აქვთ რიგები და სვეტები. ნებისმიერი რელაციური მონაცემთა ბაზა იგივენაირად მუშაობს ცხრილებთან. რიგებს ზოგჯერ ჩანაწერებს უწოდებენ.
მთავარი გასაღები- ცხრილის თითოეულ რიგს შეიძლება ჰქონდეს ერთი ან მეტი სვეტი მისი ცალსახად იდენტიფიცირებისთვის. პირველადი გასაღების გარეშე, ძალიან რთულია სასურველი რიგების განახლება, შეცვლა და წაშლა.
SQL(ინგლისური - სტრუქტურირებული შეკითხვის ენა) შეიქმნა მხოლოდ მონაცემთა ბაზებთან მუშაობისთვის და ამჟამად არის სტანდარტი ყველა პოპულარული DBMS-ისთვის. ენის სინტაქსი შედგება მცირე რაოდენობის ოპერატორებისგან და ადვილად შესასწავლია. მაგრამ, მიუხედავად გარეგანი სიმარტივისა, ეს საშუალებას იძლევა sql შექმნამოთხოვნები რთული ოპერაციებისთვის ნებისმიერი ზომის მონაცემთა ბაზით.
1992 წლიდან არსებობს საყოველთაოდ მიღებული სტანდარტი სახელწოდებით ANSI SQL. ის განსაზღვრავს ოპერატორების ძირითად სინტაქსს და ფუნქციებს და მხარს უჭერს DBMS ბაზრის ყველა ლიდერს, როგორიცაა ORACLE. შეუძლებელია ენის ყველა შესაძლებლობის დაფარვა ერთ პატარა სტატიაში, ამიტომ მოკლედ განვიხილავთ მხოლოდ ძირითად SQL შეკითხვებს. მაგალითები ნათლად აჩვენებს ენის სიმარტივეს და შესაძლებლობებს:
მონაცემთა ბაზის ცხრილის ყველა სვეტი ინახავს იმავე ტიპის მონაცემებს. მონაცემთა ტიპები SQL-ში იგივეა, რაც სხვა პროგრამირების ენებში.
SQL-ში ახალი მონაცემთა ბაზების, ცხრილების და სხვა მოთხოვნების შესაქმნელად ორი გზა არსებობს:
ოპერატორის მიერ იქმნება ახალი მონაცემთა ბაზა მონაცემთა ბაზის შექმნა<наименование базы данных>; . როგორც ხედავთ, სინტაქსი მარტივი და ლაკონურია.
ჩვენ ვქმნით ცხრილებს მონაცემთა ბაზაში CREATE TABLE განაცხადის გამოყენებით შემდეგი პარამეტრებით:
მაგალითად, მოდით შევქმნათ საქონლის ცხრილი შემდეგი სვეტებით:
ჩვენ ვქმნით ცხრილს:
შექმენით მაგიდა საქონელი
(commodity_id CHAR(15) NOT NULL,
vendor_id CHAR(15) NOT NULL,
commodity_name CHAR(254) NULL,
საქონლის_ფასი DECIMAL(8,2) NULL,
commodity_desc VARCHAR(1000) NULL);
ცხრილს აქვს ხუთი სვეტი. სახელის შემდეგ მოდის მონაცემთა ტიპი, სვეტები გამოყოფილია მძიმეებით. სვეტის მნიშვნელობა შეიძლება იყოს ცარიელი (NULL) ან უნდა იყოს შევსებული (NOT NULL) და ეს განისაზღვრება ცხრილის შექმნისას.
მონაცემთა შერჩევის ოპერატორი ყველაზე ხშირად გამოყენებული SQL მოთხოვნაა. ინფორმაციის მისაღებად უნდა მიუთითოთ რა გვინდა ავირჩიოთ ასეთი ცხრილიდან. ჯერ მარტივი მაგალითი:
SELECT commodity_name FROM Commodity-დან
SELECT განცხადების შემდეგ ჩვენ ვაზუსტებთ სვეტის სახელს ინფორმაციის მისაღებად და FROM განსაზღვრავს ცხრილს.
მოთხოვნის შესრულების შედეგი იქნება ცხრილის ყველა სტრიქონი Commodity_name მნიშვნელობებით იმ თანმიმდევრობით, რომლითაც ისინი შევიდა მონაცემთა ბაზაში, ე.ი. ყოველგვარი დახარისხების გარეშე. შედეგის შესაკვეთად გამოიყენება დამატებითი ORDER BY პუნქტი.
მრავალ ველზე შეკითხვისთვის, ჩამოთვალეთ ისინი გამოყოფილი მძიმეებით, როგორც შემდეგ მაგალითში:
SELECT commodity_id, commodity_name, commodity_price FROM Commodity
შეკითხვის შედეგად შესაძლებელია მწკრივის ყველა სვეტის მნიშვნელობის მიღება. ამისათვის გამოიყენება "*" ნიშანი:
აირჩიეთ * საქონლისგან
ცხრილის მწკრივის დასამატებლად გამოიყენება SQL მოთხოვნები INSERT განაცხადით. დამატება შეიძლება გაკეთდეს სამი გზით:
სრული მწკრივის დასამატებლად, თქვენ უნდა მიუთითოთ ცხრილის სახელი და ახალი მწკრივის სვეტების (ველების) მნიშვნელობები. აი მაგალითი:
ჩადეთ საქონლის ღირებულებებში ("106", "50", "კოკა-კოლა", "1.68", "ალკოჰოლის გარეშე ,)
მაგალითი ამატებს ახალ პროდუქტს ცხრილში. მნიშვნელობები მითითებულია VALUES-ის შემდეგ თითოეული სვეტისთვის. თუ არ არის შესაბამისი მნიშვნელობა სვეტისთვის, მაშინ NULL უნდა იყოს მითითებული. სვეტები შევსებულია მნიშვნელობებით ცხრილის შექმნისას მითითებული თანმიმდევრობით.
თუ თქვენ დაამატებთ მწკრივის მხოლოდ ნაწილს, მკაფიოდ უნდა მიუთითოთ სვეტების სახელები, როგორც მაგალითში:
ჩასმა საქონელში (საქონლის_ID, გამყიდველის_იდენტიფიკატორი, საქონლის_სახელი)
VALUES ("106", "50", "კოკა კოლა")
ჩვენ შევიყვანეთ მხოლოდ პროდუქტის იდენტიფიკატორები, მომწოდებელი და მისი სახელი, ხოლო დანარჩენი ველები ცარიელი დავტოვეთ.
INSERT ძირითადად გამოიყენება რიგების დასამატებლად, მაგრამ ასევე შეიძლება გამოყენებულ იქნას SELECT განცხადების შედეგების დასამატებლად.
მონაცემთა ბაზის ცხრილის ველებში ინფორმაციის შესაცვლელად, თქვენ უნდა გამოიყენოთ განცხადება UPDATE. ოპერატორის გამოყენება შესაძლებელია ორი გზით:
UPDATE შედგება სამი ძირითადი ელემენტისგან:
განვიხილოთ მაგალითი. ვთქვათ ID=106 პროდუქტის ფასი შეიცვალა, ამიტომ ეს მწკრივი განახლებას საჭიროებს. ჩვენ ვწერთ შემდეგ ოპერატორს:
განაახლეთ საქონლის ნაკრები commodity_price = "3.2" WHERE commodity_id = "106"
ჩვენ დავაზუსტეთ ცხრილის სახელი, ჩვენს შემთხვევაში Commodity, სადაც განხორციელდება განახლება, შემდეგ SET-ის შემდეგ - სვეტის ახალი მნიშვნელობა და ვიპოვეთ სასურველი ჩანაწერი WHERE-ში სასურველი ID მნიშვნელობის მითითებით.
მრავალი სვეტის შესაცვლელად, მიუთითეთ რამდენიმე სვეტი-მნიშვნელობის წყვილი, რომლებიც გამოყოფილია მძიმეებით SET განცხადების შემდეგ. მოდით შევხედოთ მაგალითს, რომელშიც განახლებულია პროდუქტის სახელი და ფასი:
განაახლეთ საქონლის ნაკრები commodity_name='Fanta', commodity_price = "3.2" WHERE commodity_id = "106"
სვეტში ინფორმაციის წასაშლელად, შეგიძლიათ დააყენოთ NULL, თუ ცხრილის სტრუქტურა ამის საშუალებას იძლევა. უნდა გვახსოვდეს, რომ NULL არის ზუსტად "არა" მნიშვნელობა და არა ნული ტექსტის ან რიცხვის სახით. პროდუქტის აღწერილობის წაშლა:
განაახლეთ საქონლის ნაკრები commodity_desc = NULL WHERE commodity_id = "106"
SQL მოთხოვნები ცხრილის რიგების წასაშლელად შესრულებულია DELETE განაცხადით. გამოყენების ორი შემთხვევაა:
ცხრილიდან ერთი მწკრივის წაშლის მაგალითი:
DELETE FROM Commodity WHERE commodity_id = "106"
DELETE FROM-ის შემდეგ ვაზუსტებთ ცხრილის სახელს, რომელშიც სტრიქონები წაიშლება. WHERE პუნქტი შეიცავს პირობას, რომლითაც რიგები შეირჩევა წასაშლელად. მაგალითში ჩვენ ვშლით პროდუქტის ხაზს ID=106-ით. WHERE-ის დაზუსტება ძალიან მნიშვნელოვანია. ამ განცხადების გამოტოვება წაშლის ცხრილის ყველა მწკრივს. ეს ასევე ეხება ველების მნიშვნელობის შეცვლას.
DELETE განცხადება არ აკონკრეტებს სვეტების სახელებს ან მეტანიშნებს. ის მთლიანად შლის სტრიქონებს, მაგრამ მას არ შეუძლია წაშალოს ერთი სვეტი.
ჩვეულებრივ გამოიყენება ინტერაქტიულად ცხრილების, მონაცემთა ბაზების შესაქმნელად, მონაცემთა ბაზაში მონაცემების მართვის, შეცვლის, ანალიზისთვის და SQL Access მოთხოვნების განსახორციელებლად მოსახერხებელი ინტერაქტიული შეკითხვის დიზაინერის საშუალებით (Query Designer), რომლის გამოყენებითაც შეგიძლიათ შექმნათ და დაუყოვნებლივ შეასრულოთ ნებისმიერი სირთულის SQL განცხადებები.
სერვერზე წვდომის რეჟიმი ასევე მხარდაჭერილია, რომელშიც Access DBMS შეიძლება გამოყენებულ იქნას როგორც SQL მოთხოვნების გენერატორი ODBC მონაცემთა ნებისმიერი წყაროსთვის. ეს შესაძლებლობა საშუალებას აძლევს Access აპლიკაციებს ნებისმიერ ფორმატთან ურთიერთობისას.
ვინაიდან SQL მოთხოვნებს არ გააჩნიათ პროცედურული პროგრამირების ენების ყველა მახასიათებელი, როგორიცაა მარყუჟები, ფილიალები და ა.შ., DBMS მომწოდებლები ავითარებენ SQL-ის საკუთარ ვერსიას გაფართოებული ფუნქციებით. პირველ რიგში, ეს არის შენახული პროცედურების მხარდაჭერა და პროცედურული ენების სტანდარტული ოპერატორები.
ენის ყველაზე გავრცელებული დიალექტები:
MySQL DBMS განაწილებულია GNU ზოგადი საჯარო ლიცენზიით. არსებობს კომერციული ლიცენზია საბაჟო მოდულების შემუშავების შესაძლებლობით. როგორც განუყოფელი ნაწილი, ის შედის ინტერნეტ სერვერების ყველაზე პოპულარულ ასამბლეებში, როგორიცაა XAMPP, WAMP და LAMP და არის ყველაზე პოპულარული DBMS ინტერნეტში აპლიკაციების შემუშავებისთვის.
ის შეიქმნა Sun Microsystems-ის მიერ და ამჟამად იმართება Oracle Corporation-ის მიერ. მხარს უჭერს მონაცემთა ბაზებს 64 ტერაბაიტამდე, SQL:2003 სინტაქსის სტანდარტს, მონაცემთა ბაზების რეპლიკაციას და ღრუბლოვან სერვისებს.
შეკითხვები Access-ში არის ძირითადი ინსტრუმენტი მონაცემთა ბაზის ცხრილებში მონაცემების შერჩევის, განახლებისა და დამუშავებისთვის. Access, რელაციური მონაცემთა ბაზების კონცეფციის შესაბამისად, იყენებს Structured Query Language (SQL) მოთხოვნების შესასრულებლად. SQL განცხადებების დახმარებით, Access-ში ნებისმიერი მოთხოვნა ხორციელდება.
მოთხოვნის ძირითადი ტიპი არის შერჩეული მოთხოვნა. ამ მოთხოვნის შედეგი არის ახალი ცხრილი, რომელიც არსებობს მოთხოვნის დახურვამდე. ჩანაწერები იქმნება იმ ცხრილების ჩანაწერების გაერთიანებით, რომლებზეც აგებულია მოთხოვნა. ცხრილის ჩანაწერების გაერთიანების მეთოდი მითითებულია მონაცემთა სქემაში მათი ურთიერთობის განსაზღვრისას ან მოთხოვნის შექმნისას. მოთხოვნაში ჩამოყალიბებული შერჩევის პირობები საშუალებას გაძლევთ გაფილტროთ ჩანაწერები, რომლებიც ქმნიან ცხრილების შეერთების შედეგს.
Access-ში შეიძლება შეიქმნას რამდენიმე ტიპის მოთხოვნა:
მოთხოვნები წვდომის დიზაინის რეჟიმში შეიცავს მონაცემთა სქემას, რომელიც აჩვენებს გამოყენებულ ცხრილებს და შეკითხვის ფორმას, რომელშიც აგებულია მოთხოვნის ცხრილის სტრუქტურა და ჩანაწერების შერჩევის პირობები (ნახ. 4.1).
შეკითხვის გამოყენებით შეგიძლიათ განახორციელოთ მონაცემთა დამუშავების შემდეგი ტიპები:
შეკითხვები Access-ში ემსახურება როგორც ჩანაწერის წყაროს სხვა მოთხოვნებისთვის, ფორმებისთვის, ანგარიშებისთვის. შეკითხვის გამოყენებით, შეგიძლიათ შეაგროვოთ სრული ინფორმაცია, რომ ჩამოაყალიბოთ გარკვეული საგნობრივი დოკუმენტი რამდენიმე ცხრილიდან, შემდეგ გამოიყენოთ იგი ფორმის შესაქმნელად - ამ დოკუმენტის ელექტრონული წარმოდგენა. თუ ფორმა ან მოხსენება შექმნილია ოსტატის მიერ რამდენიმე დაკავშირებულ ცხრილზე დაყრდნობით, მაშინ მოთხოვნა ავტომატურად იქმნება მათთვის, როგორც ჩანაწერის წყარო.
გამოსასწორებლად, ნახეთ ვიდეო გაკვეთილი.
SQL გამოიყენება მონაცემთა ბაზიდან ამოსაღებად. SQL არის პროგრამირების ენა, რომელიც ძალიან წააგავს ინგლისურს, მაგრამ განკუთვნილია მონაცემთა ბაზის მართვის პროგრამებისთვის. SQL გამოიყენება ყველა მოთხოვნაში Access-ში.
იმის გაგება, თუ როგორ მუშაობს SQL, გეხმარებათ შექმნათ უფრო ზუსტი მოთხოვნები და გააადვილოთ მოთხოვნების დაფიქსირება, რომლებიც აბრუნებენ არასწორ შედეგებს.
ეს სტატია არის SQL for Access სტატიების სერიის ნაწილი. იგი აღწერს SQL-ის გამოყენების საფუძვლებს მონაცემების მისაღებად და გთავაზობთ SQL სინტაქსის მაგალითებს.
SQL არის პროგრამირების ენა, რომელიც შექმნილია ფაქტების კომპლექტებთან და მათ შორის ურთიერთობებთან მუშაობისთვის. რელატიური მონაცემთა ბაზის პროგრამები, როგორიცაა Microsoft Office Access, იყენებს SQL-ს მონაცემების მანიპულირებისთვის. ბევრი პროგრამირების ენისგან განსხვავებით, SQL ადვილად წასაკითხი და გასაგებია დამწყებთათვისაც კი. პროგრამირების მრავალი ენის მსგავსად, SQL არის საერთაშორისო სტანდარტი, რომელიც აღიარებულია სტანდარტების კომიტეტების მიერ, როგორიცაა ISO და ANSI.
მონაცემთა ნაკრები აღწერილია SQL-ში კითხვებზე პასუხის გასაცემად. SQL-ის გამოყენებისას უნდა იქნას გამოყენებული სწორი სინტაქსი. სინტაქსი არის წესების ერთობლიობა, რომელიც საშუალებას აძლევს ენის ელემენტების სწორად გაერთიანებას. SQL სინტაქსიდაფუძნებულია ინგლისურ სინტაქსზე და იზიარებს ბევრ ელემენტს Visual Basic for Applications (VBA) ენის სინტაქსთან.
მაგალითად, მარტივი SQL განცხადება, რომელიც აღწერს კონტაქტების გვარების სიას, სახელად მერი, შეიძლება ასე გამოიყურებოდეს:
აირჩიეთ გვარი
კონტაქტებიდან
WHERE First_Name = "მარიამი";
Შენიშვნა: SQL ენაგამოიყენება არა მხოლოდ მონაცემების ოპერაციების შესასრულებლად, არამედ მონაცემთა ბაზის ობიექტების სტრუქტურის შესაქმნელად და შესაცვლელად, როგორიცაა ცხრილები. SQL-ის ნაწილს, რომელიც გამოიყენება მონაცემთა ბაზის ობიექტების შესაქმნელად და შესაცვლელად, ეწოდება DDL. DDL არ არის გათვალისწინებული ამ სტატიაში. დამატებითი ინფორმაციაიხილეთ ცხრილების ან ინდექსების შექმნა და შეცვლა მონაცემთა განმარტების შეკითხვით.
SELECT განცხადება გამოიყენება SQL-ში მონაცემთა ნაკრების აღსაწერად. ის შეიცავს მონაცემთა ბაზიდან ამოსაღები მონაცემთა ნაკრების სრულ აღწერას, მათ შორის:
ცხრილები, რომლებიც შეიცავს მონაცემებს;
კავშირები სხვადასხვა წყაროს მონაცემებს შორის;
ველები ან გამოთვლები, რომლების მიხედვითაც შეირჩევა მონაცემები;
შერჩევის პირობები, რომლებიც უნდა აკმაყოფილებდეს შეკითხვის შედეგში შეტანილ მონაცემებს;
საჭიროება და დახარისხების მეთოდი.
SQL განცხადება შედგება რამდენიმე ნაწილისგან, რომელსაც ეწოდება პუნქტები. SQL განცხადების თითოეულ პუნქტს აქვს მიზანი. ზოგიერთი შეთავაზება სავალდებულოა. ქვემოთ მოყვანილი ცხრილი ჩამოთვლის ყველაზე ხშირად გამოყენებულ SQL განცხადებებს.
SQL პუნქტი | აღწერა | Სავალდებულო |
---|---|---|
განსაზღვრავს ველებს, რომლებიც შეიცავს სასურველ მონაცემებს. |
||
განსაზღვრავს ცხრილებს, რომლებიც შეიცავს SELECT პუნქტში მითითებულ ველებს. |
||
განსაზღვრავს ველის შერჩევის კრიტერიუმებს, რომლებსაც უნდა აკმაყოფილებდეს შედეგების ყველა ჩანაწერი. |
||
განსაზღვრავს შედეგების დახარისხების თანმიმდევრობას. |
||
SQL განცხადებაში, რომელიც შეიცავს აგრეგატულ ფუნქციებს, განსაზღვრავს ველებს, რომლებისთვისაც არ არის გამოთვლილი შემაჯამებელი მნიშვნელობა SELECT პუნქტში. |
მხოლოდ თუ არის ასეთი ველები |
|
SQL განცხადებაში, რომელიც შეიცავს აგრეგატულ ფუნქციებს, განსაზღვრავს პირობებს, რომლებიც გამოიყენება იმ ველებზე, რომლებისთვისაც შემაჯამებელი მნიშვნელობა გამოითვლება SELECT პუნქტში. |
თითოეული SQL წინადადება შედგება ტერმინებისგან, რომლებიც შეიძლება შევადაროთ მეტყველების ნაწილებს. ქვემოთ მოცემულ ცხრილში მოცემულია SQL ტერმინების ტიპები.
SQL ტერმინი | მეტყველების შესადარებელი ნაწილი | განმარტება | მაგალითი |
---|---|---|---|
იდენტიფიკატორი |
არსებითი სახელი |
სახელი, რომელიც გამოიყენება მონაცემთა ბაზის ობიექტის იდენტიფიცირებისთვის, როგორიცაა ველის სახელი. |
კლიენტები.[PhoneNumber] |
ოპერატორი |
ზმნა ან ზმნიზედა |
საკვანძო სიტყვა, რომელიც წარმოადგენს ან ცვლის მოქმედებას. |
|
მუდმივი |
არსებითი სახელი |
მნიშვნელობა, რომელიც არ იცვლება, როგორიცაა რიცხვი ან NULL. |
|
გამოხატულება |
ზედსართავი სახელი |
იდენტიფიკატორების, ოპერატორების, მუდმივების და ფუნქციების ერთობლიობა, რომელიც ფასდება ერთ მნიშვნელობამდე. |
>> საქონელი.[ფასი] |
SQL განცხადებების ზოგადი ფორმატია:
აირჩიეთ ველი_1
ცხრილიდან_1
WHERE კრიტერიუმი_1
;
შენიშვნები:
წვდომა არ პატივს სცემს ხაზების რღვევებს SQL განცხადებაში. ამის მიუხედავად, რეკომენდირებულია ყოველი წინადადების დაწყება ახალი ხაზით ისე, რომ SQL განცხადება ადვილად წასაკითხი იყოს როგორც დამწერისთვის, ასევე ყველა დანარჩენისთვის.
თითოეული SELECT განცხადება მთავრდება მძიმით (;). მძიმით შეიძლება იყოს ბოლო წინადადება ან ცალკე ხაზი SQL განცხადების ბოლოს.
შემდეგი მაგალითი გვიჩვენებს, როგორი შეიძლება გამოიყურებოდეს SQL განცხადება Access-ში მარტივი შერჩევის მოთხოვნისთვის.
1. SELECT პუნქტი
2. პუნქტი FROM
3. WHERE პუნქტი
მოდით დავყოთ მაგალითი წინადადებებით, რათა გავიგოთ როგორ მუშაობს SQL სინტაქსი.
SELECT, კომპანია
ეს არის SELECT პუნქტი. ის შეიცავს (SELECT) განცხადებას, რომელსაც მოჰყვება ორი იდენტიფიკატორი ("[ელფოსტის მისამართი]" და "კომპანია").
თუ იდენტიფიკატორი შეიცავს სივრცეებს ან სპეციალური ნიშნები(მაგალითად, "ელ. ფოსტის მისამართი"), ის უნდა იყოს ჩასმული კვადრატულ ფრჩხილებში.
SELECT პუნქტში, თქვენ არ გჭირდებათ ცხრილების მითითება, რომლებიც შეიცავს ველებს და ვერ მიუთითებთ შერჩევის პირობებს, რომლებიც უნდა აკმაყოფილებდეს მონაცემებს, რომ შევიდეს შედეგებში.
SELECT განცხადებაში SELECT პუნქტი ყოველთვის მოდის FROM პუნქტის წინ.
კონტაქტებიდან
ეს არის FROM პუნქტი. ის შეიცავს განცხადებას (FROM), რასაც მოჰყვება იდენტიფიკატორი (კონტაქტები).
FROM პუნქტი არ აკონკრეტებს ველებს ასარჩევად.
WHERE City = სიეტლი
ეს არის WHERE პუნქტი. ის შეიცავს (WHERE) ოპერატორს, რასაც მოჰყვება გამოთქმა (City="Rostov").
ბევრი რამის გაკეთება შეგიძლიათ SELECT, FROM და WHERE პუნქტებით. დამატებითი ინფორმაციისთვის, თუ როგორ გამოიყენოთ ეს შეთავაზებები, იხილეთ შემდეგი სტატიები:
Microsoft Excel-ის მსგავსად, Access გაძლევთ საშუალებას დაალაგოთ შეკითხვის შედეგები ცხრილში. ORDER BY პუნქტის გამოყენებით, თქვენ ასევე შეგიძლიათ მიუთითოთ, თუ როგორ მოხდება შედეგების დახარისხება მოთხოვნის შესრულებისას. თუ გამოიყენება ORDER BY პუნქტი, ის უნდა იყოს SQL განცხადების ბოლოს.
ORDER BY პუნქტი შეიცავს დასალაგებლად ველების ჩამონათვალს, იმავე თანმიმდევრობით, რომლითაც დალაგება იქნება გამოყენებული.
დავუშვათ, რომ, მაგალითად, გსურთ დაალაგოთ შედეგები ჯერ „კომპანიის“ ველის მიხედვით კლებადობით, შემდეგ კი, თუ არის იგივე მნიშვნელობის ჩანაწერები „კომპანია“ ველში, დაალაგეთ ისინი „ელ.ფოსტის მისამართის“ მიხედვით. " ველი ზრდადი თანმიმდევრობით. ORDER BY პუნქტი ასე გამოიყურება:
შეკვეთა კომპანიის მიერ DESC,
Შენიშვნა:ნაგულისხმევად, Access ახარისხებს მნიშვნელობებს აღმავალი თანმიმდევრობით (A-დან Z-მდე, ყველაზე პატარადან დიდამდე). მნიშვნელობების კლებადობით დასალაგებლად, თქვენ უნდა მიუთითოთ საკვანძო სიტყვა DESC.
დამატებითი ინფორმაციისთვის ORDER BY პუნქტის შესახებ იხილეთ ORDER BY პუნქტი.
ხანდახან გჭირდებათ შემაჯამებელ მონაცემებთან მუშაობა, როგორიცაა მთლიანი თვიური გაყიდვები ან ყველაზე ძვირადღირებული ნივთები მარაგში. ამისათვის SELECT პუნქტი იყენებს ველზე აგრეგატის ფუნქციას. მაგალითად, თუ მოთხოვნის შედეგი არის თითოეული კომპანიისთვის ელ.ფოსტის მისამართების რაოდენობის დაბრუნება, SELECT პუნქტი შეიძლება ასე გამოიყურებოდეს:
ერთი ან მეორის გამოყენების შესაძლებლობა აგრეგატის ფუნქციადამოკიდებულია ველში არსებული მონაცემების ტიპზე და სასურველ გამონათქვამზე. დამატებითი ინფორმაციისთვის ხელმისაწვდომი საერთო ფუნქციების შესახებ იხილეთ SQL აგრეგატული ფუნქციების სტატია.
აგრეგატული ფუნქციების გამოყენებისას, ჩვეულებრივ, უნდა შექმნათ GROUP BY პუნქტი. GROUP BY პუნქტი განსაზღვრავს ყველა ველს, რომლებზეც არ არის გამოყენებული აგრეგატის ფუნქცია. თუ გაერთიანებული ფუნქციები ვრცელდება მოთხოვნის ყველა ველზე, თქვენ არ გჭირდებათ GROUP BY პუნქტის შექმნა.
GROUP BY პუნქტი დაუყოვნებლივ უნდა მოჰყვეს WHERE ან FROM პუნქტს, თუ არ არსებობს WHERE პუნქტი. GROUP BY პუნქტში ველები მითითებულია იმავე თანმიმდევრობით, როგორც SELECT პუნქტში.
გავაგრძელოთ წინა მაგალითი. თუ SELECT პუნქტი იყენებს მხოლოდ მთლიან ფუნქციას [ელ.ფოსტის მისამართი] ველზე, მაშინ GROUP BY პუნქტი ასე გამოიყურება:
ჯგუფი კომპანიის მიხედვით
დამატებითი ინფორმაციისთვის GROUP BY პუნქტის შესახებ იხილეთ GROUP BY პუნქტი.
თუ გსურთ მიუთითოთ პირობები შედეგების შეზღუდვისთვის, მაგრამ ველი, რომელზედაც გსურთ მათი გამოყენება, გამოიყენება აგრეგატულ ფუნქციაში, ვერ გამოიყენებთ WHERE პუნქტს. ამის ნაცვლად უნდა იქნას გამოყენებული HAVING პუნქტი. HAVING პუნქტი მუშაობს ისევე, როგორც WHERE პუნქტი, მაგრამ გამოიყენება აგრეგირებული მონაცემებისთვის.
დავუშვათ, რომ AVG ფუნქცია (რომელიც ითვლის საშუალო მნიშვნელობას) გამოიყენება SELECT პუნქტის პირველ ველზე:
SELECT COUNT(), კომპანია
თუ გსურთ შეზღუდოთ შეკითხვის შედეგები COUNT ფუნქციის მნიშვნელობის მიხედვით, ვერ გამოიყენებთ ფილტრის პირობას ამ ველზე WHERE პუნქტში. ამის ნაცვლად, პირობა უნდა განთავსდეს HAVING პუნქტში. მაგალითად, თუ გსურთ მოთხოვნამ დააბრუნოს რიგები მხოლოდ იმ შემთხვევაში, თუ კომპანიას აქვს მრავალი ელ.ფოსტის მისამართი, შეგიძლიათ გამოიყენოთ შემდეგი HAVING პუნქტი:
HAVING COUNT()>1
Შენიშვნა:შეკითხვა შეიძლება შეიცავდეს როგორც WHERE პუნქტს, ასევე HAVING პუნქტს, ველების პირობები, რომლებიც არ გამოიყენება WHERE პუნქტში მითითებულ მთლიან ფუნქციებში, ხოლო ველების პირობები, რომლებიც გამოიყენება საერთო ფუნქციებში, მითითებულია HAVING პუნქტში. .
დამატებითი ინფორმაციისთვის HAVING პუნქტის შესახებ იხილეთ HAVING პუნქტი.
UNION ოპერატორი გამოიყენება იმისთვის, რომ ერთდროულად ნახოს ყველა მონაცემი, რომელიც დაბრუნებულია მრავალი მსგავსი შერჩეული მოთხოვნით, როგორც კომბინირებული ნაკრები.
UNION ოპერატორი საშუალებას გაძლევთ დააკავშიროთ ორი SELECT განცხადება ერთში. კომბინირებულ SELECT განცხადებებს უნდა ჰქონდეთ გამომავალი ველების იგივე რაოდენობა და თანმიმდევრობა იგივე ან თავსებადი მონაცემთა ტიპებით. როდესაც შეკითხვის გაშვება ხდება, თითოეული შესატყვისი ველის მონაცემები გაერთიანებულია ერთ გამომავალ ველში, ამიტომ შეკითხვის გამომავალს აქვს იმდენი ველი, რამდენიც თითოეულ SELECT განცხადებას ინდივიდუალურად.
Შენიშვნა:კავშირის შეკითხვებში რიცხვითი და ტექსტური მონაცემთა ტიპები თავსებადია.
UNION ოპერატორის გამოყენებით, შეგიძლიათ მიუთითოთ, უნდა იყოს თუ არა დუბლიკატი რიგები, ასეთის არსებობის შემთხვევაში, შეკითხვის შედეგებში. ამისათვის გამოიყენეთ ALL საკვანძო სიტყვა.
ორი SELECT განცხადების შეერთების მოთხოვნას აქვს შემდეგი ძირითადი სინტაქსი:
აირჩიეთ ველი_1
ცხრილიდან_1
გაერთიანება
SELECT ველი_a
ცხრილიდან_ა
;
დავუშვათ, მაგალითად, რომ არსებობს ორი ცხრილი სახელწოდებით "პროდუქტები" და "მომსახურებები". ორივე ცხრილი შეიცავს ველებს პროდუქტის ან სერვისის დასახელებით, ფასისა და გარანტიის შესახებ ინფორმაციას, ასევე ველს, რომელიც მიუთითებს შემოთავაზებული პროდუქტის ან სერვისის ექსკლუზიურობას. მიუხედავად იმისა, რომ ცხრილები "პროდუქტები" და "მომსახურება" გთავაზობთ განსხვავებული ტიპებიგარანტიები, ძირითადი ინფორმაცია იგივეა (მოწოდებულია თუ არა ხარისხის გარანტია ცალკეულ პროდუქტებზე ან მომსახურებაზე). ორი ცხრილიდან ოთხი ველის შესაერთებლად, შეგიძლიათ გამოიყენოთ შემდეგი შეერთების მოთხოვნა:
აირჩიეთ სახელი, ფასი, გარანტია_ხელმისაწვდომი, ექსკლუზიური_შემოთავაზება
პროდუქტებიდან
UNION ALL
აირჩიეთ სახელი, ფასი, გარანტია_ხელმისაწვდომი, ექსკლუზიური_შემოთავაზება
სერვისებიდან
;
დამატებითი ინფორმაციისთვის SELECT განცხადებების გაერთიანების შესახებ UNION ოპერატორის გამოყენებით, იხილეთ სტატია
საგანმანათლებლო პროექტის "მაღაზია" აღწერაცხრილის ბმული სქემა
ცხრილების აღწერა
m_category - პროდუქტის კატეგორიები
მ_შემოსავალი - საქონლის მიღება
m_შედეგი - საქონლის მოხმარება
m_product - დირექტორია, პროდუქტის აღწერა
m_supplier - დირექტორია; მიმწოდებლის ინფორმაცია
m_unit - დირექტორია; ერთეულები
ამ სახელმძღვანელოში მოცემული მაგალითების პრაქტიკულად შესამოწმებლად, თქვენ უნდა გქონდეთ ხელმისაწვდომი შემდეგი პროგრამული უზრუნველყოფა:
Microsoft Access 2003 ან უფრო ახალი.
ცხრილის ველის რედაქტირების რეჟიმში გადასასვლელად აირჩიეთ დიზაინის რეჟიმი ზედა პანელზე:
SQL მოთხოვნის შედეგის საჩვენებლად, ორჯერ დააწკაპუნეთ მოთხოვნის სახელზე მარცხენა პანელში:
SQL შეკითხვის რედაქტირების რეჟიმში გადასასვლელად აირჩიეთ SQL რეჟიმი ზედა პანელზე:
SQL შეკითხვა Q001. SQL მოთხოვნის მაგალითი, რომ მიიღოთ მხოლოდ საჭირო ველები სასურველი თანმიმდევრობით:
SELECT dt, product_id, თანხა
SQL შეკითხვა Q002.ამ SQL შეკითხვის მაგალითში, ვარსკვლავის სიმბოლო (*) გამოიყენება m_product ცხრილის ყველა სვეტის საჩვენებლად, სხვა სიტყვებით რომ ვთქვათ, m_product კავშირის ყველა ველის მისაღებად:
აირჩიეთ *
FROM m_პროდუქტი;
მოთხოვნაSQLQ003. DISTINCT განცხადება გამოიყენება დუბლიკატი ჩანაწერების აღმოსაფხვრელად და მრავალი უნიკალური ჩანაწერის მისაღებად:
აირჩიეთ DISTINCT product_id
SQL შეკითხვა Q004. ORDER BY განცხადება გამოიყენება ჩანაწერების დასალაგებლად (შეკვეთა) კონკრეტული ველის მნიშვნელობებით. ველის სახელი მიჰყვება ORDER BY პუნქტს:
აირჩიეთ *
მ_შემოსავლიდან
SQL შეკითხვა Q005. ASC განცხადება გამოიყენება ORDER BY განცხადების დამატებით და გამოიყენება აღმავალი დალაგების დასადგენად. DESC განცხადება გამოიყენება ORDER BY განცხადების დამატებით და გამოიყენება კლებადი დალაგების დასადგენად. იმ შემთხვევაში, როდესაც არც ASC და არც DESC არ არის მითითებული, ASC-ის არსებობა (ნაგულისხმევი) ვარაუდობენ:
აირჩიეთ *
მ_შემოსავლიდან
SQL შეკითხვა Q006.ცხრილიდან საჭირო ჩანაწერების შესარჩევად გამოიყენება სხვადასხვა ლოგიკური გამონათქვამები, რომლებიც გამოხატავს შერჩევის მდგომარეობას. ლოგიკური გამოხატულება მოდის WHERE პუნქტის შემდეგ. m_income ცხრილიდან ყველა ჩანაწერის მიღების მაგალითი, რომლის თანხის მნიშვნელობა 200-ზე მეტია:
აირჩიეთ *
მ_შემოსავლიდან
SQL შეკითხვა Q007.რთული პირობების გამოსახატავად გამოიყენეთ ლოგიკური ოპერაციები AND (კავშირი), OR (განშორება) და NOT (ლოგიკური უარყოფა). m_outcome ცხრილიდან ყველა ჩანაწერის მიღების მაგალითი, რომლის თანხის მნიშვნელობა არის 20 და ფასის მნიშვნელობა 10-ზე მეტი ან ტოლია:
ფასი
SQL შეკითხვა Q008.ორი ან მეტი ცხრილის მონაცემების შესაერთებლად გამოიყენეთ INNER JOIN, LEFT JOIN, RIGHT JOIN განცხადებები. შემდეგი მაგალითი ამოიღებს dt, product_id, თანხა, ფასის ველებს m_income ცხრილიდან და სათაურის ველს m_product ცხრილიდან. m_income ცხრილის ჩანაწერი დაკავშირებულია m_product ცხრილის ჩანაწერთან, როდესაც m_income.product_id მნიშვნელობა უდრის m_product.id მნიშვნელობას:
SQL შეკითხვა Q009.არის ორი რამ, რასაც ყურადღება უნდა მიაქციოთ ამ SQL მოთხოვნაში: 1) საძიებო ტექსტი ჩასმულია ერთ ბრჭყალებში ("); 2) თარიღი არის #Month/Day/Year# ფორმატში, რაც სწორია MS-ისთვის. წვდომა. სხვა სისტემებში თარიღის ფორმატი შეიძლება განსხვავებული იყოს. რძის მიღების შესახებ ინფორმაციის ჩვენების მაგალითი 2011 წლის 12 ივნისს. ყურადღება მიაქციეთ თარიღის ფორმატს #6/12/2011#:
SELECT dt, product_id, სათაური, თანხა, ფასი
SQL შეკითხვა Q010. BETWEEN ინსტრუქცია გამოიყენება შესამოწმებლად, ეკუთვნის თუ არა მას მნიშვნელობების დიაპაზონი. SQL მოთხოვნის მაგალითი, რომელიც აჩვენებს ინფორმაციას 2011 წლის 1 ივნისიდან 30 ივნისამდე მიღებულ საქონელზე:
აირჩიეთ *
FROM m_income INNER JOIN m_product
მოთხოვნა Q011.აჩვენებს ინფორმაციას პროდუქტების შესახებ m_product ცხრილიდან, რომლის კოდები ასევე მოცემულია m_income ცხრილში:
აირჩიეთ *
FROM m_product
მოთხოვნა Q012.ნაჩვენებია პროდუქტების სია m_product ცხრილიდან, რომელთა კოდები არ არის m_outcome ცხრილში:
აირჩიეთ *
FROM m_product
მოთხოვნა Q013.ეს SQL მოთხოვნა აბრუნებს კოდებისა და პროდუქტის სახელების უნიკალურ სიას, რომლებსაც აქვთ კოდები m_income ცხრილში, მაგრამ არა m_outcome ცხრილში:
აირჩიეთ DISTINCT product_id, სათაური
მოთხოვნა Q014. m_category ცხრილიდან ნაჩვენებია კატეგორიების უნიკალური სია, რომელთა სახელები იწყება ასო M-ით:
აირჩიეთ განსხვავებული სათაური
მოთხოვნა Q015.მოთხოვნის ველებზე არითმეტიკული მოქმედებების შესრულების მაგალითი და შეკითხვაში ველების სახელის გადარქმევა (სხვა სახელი). ეს მაგალითი ითვლის ხარჯს = რაოდენობას * ფასს და მოგებას თითოეული პროდუქტის მოხმარების ჩანაწერისთვის, თუ ვივარაუდებთ, რომ მოგება არის გაყიდვების 7 პროცენტი:
მოთხოვნა Q016.არითმეტიკული ოპერაციების ანალიზით და გამარტივებით, შეგიძლიათ გაზარდოთ შეკითხვის შესრულების სიჩქარე:
SELECT dt, product_id, თანხა, ფასი, თანხა*ფასი AS outcome_sum,
მოთხოვნა Q017. INNER JOIN განაცხადის გამოყენებით, შეგიძლიათ დააკავშიროთ მონაცემები მრავალი ცხრილიდან. შემდეგ მაგალითში, ctgry_id-ის მნიშვნელობიდან გამომდინარე, m_income ცხრილის თითოეული ჩანაწერი ემთხვევა იმ კატეგორიის სახელს m_category ცხრილიდან, რომელსაც ეკუთვნის პროდუქტი:
აირჩიეთ c.title, b.title, dt, თანხა, ფასი, თანხა*ფასი AS შემოსავალი_ჯამად
მოთხოვნა Q018.ისეთ ფუნქციებს, როგორიცაა SUM - ჯამი, COUNT - რაოდენობა, AVG - საშუალო არითმეტიკული, MAX - მაქსიმალური მნიშვნელობა, MIN - მინიმალური მნიშვნელობა ეწოდება აგრეგატის ფუნქციებს. ისინი იღებენ მრავალ მნიშვნელობას და დამუშავებისას აბრუნებენ ერთ მნიშვნელობას. ველების ოდენობისა და ფასის ნამრავლის ჯამის გამოთვლის მაგალითი SUM აგრეგატის ფუნქციის გამოყენებით:
SELECT SUM(თანხა*ფასი) AS Total_Sum
მოთხოვნა Q019.მრავალი აგრეგატის ფუნქციის გამოყენების მაგალითი:
SELECT Sum(amount) AS Amount_Sum, AVG(amount) AS Amount_AVG,
მოითხოვეთ Q020.ამ მაგალითში გამოითვლება 2011 წლის ივნისში მიღებული 1 კოდის მქონე ყველა ელემენტის ჯამი:
აირჩიეთ თანხა(თანხა*ფასი) AS შემოსავალი_ჯამად
მოითხოვეთ Q021.შემდეგი SQL მოთხოვნა ითვლის, თუ რა ფასად გაიყიდა 4 ან 6 კოდის მქონე საქონელი:
აირჩიეთ თანხა (თანხა*ფასი) როგორც შედეგი_ჯამად
მოითხოვეთ Q022.გამოითვლება რა ოდენობით გაიყიდა 2011 წლის 12 ივნისს საქონელი 4 ან 6 კოდით:
აირჩიეთ თანხა (თანხა*ფასი) როგორც outcome_sum
მოითხოვეთ Q023.ამოცანა ეს არის. გამოთვალეთ ჯამური თანხა, რისთვისაც ჩაირიცხა კატეგორიის „ცომეული პროდუქტები“ საქონელი.
ამ პრობლემის გადასაჭრელად, თქვენ უნდა იმუშაოთ სამ ცხრილზე: m_income, m_product და m_category, რადგან:
ამ პრობლემის გადასაჭრელად ვიყენებთ შემდეგ ალგორითმს:
მოითხოვეთ Q024.კატეგორიის „ცომეული პროდუქტების“ დაკრედიტებული საქონლის ჯამური ოდენობის გამოთვლის პრობლემა მოგვარდება შემდეგი ალგორითმით:
- m_income ცხრილის თითოეული ჩანაწერი, მისი პროდუქტის_id მნიშვნელობიდან გამომდინარე, m_category ცხრილიდან ემთხვევა კატეგორიის სახელს;
- შეარჩიეთ ჩანაწერები, რომლებისთვისაც კატეგორია უდრის „ცომეულ პროდუქტებს“;
- გამოთვალეთ შემოსავლის ოდენობა = რაოდენობა * ფასი.
FROM (m_პროდუქტი, როგორც შიდა JOIN m_შემოსავალი AS b ON a.id=b.product_id)
WHERE c.title="ცომეული";
!}
მოითხოვეთ Q025.ეს მაგალითი ითვლის რამდენი ელემენტი იქნა მოხმარებული:
აირჩიეთ COUNT(product_id) როგორც product_cnt
მოითხოვეთ Q026. GROUP BY პუნქტი გამოიყენება ჩანაწერების დასაჯგუფებლად. როგორც წესი, ჩანაწერები ჯგუფდება ერთი ან მეტი ველის მნიშვნელობით და თითოეულ ჯგუფზე გამოიყენება აგრეგატული ოპერაცია. მაგალითად, შემდეგი მოთხოვნა ქმნის ანგარიშს საქონლის გაყიდვის შესახებ. ანუ, იქმნება ცხრილი, რომელიც შეიცავს საქონლის სახელს და ოდენობას, რომლითაც ისინი იყიდება:
აირჩიეთ სათაური, SUM(თანხა*ფასი) როგორც outcome_sum
მოითხოვეთ Q027.გაყიდვების ანგარიში კატეგორიის მიხედვით. ანუ იქმნება ცხრილი, რომელიც შეიცავს პროდუქციის კატეგორიების დასახელებებს, ჯამურ რაოდენობას, რომლითაც იყიდება ამ კატეგორიების საქონელი და გაყიდვების საშუალო რაოდენობა. ROUND ფუნქცია გამოიყენება საშუალო მნიშვნელობის დასამრგვალებლად უახლოეს მეასედამდე (მეორე ათობითი ადგილი ათწილადის გამყოფის შემდეგ):
SELECT c.title, SUM(amount*price) AS outcome_sum,
მოითხოვეთ Q028.თითოეული პროდუქტისთვის გამოითვლება მისი ქვითრების მთლიანი და საშუალო რაოდენობა და აჩვენებს ინფორმაციას საქონლის შესახებ, რომლის ქვითრების საერთო რაოდენობა არის მინიმუმ 500:
SELECT product_id, SUM(amount) AS თანხა_sum,
მოითხოვეთ Q029.ეს მოთხოვნა ითვლის თითოეული პუნქტისთვის 2011 წლის მეორე კვარტალში მიღებული მისი შემოსულობების ჯამს და საშუალოს. თუ საქონლის მიღების მთლიანი რაოდენობა არ არის 1000-ზე ნაკლები, მაშინ ნაჩვენებია ინფორმაცია ამ პროდუქტის შესახებ:
აირჩიეთ სათაური, SUM(თანხა*ფასი) AS შემოსავალი_ჯამად
მოითხოვეთ Q030.ზოგიერთ შემთხვევაში აუცილებელია რომელიმე ცხრილის თითოეული ჩანაწერის შედარება სხვა ცხრილის თითოეულ ჩანაწერთან; რასაც დეკარტის პროდუქტს უწოდებენ. ასეთი შეერთების შედეგად მიღებულ ცხრილს დეკარტის ცხრილი ეწოდება. მაგალითად, თუ ზოგიერთ A ცხრილს აქვს 100 ჩანაწერი, ხოლო B ცხრილში 15, მაშინ მათი დეკარტისეული ცხრილი შედგება 100*15=150 ჩანაწერისგან. შემდეგი მოთხოვნა უერთდება m_income ცხრილის თითოეულ ჩანაწერს m_outcome ცხრილში:
FROM m_ შემოსავალი, m_შედეგი;
მოითხოვეთ Q031.ჩანაწერების ორი ველის მიხედვით დაჯგუფების მაგალითი. შემდეგი SQL მოთხოვნა ითვლის თითოეული მიმწოდებლისთვის მისგან მიღებული საქონლის რაოდენობას და რაოდენობას:
მოთხოვნა Q032.ჩანაწერების ორი ველის მიხედვით დაჯგუფების მაგალითი. შემდეგი მოთხოვნა ითვლის თითოეული მიმწოდებლისთვის ჩვენს მიერ გაყიდული პროდუქციის რაოდენობას და რაოდენობას:
აირჩიეთ მომწოდებლის_იდენტიფიკატორი, პროდუქტის_იდენტიფიკატორი, ჯამი (თანხა) AS თანხა_ჯამობა,
მოთხოვნა Q033.ამ მაგალითში, ზემოთ მოცემული ორი მოთხოვნა (q031 და q032) გამოიყენება როგორც ქვემოთხოვნები. ამ მოთხოვნების შედეგები გაერთიანებულია ერთ ანგარიშში LEFT JOIN მეთოდის გამოყენებით. შემდეგი მოთხოვნა აჩვენებს ანგარიშს თითოეული მიმწოდებლისთვის მიღებული და გაყიდული პროდუქციის რაოდენობისა და რაოდენობის შესახებ. ყურადღება უნდა მიაქციოთ იმ ფაქტს, რომ თუ რომელიმე პროდუქტი უკვე ჩამოვიდა, მაგრამ ჯერ არ გაყიდულა, მაშინ ამ ჩანაწერის შედეგის_ჯამის უჯრედი ცარიელი იქნება. რომ ეს შეკითხვა მხოლოდ გამოყენების მაგალითია რთული კითხვებიროგორც ქვემოთხოვნა. Შესრულება მოცემული მოთხოვნა SQL დიდი რაოდენობით მონაცემებით საეჭვოა:
აირჩიეთ *
FROM
მოითხოვეთ Q034.ამ მაგალითში, ზემოთ მოცემული ორი მოთხოვნა (q031 და q032) გამოიყენება როგორც ქვემოთხოვნები. ამ მოთხოვნების შედეგები გაერთიანებულია ერთ ანგარიშში RIGTH JOIN მეთოდის გამოყენებით. შემდეგი მოთხოვნა ბეჭდავს ანგარიშს თითოეული მომხმარებლის მიერ გადახდილი გადახდების ოდენობის შესახებ მათ მიერ გამოყენებული გადახდის სისტემებზე და მათ მიერ განხორციელებული ინვესტიციების ოდენობაზე. შემდეგი მოთხოვნა აჩვენებს ანგარიშს თითოეული მიმწოდებლისთვის მიღებული და გაყიდული პროდუქციის რაოდენობისა და რაოდენობის შესახებ. გაითვალისწინეთ, რომ თუ პროდუქტი უკვე გაიყიდა, მაგრამ ჯერ არ მიუღია, მაშინ ამ ჩანაწერის შემოსავალი_ჯამის უჯრედი ცარიელი იქნება. ასეთი ცარიელი უჯრედების არსებობა არის გაყიდვების აღრიცხვის შეცდომის მაჩვენებელი, რადგან გაყიდვამდე, პირველ რიგში, აუცილებელია, რომ შესაბამისი პროდუქტი მოვიდეს:
აირჩიეთ *
FROM
მოითხოვეთ Q035.ნაჩვენებია ანგარიში პროდუქტის მიხედვით შემოსავლებისა და ხარჯების ოდენობის შესახებ. ამისათვის იქმნება პროდუქტების სია m_income და m_outcome ცხრილების მიხედვით, შემდეგ ამ სიიდან თითოეულ პროდუქტზე გამოითვლება მისი შემოსულობების ჯამი m_income ცხრილის მიხედვით და მისი ხარჯების ჯამი m_outcome ცხრილის მიხედვით:
SELECT product_id, SUM(in_mount) AS შემოსავალი_ოდენობა,
მოითხოვეთ Q036. EXISTS ფუნქცია უბრუნებს TRUE-ს, თუ მასზე გადაცემული ნაკრები შეიცავს ელემენტებს. EXISTS ფუნქცია უბრუნებს FALSE-ს, თუ მასზე გადაცემული ნაკრები ცარიელია, ანუ მას არ აქვს ელემენტები. შემდეგი მოთხოვნა აბრუნებს პროდუქტის კოდებს, რომლებიც შეიცავს როგორც m_income ცხრილში, ასევე m_outcome ცხრილში:
აირჩიეთ DISTINCT product_id
მოთხოვნა Q037.ნაჩვენებია პროდუქტის კოდები, რომლებიც შეიცავს როგორც m_income ცხრილში, ასევე m_outcome ცხრილში:
აირჩიეთ DISTINCT product_id
მოითხოვეთ Q038.ნაჩვენებია პროდუქტის კოდები, რომლებიც შეიცავს m_income ცხრილში, მაგრამ არ შეიცავს m_outcome ცხრილში:
აირჩიეთ DISTINCT product_id
მოთხოვნა Q039.ნაჩვენებია პროდუქტების სია, რომელთა გაყიდვები ყველაზე მაღალია. ალგორითმი ასეთია. თითოეული პროდუქტისთვის გამოითვლება მისი გაყიდვების ჯამი. შემდეგ განისაზღვრება ამ თანხების მაქსიმუმი. შემდეგ, თითოეული პროდუქტისთვის, კვლავ გამოითვლება მისი გაყიდვების ჯამი და ნაჩვენებია კოდი და საქონლის გაყიდვების ჯამი, რომლის გაყიდვების ჯამი უდრის მაქსიმუმს:
SELECT product_id, SUM (თანხა*ფასი) AS თანხა_ჯამად
მოითხოვეთ Q040.რეზერვირებული სიტყვა IIF (პირობითი ოპერატორი) გამოიყენება ლოგიკური გამოხატვის შესაფასებლად და შედეგის მიხედვით (TRUE ან FALSE) მოქმედების შესასრულებლად. შემდეგ მაგალითში ნივთის მიწოდება ითვლება „პატარად“, თუ რაოდენობა 500-ზე ნაკლებია. წინააღმდეგ შემთხვევაში, ანუ ქვითრის რაოდენობა 500-ზე მეტი ან ტოლია, მიწოდება ითვლება „დიდი“:
SELECT dt, product_id, თანხა,
SQL შეკითხვა Q041.იმ შემთხვევაში, როდესაც IIF განცხადება გამოიყენება არაერთხელ, უფრო მოსახერხებელია მისი შეცვლა SWITCH განაცხადით. SWITCH ოპერატორი (მრავალჯერადი არჩევანის ოპერატორი) გამოიყენება ლოგიკური გამოხატვის შესაფასებლად და შედეგის მიხედვით მოქმედების შესასრულებლად. შემდეგ მაგალითში, მიწოდებული ლოტი ითვლება "პატარად", თუ ლოტში საქონლის რაოდენობა 500-ზე ნაკლებია. წინააღმდეგ შემთხვევაში, თუ საქონლის რაოდენობა 500-ზე მეტი ან ტოლია, ლოტი ჩაითვლება "დიდი". ":
SELECT dt, product_id, თანხა,
მოთხოვნა Q042.შემდეგ შეკითხვაში, თუ შემოსულ პარტიაში საქონლის რაოდენობა 300-ზე ნაკლებია, მაშინ პარტია ითვლება „პატარა“. წინააღმდეგ შემთხვევაში, ანუ თუ პირობის ოდენობა SELECT dt, product_id, თანხა,
IIF(ოდენობა IIF(თანხა FROM მ_შემოსავალი;
SQL შეკითხვა Q043.შემდეგ შეკითხვაში, თუ შემოსულ პარტიაში საქონლის რაოდენობა 300-ზე ნაკლებია, მაშინ პარტია ითვლება „პატარა“. წინააღმდეგ შემთხვევაში, ანუ თუ პირობის ოდენობა SELECT dt, product_id, თანხა,
SWITCH (თანხის ოდენობა>=1000"დიდი") AS მარკა
მ_ შემოსავალი;
SQL შეკითხვა Q044.შემდეგ მოთხოვნაში გაყიდვები იყოფა სამ ჯგუფად: მცირე (150-მდე), საშუალო (150-დან 300-მდე), დიდი (300 და მეტი). შემდეგი, თითოეული ჯგუფისთვის, მთლიანი თანხა გამოითვლება:
აირჩიეთ კატეგორია, SUM(outcome_sum) AS Ctgry_Total
SQL შეკითხვა Q045. DateAdd ფუნქცია გამოიყენება მოცემულ თარიღს დღეების, თვეების ან წლების დასამატებლად და ახალი თარიღის მისაღებად. შემდეგი მოთხოვნა:
1) დაამატეთ თარიღს 30 დღე dt ველიდან და ჩვენება ახალი თარიღიველში dt_plus_30d;
2) დაამატეთ თარიღს 1 თვე dt ველიდან და აჩვენეთ ახალი თარიღი dt_plus_1m ველში:
SELECT dt, dateadd("d",30,dt) AS dt_plus_30d, dateadd("m",1,dt) AS dt_plus_1m
SQL შეკითხვა Q046. DateDiff ფუნქცია შექმნილია ორ თარიღს შორის განსხვავების გამოსათვლელად სხვადასხვა ერთეულებში (დღეები, თვეები ან წლები). შემდეგი მოთხოვნა ითვლის სხვაობას dt ველში თარიღსა და მიმდინარე თარიღს შორის დღეებში, თვეებში და წლებში:
SELECT dt, DateDiff("d",dt,Date()) AS last_day,
SQL შეკითხვა Q047.დღეების რაოდენობა საქონლის მიღებიდან (m_შემოსავლის ცხრილი) მიმდინარე თარიღამდე გამოითვლება DateDiff ფუნქციის გამოყენებით და ვადის გასვლის თარიღი შედარებულია (m_პროდუქტის ცხრილი):
SQL შეკითხვა Q048.გამოითვლება დღეების რაოდენობა საქონლის მიღებიდან მიმდინარე თარიღამდე, შემდეგ მოწმდება, აღემატება თუ არა ეს რიცხვი ვარგისიანობის ვადას:
აირჩიეთ a.id, product_id, dt, lifedays,
SQL შეკითხვა Q049.გამოითვლება თვეების რაოდენობა საქონლის მიღებიდან მიმდინარე თარიღამდე. სვეტი month_last1 ითვლის თვეების აბსოლუტურ რაოდენობას, სვეტი month_last2 ითვლის სრული თვეების რაოდენობას:
SELECT dt, DateDiff("m",dt,Date()) AS month_last1,
SQL შეკითხვა Q050.ნაჩვენებია კვარტალური ანგარიში 2011 წელს მიღებული საქონლის რაოდენობისა და რაოდენობის შესახებ:
SELECT kvartal, SUM(outcome_sum) AS სულ
მოთხოვნა Q051.შემდეგი შეკითხვა გვეხმარება იმის გარკვევაში, მოახერხეს თუ არა მომხმარებლებმა სისტემაში შეიყვანონ ინფორმაცია საქონლის მოხმარების შესახებ საქონლის მიღების ოდენობაზე მეტი ოდენობით:
SELECT product_id, SUM(in_sum) AS შემოსავალი_sum, SUM(out_sum) AS outcome_sum
აირჩიეთ COUNT(*) როგორც N, b.id, b.product_id, b.amount, b.price
მოთხოვნა Q053.გაყიდვების ოდენობით პროდუქტებს შორის საუკეთესო ხუთეულია ნაჩვენები. პირველი ხუთი ჩანაწერის გამოტანა ხორციელდება TOP ინსტრუქციის გამოყენებით:
აირჩიეთ TOP 5, product_id, ჯამი (თანხა*ფასი) როგორც ჯამი
მოთხოვნა Q054.გაყიდვების ოდენობით პროდუქტებს შორის საუკეთესო ხუთეულია ნაჩვენები და შედეგად ხაზები დანომრილია:
SELECT COUNT(*) AS N, b.product_id, b.summa
მოთხოვნა Q055.შემდეგი SQL მოთხოვნა აჩვენებს მათემატიკური ფუნქციების COS, SIN, TAN, SQRT, ^ და ABS გამოყენებას MS Access SQL-ში:
SELECT (აირჩიეთ რაოდენობა(*) m_income-დან) როგორც N, 3.1415926 როგორც pi, k,
განაახლეთ m_income SET ფასი = ფასი*1.1
მოთხოვნა U002.შემდეგი SQL განახლების მოთხოვნა ზრდის m_income ცხრილში ყველა პროდუქტის რაოდენობას 22 ერთეულით, რომელთა სახელები იწყება სიტყვით "კარაქი":
განაახლეთ m_income SET თანხა = თანხა+22
მოთხოვნა U003.შემდეგი SQL ცვლილების მოთხოვნა m_outcome ცხრილში ამცირებს ყველა საქონლის ფასებს OOO Sladkoe-ს მიერ 2 პროცენტით:
განაახლეთ m_outcome SET ფასი = ფასი*0.98
SQL მოთხოვნა არის შეკითხვა, რომელიც შექმნილია SQL განცხადებების გამოყენებით. SQL (Structured Query Language) გამოიყენება მოთხოვნების შესაქმნელად და რელაციური მონაცემთა ბაზების განახლებისა და მართვისთვის, როგორიცაა Microsoft Access მონაცემთა ბაზები.
როდესაც მომხმარებელი ქმნის შეკითხვას შეკითხვის დიზაინის ხედში, Microsoft Access ავტომატურად ქმნის ექვივალენტურ SQL განცხადებას. არსებობს უამრავი მოთხოვნა, რომელიც შეიძლება გაკეთდეს მხოლოდ SQL რეჟიმში. გამოცდილ პროგრამისტებს ხშირად უადვილდებათ SQL-ში გამოხატვის დაუყოვნებლივ დაწერა, ვიდრე შეკითხვის ფორმირება.
მოთხოვნის ტიპი კონსტრუქტორში:
რთული გამოთვლებით, შედეგის მისაღებად თანმიმდევრულად უნდა გააკეთოთ რამდენიმე მოთხოვნა. ნათელია, რომ ეს მოქმედებები ავტომატურად უნდა განხორციელდეს მომხმარებლის ჩარევის გარეშე.
ამისათვის გამოიყენება მაკროები, რომლებიც შედგება რამდენიმე თანმიმდევრულად შესრულებული ბრძანებისგან.
გამოთვლები შეკითხვებში, ფორმულების შექმნისა და რედაქტირების შესაძლებლობა.
შეკითხვის სქემაში მითითებული ცხრილების ველებისთვის, შეგიძლიათ მიუთითოთ ნებისმიერი გაანგარიშება.
გამოთვლების შესასრულებლად, თქვენ უნდა დაამატოთ დამატებითი გამოთვლილი ველები მოთხოვნას, რომელთა მნიშვნელობები გამოითვლება სხვა მოთხოვნის ველების მნიშვნელობების საფუძველზე.
საბოლოო მოთხოვნები, დაჯგუფება, საბოლოო ფუნქციები.
საბოლოო მოთხოვნა იქმნება რეჟიმის გამოყენებით - Summary query.
შეიძლება გამოყენებულ იქნას სამი ცხრილი, მათ შორის ბმული ცხრილი.
ამ შემთხვევაში, თქვენ შეგიძლიათ გამოიძახოთ კონტექსტური მენიუ მოთხოვნის ნებისმიერი ადგილიდან (მაუსის მარჯვენა ღილაკი) და აირჩიოთ "ჯგუფური ოპერაციების" ფუნქცია.
მოთხოვნის ფორმა გამოჩნდება ახალი ხაზიდაჯგუფება.
ჯამური ფუნქციები: ველში, რომლისთვისაც გვინდა გამოვთვალოთ ჯამები, აირჩიეთ სიიდან "ჯამ" ფუნქცია არჩეული ველების ყველა მნიშვნელობის შესაჯამებლად. Count ფუნქცია დათვლის ველის მნიშვნელობების რაოდენობას. ინფორმაციის რედაქტირება microsoft
მოთხოვნა არის გამოძახება DBMS-ში მონაცემთა ნებისმიერი ოპერაციების შესასრულებლად: მონაცემთა ნაწილის არჩევა მთლიანი მოცულობიდან, გამოთვლილი ველების დამატება, მონაცემთა ნაყარი შეცვლა და ა.შ.
მოთხოვნისას შეგიძლიათ:
მოთხოვნის ტიპები:
მოთხოვნები გამოიყენება, როგორც ჩანაწერების წყაროები ფორმებისა და ანგარიშებისთვის. უმეტესწილად, როგორც ფორმებში, ასევე ანგარიშებში, გაცემამდე უნდა აირჩიოთ მონაცემების ნაწილი გარკვეული პირობების მიხედვით და დაალაგოთ მონაცემები. ეს კეთდება მოთხოვნით. მოთხოვნა შეიძლება შეინახოს ცალკე ან დაუკავშირდეს ფორმას ან ანგარიშს.
Microsoft Access-ში არსებობს რამდენიმე სახის მოთხოვნა.