Використовується для поернення тільки різних значень з таблиці.
Синтаксис: Select Distinct назва_стовця(ів) from назва_таблиці
Вибираєм різні значення з 2-х стовців таблиці zeh.
Select Distinct kod_zehu,nazva_zehu from zeh;
4.Оператор Group By
Використовується для групування результату одного або декількох стовців.
Синтаксис: Select назва_стовця(ів) from назва таблиці Group By назва_поля
Вибираєм стовбець nazva_zehu (застосовуєм вбудовану функцію суми для стовця kilkist_robitnykiv,щоб підрахувати кількість робітників) з таблиці zeh та групуємо за стовцем nazva_zehu
Select nazva_zehu,sum(kilkist_robitnykiv) from zeh Group by nazva_zehu;
5.Having
Застосовується для фільтрації агрегатних функцій і таблиць сгрупованих за допомогою Group By вказаних в Select.
6.Order By
Використовується для сортування результату.
Синтаксис: Select назва_стовця(ів) from назва_таблиці Order By назва_стовпця,який сортуємо
Select kod_klienta,data_zamovlennya from zamovlennya Order By data_zamovlennya;
Select nazva_tovaru,Cina from zamovlennya Order By nazva_tovaru Desc;
7.Like
Даний оператор використовується з умовою WHERE для пошуку значень за зразком.
|
|
Синтаксис: Select назва стовпця(ів) from назва таблиці Where назва стовця Like значення
Select full_name as name,adressa,telefon from klient where full_name like’k%’;
Select full_name as name,adressa,telefon from klient where (full_name like’%ivna’) and telefon like’%547’;
Select full_name as name,adressa,telefon from klient where (adressa like’%fju%’) or (full_name like ‘lap%’);
Select full_name as name,adressa,telefon from klient where (ful_name not like’%in%’) and (telefon like ‘%050%’);
8.Between
Даний оператор використовується в умові WHERE для вибору даних між двома значеннями.
Синтаксис: Select назва_стовпця(ів) from назва_таблиці Where назва_стовпця Between значення 1 And значення 2
Select full_name,stazh,posada from robitnyk where stazh between 5 And 8;
Select full_name,stazh,zarplata from robitnyk where (posada between ‘buhalter’ And ‘ingener’)
And(zarplata between 3000 and 3500);
9.Limit
Дана умова використовується для повернення певної кількості записів
Синтаксис: Select назва_стовпця(ів) from назва_таблиці Limit кількість записів
Select full_name as name,nazva_zehu as zeh,kilkist_robitnykiv from zeh limit 5;
10.Арифметичні дії
11.Оператор Union
Використовується для поєднання запросів Select
Синтаксис: Select назва_стовпця(ів) from назва_таблиці 1 Union Select назва_стовпця(ів) from назва_таблиці 2
Select kod_klienta from klient where kod_klienta>300 Union Select kod_klienta from zamovlennya where kod_klienta<270;
Select kod_klienta from klient where kod_klienta<300 Union All Select kod_klienta from zamovlennya where (kod_klienta>230 and kod_klienta<270);
12.Left Join
Повертає рядки з лівої таблиці,навіть якщо їх нема в правій таблиці.
Синтаксис: Select назва_стовпця(ів) from назва_таблиці 1 Left Join назва_таблиці 2 On назва_таблиці 1.назва_стовпця=назва_таблиці 2.назва_стовпця
Select full_name as name,nazva_zehu as zeh,cina from zeh left Join zamovlennya On zeh.nazva_tovaru=zamovlennya.nazva_tovaru Order by Full_name;
12.Right Join
Повертає рядки з правої таблиці,навіть якщо їх нема в лівій таблиці.
Синтаксис: Select назва_стовпця(ів) from назва_таблиці 1 Right Join назва_таблиці 2 On назва_таблиці 1.назва_стовпця=назва_таблиці 2.назва_стовпця
|
|
Select full_name as name,nazva_zehu as zeh,cina from zeh Right Join zamovlennya On zeh.nazva_tovaru=zamovlennya.nazva_tovaru Order by Full_name;
13.Inner Join
Повертає рядки,коли є хоча б один збіг в обох таблицях
Синтаксис: Синтаксис: Select назва_стовпця(ів) from назва_таблиці 1 Inner Join назва_таблиці 2 On назва_таблиці 1.назва_стовпця=назва_таблиці 2.назва_стовпця
Select full_name as name,nazva_zehu as zeh,cina from zeh Inner Join zamovlennya On zeh.nazva_tovaru=zamovlennya.nazva_tovaru Order by Full_name;
Лабораторна робота № 4
Тема: Структуровані запити і підзапити.
Завдання: Створити запити на об’єднання декількох таблиць. Використати самооб’єднання таблиці (таблицю об’єднують саму з собою). Не менше 10 запитів. Крім того створити підзапити з використанням not in, all, any, exists, not exists. Створити підзапити з використанням update, delete, insert.
1.Об’єднання таблиць
v select robitnyk.kod_robitnyka,robitnyk.posada,zeh.nazva_zehu
from robitnyk,zeh
where robitnyk.zarplata>3000
and robitnyk.full_name=zeh.full_name
and zeh.kod_zehu>15;
v select zeh.full_name,zeh.nazva_zehu,zamovlennya.kod_klienta
from zeh,zamovlennya
where zamovlennya.data_zamov lennya>‘2014-09-27 12:34:45’
and zeh.nazva_tovaru=zamovlennya.nazva_tovaru
and kilkist_robitnykiv>60;
v select klient.full_name,klient.adressa,zamovlennya.data_zamovlennya
from klient,zamovlennya
where zamovlennya.nazva_tovaru like'%k%'
and zamovlennya.kod_klienta=klient.kod_klienta
and klient.telefon not like'%9%4%7%';
v select zamovlennya.kod_klienta,zeh.kod_zehu,robitnyk.telefon
from zamovlennya,zeh,robitnyk
where robitnyk.stazh>2
and robitnyk.full_name=zeh.full_name
and zeh.nazva_tovaru=zamovlennya.nazva_tovaru
and zamovlennya.cina between 50000 and 95000
and zeh.kilkist_robitnykiv>50;
v select klient.full_name,zamovlennya.data_vykonannya as data,zeh.nazva_zehu
from klient,zeh,zamovlennya
where zeh.full_name like '%v%' and zeh.nazva_tovaru=zamovlennya.nazva_tovaru and zamovlennya.kod_klienta=klient.kod_klienta
and zamovlennya.data_zamovlennya between '2015-01-15 13:00:00' and '2015-03-15 12:00:00'
and klient.Nayavnist_znyzhky=1;
v select robitnyk.kod_robitnyka as robitnyk,zeh.nazva_zehu as zeh,klient.kod_klienta as klient,zamovlennya.data_zamovlennya as work_begin,zamovlennya.data_vykonannya as work_end from robitnyk,zeh,klient,zamovlennya
where robitnyk.adressa not like'a%'
and robitnyk.full_name=zeh.full_name and zeh.nazva_tovaru=zamovlennya.nazva_tovaru
and zamovlennya.kod_klienta=klient.kod_klienta
and zamovlennya.cina>90000 and zeh.kilkist_robitnykiv>25;
2.Самооб’єднання таблиць
v select a.kod_robitnyka,a.full_name,a.telefon
from robitnyk a,robitnyk b
where a.stazh=b.stazh
and a.posada!=b.posada
order by a.full_name;
v select a.kod_robitnyka as kod,a.full_name as name,a.kilkist_robitnykiv
from zeh a,zeh b
where a.nazva_tovaru!=b.nazva_tovaru
and a.nazva_zehu=b.nazva_zehu
and a.kod_robitnyka=b.kod_robitnyka;
v select distinct a.kod_klienta as klient,a.nazva_tovaru as tovar,a.cina
from zamovlennya a,zamovlennya b
where a.cina=b.cina
and a.data_zamovlennya between ’ 2014-05-14 17:30:00‘ and '2015-01-23 12:45:00';
v select a.kod_klienta as klient,a.full_name as name
from klient a,klient b
where a.kod_klienta=b.kod_klienta
and a.nayavnist_znyzhky!=true;