Сұраныстарды құру
Шолу
Бірігу, Қиылысу, Айырма
Декарттық көбейтінді, Қосу
SELECT операторы
Мысалдар
TOP және TOP PERCENT
FROM
Мысалы
INNER JOIN
Сыртқы біріктірулер
LEFT OUTER JOIN (сол жағынан сыртқы біріктіру)
RIGHT OUTER JOIN (оң жағынан сыртқы біріктіру)
FULL OUTER JOIN (толық сыртқы біріктіру)
WHERE
Салыстыру
Мысалдар
Мысалдар
Мысалдар
Диапазон аралығы
Мысал
Жиынға тиістілігін тексеру
Мысал
Шаблонға сәйкестігін тексеру
Мысал
Мысал
NULL
ORDER BY
Тапсырма
НАЗАРЛАРЫҢЫЗҒА РАХМЕТ!
472.61K
Категория: Базы данныхБазы данных

SQL SELECT операторлары және JOIN

1. Сұраныстарды құру

2. Шолу

Бірігу
Таңдау
Қиылысу
Проекция
Декарттық көбейтінді
Айырма
Қосу

3. Бірігу, Қиылысу, Айырма

ID
Firstname
Lastname
Birthday
Adress
tel
1
Асанов
Арман
10.02.2001
11мкр
87772223311
2
Айдар
Олжас
21.04.2001
8мкр
87772883311
3
Марат
Мақсат
22.02.2001
Батыс
87774443311
4
Аман
Жадыра
01.02.2001
Нурсити
87775553311
5
Берік
Айгүл
10.02.2000
5мкр
87776663311
ID
Firstname
Lastname
Birthday
Adress
tel
3
Марат
Мақсат
22.02.2001
Батыс
87774443311
4
Аман
Жадыра
01.02.2001
Нурсити
87775553311
6
Алдияр
Айнүр
10.02.2000
Жубанов
87777773311

4. Декарттық көбейтінді, Қосу

ID
Firstname
Lastname
Birthday
Adress
tel
1
Асанов
Арман
10.02.2001
11мкр
87772223311
2
Айдар
Олжас
21.04.2001
8мкр
87772883311
3
Марат
Мақсат
22.02.2001
Батыс
87774443311
4
Аман
Жадыра
01.02.2001
Нурсити
87775553311
5
Берік
Айгүл
10.02.2000
5мкр
87776663311
ID
StudID
Subject
Grade
1
2
Математика
70
2
4
Физика
85
3
5
Информатика
80

5.

ID
Firstname
Lastname
Birthday
Adress
tel
1
Асанов
Арман
10.02.2001
11мкр
87772223311
2
Айдар
Олжас
21.04.2001
8мкр
87772883311
3
Марат
Мақсат
22.02.2001
Батыс
87774443311
4
Аман
Жадыра
01.02.2001
Нурсити
87775553311
5
Берік
Айгүл
10.02.2000
5мкр
87776663311
....
1000
....
....

6.

Select операторы
Сұраныс жасау үшін сұраныс жасауға арналған МҚ-н белсенді қылу керек, содан
кейін сұраныстар редакторының жұмыс облысында SELECT командасы көмегімен
сұраныс жасау керек, синтаксисі келесі түрде болады:
SELECT [ALL|DISTINCT]
[TOP|PERCENT n]
<Өрістер тізімі>
[INTO <Жаңа кесте аты>]
[FROM <Кесте аты>]
[WHERE <Шарт>]
[GROUP BY <Өріс>]
[ORDER BY <Өріс> [ASC|DESC]]
[COMPUTE AVG|COUNT|MAX|MIN|SUM(<Өрнек>)]
Мұнда ALL|DISTINCT параметрлері қандай жазбалар өңделетінін көрсетеді: ALL
барлық жазбалар, DISTINCT тек қана бірегей жазба өңделеді, қайталанатын
жазбалар өшіріледі.

7.

TOP n жазбалардың қандай саны өңделетінін анықтайды, егер PERCENT
көрсетілсе, онда n жазбалардың жалпы санының пайызын көрсетеді. <Өрістер
тізімі>– мұнда кестелерден үтірлермен бөлінген көрсетілетін өрістерді көрсетеді..
1. Егер көрсетілетін өрістердің аттары әртүрлі кестелерде қайталанбаса, онда
кестелердің өздерін көрсетпей тек қана өріс пен баған аттарын (ТАӘ,
Лауазымы) көрсетуге болады. Егер әртүрлі кестелерден бірдей атты өрістер
көрсетілсе, онда кесте аты да (<Кесте аты>.<Өріс аты>) көрсетілуі керек;
2. Мұнда кестелерге лақап аттарды келесі түрде меншіктеуге болады:
<Кесте аты> AS <Лақап ат>;
3. Егер кестеден барлық өрістерді шығару қажет болса, онда «*» таңбасымен
алмастыруға болады.
INTO бөлімі. Егер бұл бөлім бар болса, онда сұраныс нәтижелеріне
негізделген жаңа кесте жасалады. INTO параметрі бұл жаңа кестенің аты.

8.

6
FROM бөлімі. Мұнда жаңа сұранысқа қатысатын кестелер мен сұраныстар үтір арқылы
қөрсетіледі.
FROM бөлімінде сондай-ақ бір кестенің өрісі басқа кестенің брнеше өрістерімен
байланысатын күрделі байланыстарды көрсетуге болады. Бұл жағдайда FROM бөлімінің
түрі келесідей болады:
FROM <Кесте1> INNER JOIN <Кесте2> ON <Кесте1>.<өріс1>оператор <Кесте2>.<өріс2> …
Мұнда салыстыру операторына байланысты <өріс1> мен <өріс2> бойынша <Кесте1> мен
<Кесте2> өзара байланыс орнатылады. INNER JOIN сияқты бөлімдер қанша керек болса
сонша бола алады.
WHERE бөлімі. Бұл бөлім қарапайым сұраныстарды жасау үшін пайдаланылады, бұл
жағдайда шарт ретінде байланыстырылатын өрістерді көрсетеміз немесе осы бөлім
сүзгілерді жасау үшін пайдаланылады, мұнда таңдау шарттары көрсетіледі. Таңдау
шарттарында NOT, OR, AND стандартты логикалық операторларды пайдалануға болады.
Өзінің стандартты түрінде сұраныстар динамикалық емес, тек қана статикалық
сүзгілерді іске асыра алады. Сақталымды процедуралар динамикалық сүзгілерді іске асыру
үшін қолданылады.

9.

GROUP BY бөлімі - сұраныстағы жазбаларды топтастыру үшін өрісті
анықтайды.
ORDER BY бөлімі – сұраныстағы жазбаларды сұрыптау үшін өрісті анықтайды.
Егер ASC параметрі көрсетілсе, онда сұрыптау өсу бойынша, егер DESC болса,
онда кему бойынша орындалады. Әдепкі қалпы бойынша өсу тәртібіндегі сұрыптау
қолданылады.
COMPUTE бөлімі сұраныс орындалуы нәтижелерінің соңында сұраныс
бойынша кейбір қорытынды есептеулерді шығаруға мүмкіндік береді.
Есептеулердің келесі түрлері болуы мүмкін: AVG - орташа параметр; COUNT NULL мәніне тең емес параметр мәндерінің саны, MAX және MIN - параметрдің ең
үлкен және ең кіші мәндері; SUM - бұл барлық параметр мәндерінің қосындысы,
мұнда <Өрнек> - өзі параметр. Параметр ретінде әдетте сұранысқа қатысатын
кестелердің қандай да болса өрістері болады.

10.

Бірнеше кестелермен жұмыс.
JOIN кестелерді қосу
SQL тілінің операторы JOIN сәйкес шарт бойынша екі немесе одан да көп
мәліметтер базасының кестелерін қосуға арналған. Бұл оператор тек реляциялық
мәліметтер базасында болады. JOIN арқасында реляциялық мәліметтер базасы
деректерді сақтауға ғана емес, сонымен қатар оларды, ең болмағанда,
сұраныстарды
қолдана
отырып
талдауға
мүмкіндік
беретін
қуатты
функционалдылыққа ие. Барлық ДҚБЖ (дерекқорды басқару жүйелері) үшін ортақ
болып табылатын JOIN операторымен SQL сұрауларын жазудың негізгі
нюанстарын талдайық. Екі кестені қосу үшін JOIN операторында келесі синтаксис
бар:
SELECT Баған_аттары (1..N)
FROM 1_кесте_аты JOIN 2_кесте_аты
ON Шарт

11.

INNER JOIN ішкі қосылымы
Егер INNER JOIN операторы қолданса, онда сұраныс нәтижесіне тек біріктіру
шарты орындалатын жазбалар ғана енеді. Тағы бір шарт – жазбалар екі кестеде де
болуы керек.
SELECT Баған_аттары (1..N)
FROM 1_кесте_аты INNER JOIN 2_кесте_аты
ON Шарт
Бұны JOIN да жасайды. Осылайша, INNER сөзі міндетті емес

12.

Сыртқы қосылыстар OUTER JOIN
Егер сыртқы байланысты қолданылса, онда сұраныс нәтижесіне тек екі кестедегі
сәйкестіктері бар жазбалар ғана емес, сонымен қатар кестелердің бірінің жазбалары да енеді. Бұл
сыртқы қосылыстың ішкі байланысынан ерекшеленеді. Сүзгісіз барлық жазбаларды таңдау керек
кестені көрсету байланыс бағыты деп аталады.
LEFT OUTER JOIN / LEFT JOIN
Осы қосылыстың соңғы нәтижесіне оң жақпен бірде-бір сәйкестік болмаса да, сол жақтағы,
бірінші кестедегі барлық жазбалар және біріктіру шарты орындалатын екінші кестедегі жазбалар
кіреді.
SELECT Баған_аттары (1..N)
FROM 1_кесте_аты
LEFT JOIN 2_кесте_аты
ON Шарт

13.

RIGHT OUTER JOIN / RIGHT JOIN
Сол жақпен бірде-бір сәйкестік болмаса да, оң, екінші кестедегі барлық жазбалар
және біріктіру шарты орындалатын бірінші кестедегі жазбалар, осы қосылыстың
соңғы нәтижесіне енеді.
SELECT Баған_аттары (1..N)
FROM 1_кесте_аты
RIGHT JOIN 2_кесте_аты
ON Шарт

14. SELECT операторы

SELECT [ ALL | DISTINCT ]
[ TOP (top_value) [ PERCENT ]]
{*|[өріс атауы [AS
жаңа аты]]}
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions] (AVG, MAX, MIN, SUM, COUNT)
[HAVING condition]
[ORDER BY expression [ ASC | DESC ]];

15. Мысалдар

1.
SELECT Firstname, Lastname FROM Student;
2.
SELECT Firstname, Birthday FROM Student;
3.
SELECT * FROM Student;
4.
SELECT City FROM Student;
5.
SELECT DISTINСT City FROM Student;
6.
SELECT * FROM Klient

16. TOP және TOP PERCENT

SELECT TOP(3)
inventory_id, inventory_type, quantity
FROM inventory
WHERE inventory_type = 'Программное обеспечение'
ORDER BY inventory_id ASC;
SELECT TOP(10) PERCENT
inventory_id, inventory_type, quantity
FROM inventory
WHERE inventory_type = 'Программное обеспечение'
ORDER BY inventory_id ASC;

17. FROM

SELECT БАҒАН АТАУЛАРЫ(1..N)
FROM table1
[ { INNER JOIN
| LEFT OUTER JOIN
| RIGHT OUTER JOIN
| FULL OUTER JOIN } table2
ON table1.column1 = table2.column1 ]

18. Мысалы

Categories
Parts
Catnumb
Cat_name
Price
10
Құрылыс
материалдары
105,00
505
Жылжымайтын
мүлік
210,00
205
Транспорт
160,00
30
Жиһаз
77,00
45
Техника
65,00
Part_ID
Part
Cat
1
Пәтерлер
505
2
Автомашиналар
205
3
Тақта
10
4
Шкафтар
30
5
Кітаптар
160

19. INNER JOIN

SELECT Parts.Part, Categories.Catnumb AS Cat,
Categories.Price FROM Parts INNER JOIN
Categories ON Parts.Cat = Categories.Catnumb
part
Cat
Price
Пәтерлер
505
210,00
Автомашиналар
205
160,00
Тақта
10
105,00
Шкафтар
30
77,00

20. Сыртқы біріктірулер

LEFT – негізгі кесте <кесте 1> болып алынады.
RIGHT - <кесте 2> негізгі кесте болып алынады.
FULL - <кесте 1> және <кесте 2> болып алынады.

21. LEFT OUTER JOIN (сол жағынан сыртқы біріктіру)

SELECT Parts.Part, Categories.Catnumb AS Cat,
Categories.Price FROM Parts LEFT OUTER JOIN
Categories ON Parts.Cat = Categories.Catnumb
part
Cat
Price
Пәтерлер
505
210,00
Автомашиналар
205
160,00
Тақта
10
105,00
Шкафтар
30
77,00
Кітаптар
160
NULL

22. RIGHT OUTER JOIN (оң жағынан сыртқы біріктіру)

SELECT Parts.Part, Categories.Catnumb AS Cat,
Categories.Price FROM Parts RIGHT OUTER JOIN
Categories ON Parts.Cat = Categories.Catnumb
part
cat
price
Пәтерлер
505
210,00
Автомашиналар
205
160,00
Тақта
10
105,00
Шкафтар
30
77,00
NULL
45
65,00

23. FULL OUTER JOIN (толық сыртқы біріктіру)

SELECT Parts.Part, Categories.Catnumb AS Cat,
Categories.Price FROM Parts FULL OUTER JOIN
Categories ON Parts.Cat = Categories.Catnumb
Part
Cat
Price
Пәтерлер
505
210,00
Автомашинала
р
205
160,00
Тақта
10
105,00
Шкафтар
30
77,00
Кітаптар
160
NULL
NULL
45
65,00

24. WHERE

Салыстыру
Диапазон аралығына жататындығын тексеру
Жиынға тиістілігін тексеру
Шаблонға сәйкестігін тексеру
NULL мәнін тексеру

25. Салыстыру

<, >, <=, >=, <>, =
AND, OR , NOT

26. Мысалдар

SELECT *
FROM inventory
WHERE quantity > 5
ORDER BY inventory_id ASC;
SELECT inventory.inventory_id, products.product_name, inventory.quantity
FROM inventory
INNER JOIN products
ON inventory.product_id = products.product_id
ORDER BY inventory_id;

27. Мысалдар

SELECT *
FROM employees
WHERE last_name = ‘Асанов'
AND employee_id >= 9000;
SELECT employees.employee_id, contacts.last_name
FROM employees
INNER JOIN contacts
ON employees.employee_id = contacts.contact_id
WHERE employees.first_name = ‘Арман';

28. Мысалдар

1.
SELECT Fam, Imy FROM Student WHERE Fam = ‘Асанов’;
2.
SELECT Fam, Imy FROM Student WHERE Kurs = 3 AND Stip > 0;
3.
SELECT * FROM Sdelka WHERE Kolichestvo>20
4.
SELECT Nazvanie,Cena FROM Tovar WHERE Cena>=100 And Cena<=150
5.
SELECT Familiya, GorodKlienta FROM Klient WHERE GorodKlienta=‘Актобе’
Or GorodKlienta =‘Алматы’

29. Диапазон аралығы

BETWEEN <өрнек1 > AND <өрнек2 >

30. Мысал

SELECT Nazvanie, Cena
FROM Tovar
WHERE Cena Between 100 And 150
SELECT * FROM Subject
WHERE Hour BETWEEN 30 AND 40
SELECT * FROM Student WHERE Stip BETWEEN 100 AND 140

31. Жиынға тиістілігін тексеру

IN (<өрнек 1>, <өрнек 2>)

32. Мысал

SELECT Familiya, GorodKlienta
FROM Klient
WHERE GorodKlienta in (‘Актобе’, ‘Атырау’)
SELECT * FROM Subject WHERE Curs IN (1, 2)
SELECT Fam FROM Student WHERE Curs IN (1, 4)

33. Шаблонға сәйкестігін тексеру

%
_
[]
Like <өрнек>

34. Мысал

SELECT * FROM Student WHERE Fam LIKE ’A%’
SELECT Klient.Familiya, Klient.Telefon
FROM Klient
WHERE Klient.Telefon Like’_4%’
SELECT Klient.Familiya, Klient.Telefon
FROM Klient
WHERE Klient.Telefon Like ’_[24]%’

35. Мысал

SELECT Klient.Familiya
FRОМ Klient
WHERE Klient.Familiya Like "%ро%"

36. NULL

SELECT Familiya, Telefon
FROM Klient
WHERE Telefon Is Null
SELECT Klient.Familiya, Klient.Telefon
FROM Klient
WHERE Klient.Telefon Is Not Null

37. ORDER BY

SELECT Klient.Familiya, Klient.Telefon FROM Klient ORDER BY Klient.Familiya
desc
SELECT * FROM Subject ORDER BY Name;
SELECT * FROM Subject ORDER BY Hours DESC;
SELECT * FROM Subject ORDER BY Sem, Name;
SELECT Klient.Firma, Klient.Familiya
FROM Klient
ORDER BY Klient.Firma, Klient.Familiya DESC

38. Тапсырма

Мәліметтер қоры 4 кестеден тұрады:
Product(maker(өндіруші), model(моделі, PK), type(типіPC, Laptop, Принтер))
PC(code(уникальды код, PK), model(моделі, FK),
speed(процессор жиілігі МГц), ram(жедел жады көлемі
ГБ), hd(диск көлемі ГБ), cd, price(бағасы))
Laptop(code(уникальды код, PK), model(моделі, FK),
speed(процессор жиілігі МГц), ram(жедел жады көлемі
ГБ), hd(диск көлемі ГБ), price(бағасы), screen(экран
өлшемі))
Printer(code, model(уникальды код, PK), color(түрлі-түсті
екенін көрсетеді, мәні-y), type(типі-Laser, Jet, Matrix),
price(бағасы))
Осы мәліметтер қорына әр түрлі сұраныстар жасау керек. (Кемі 5 сұраныс)

39. НАЗАРЛАРЫҢЫЗҒА РАХМЕТ!

English     Русский Правила