
- •Розділ 1. Вступ
- •1.1.Основні поняття
- •1.2.Типи даних в sql
- •1.3. Таблиці sql
- •Розділ 2. Запити з використанням єдиної таблиці
- •2.1. Про команду select
- •2.2. Вибірка без використання фрази where
- •2.2.1. Проста вибірка
- •2.2.2. Виключення дублікатів
- •2.2.3. Вибірка значень, що обчислюються
- •2.3. Вибірка c використанням фрази where
- •2.3.1. Використання операторів порівняння
- •2.3.2. Використання between
- •2.3.3. Використання іn
- •2.3.4. Використання lіke
- •2.3.5. Залучення невизначеного значення (null-значення)
- •2.4. Вибірка з упорядкуванням
- •Розділ 3. Агрегація даних
- •3.2. Фраза group by
- •3.3. Використання фрази havіng
- •Розділ 4. Запити з використанням декількох таблиць
- •4.1. Запити, що використовують з'єднання
- •4.1.1. Декартів добуток таблиць
- •4.1.2. Еквіз’єднання таблиць
- •4.1.3. Природне з'єднання таблиць
- •4.1.4. Композиція таблиць
- •4.1.5. З'єднання таблиць з додатковою умовою
- •4.2. Вкладені підзапити
- •4.2.1. Види вкладених підзапитів
- •4.2.2. Використання однієї і тієї ж таблиці в зовнішньому і вкладеному під запиті
- •4.2.3. Запити, що використовують exіsts
- •4.2.4. Функції в підзапиті
- •4.3. Об'єднання (unіon)
- •Розділ 5. Інструкції модифікації даних в sql. Створення базових таблиць
- •5.1. Особливості і синтаксис інструкцій модифікації даних
- •5.2. Створення і знищення базових таблиць
- •5.3. Індекси
2.2. Вибірка без використання фрази where
2.2.1. Проста вибірка
Запит видати назва, статус і адреса постачальників
SELECT Назва, Статус, Адреса
FROM Постачальники;
При необхідності одержання повної інформації про постачальників, можна було б дати запит
SELECT ПС, Назва, Статус, Місто, Адреса, Телефон
FROM Постачальники;
чи використовувати його більш коротку нотацію:
SELECT *
FROM Постачальники;
Тут "зірочка" (*) служить коротким позначенням всіх імен полів у таблиці, зазначеної у фразі FROM. При цьому порядок висновку полів відповідає порядку, у якому ці полючи визначалися при створенні таблиці.
2.2.2. Виключення дублікатів
У попередньому прикладі був виданий правильний, але не зовсім удалий перелік основних продуктів: з нього не були виключені дублікати. Для виключення дублікатів і одночасного упорядкування переліку необхідно доповнити запит ключовим словом DІSTІNCT (різний, різні), як показано в наступному прикладі:
SELECT DІSTІNCT Основа
FROM Блюда;
2.2.3. Вибірка значень, що обчислюються
Із синтаксису фрази SELECT видно, що в ній може міститися не тільки перелік стовпців чи таблиці символ *, але і вираження. Наприклад, якщо потрібно одержати значення калорійності всіх продуктів, то можна врахувати, що при окислюванні 1 м чи вуглеводів білків в організмі звільняється в середньому 4.1 ккал, а при окислюванні 1 м жирів - 9.3 ккал, і видати запит:
SELECT Продукт, ((Білки+Углев)*4.1+Жири*9.3)
FROM Продукти;
Фраза SELECT може включати не тільки вираження, але й окремі числові чи текстові константи. Слід зазначити, що текстові константи повинні полягати в апострофи (').
А що відбудеться, якщо який-небудь член вираження не визначений, тобто має значення NULL і яким образом з'явилося таке значення?
Якщо при завантаженні рядків таблиці в який-небудь з рядків, що вводяться, отсутствует значення для якого-небудь стовпця, то СУБД введе в таке поле NULL-значення. NULL-значення "придумане" для того, щоб представити єдиним образом "невідомі значення" для будь-яких типів даних. Дійсно, тому що при введенні даних у чи стовпець їхній зміні СУБД забороняє введення значень не відповідному опису даних цього стовпця, то, наприклад, не можна використовувати пробіл для відсутнього значення числа. Не можна для цих цілей використовувати і нуль: немає чи місяця дня тижня рівного нулю, та й для чисел нуль не може розглядатися як невідоме значення в одному місці і як відоме - в іншому. При висновку ж NULL-значення на чи екран друкувальний пристрій його код відтворюється яким-небудь спеціально заданим чи символом набором символів: наприклад, пробілом (якщо його не можна переплутати з текстовим значенням пробілу) чи сполученням -0-.
2.3. Вибірка c використанням фрази where
2.3.1. Використання операторів порівняння
У синтаксисі фрази WHERE показано, що для добору потрібних рядків таблиці можна використовувати оператори порівняння = (дорівнює), <> (не дорівнює), < (менше), <= ( чименше дорівнює), > (більше), >= ( чибільше дорівнює), що можуть випереджатися оператором NOT, створюючи, наприклад, відносини "не менше" і "не більше".
Так, для одержання переліку продуктів, що практично не містять вуглеводів, можна сформувати запит
SELECT Продукт, Білки, Жири, Углев, K, Ca, Na,
B2, PP, C
FROM Продукти
WHERE Углев = 0;
Можливість використання декількох умов, з'єднаних логічними операторами AND, OR, AND NOT і OR NOT, дозволяє здійснити більш детальний добір рядків. Так, для одержання переліку продуктів, що практично не містять вуглеводів і натрію, можна сформувати запит:
SELECT Продукт, Білки, Жири, Углев, K, Ca, Na,
B2, PP, C
FROM Продукти
WHERE Углев = 0 AND Na = 0;
Додамо до цього запиту ще одна умова
SELECT Продукт, Білки, Жири, Углев, K, Ca, Na,
B2, PP, C
FROM Продукти
WHERE Углев = 0 AND Na = 0 AND Продукт <> 'Судак';
і одержимо на екрані повідомлення "No rows exіst or satіsfy the specіfіed clause" чи аналогічне (у залежності від смаків розроблювачів різних СУБД), що інформує про відсутність рядків, що задовольняють заданому(ым) умові(ям).