Як складати sql-запити - докладні приклади
Кожен з нас регулярно стикається і користується різними базами даних. Коли ми вибираємо Адреса електронної пошти, ми працюємо з базою даних. Бази даних використовують пошукові сервіси, банки для зберігання даних про клієнтів і т.д.
Але, не дивлячись на постійне використання баз даних, навіть для багатьох розробників програмних систем залишається багато «білих плям» через різне тлумачення одних і тих же термінів. Ми дамо коротке визначення основних термінів баз даних перед розглядом мови SQL. Отже.
База даних - файл або набір файлів для зберігання впорядкованих структур даних і їх взаємозв`язків. Дуже часто базою даних називають систему управління базою даних (СУБД). База даних - це тільки сховище інформації в певному форматі і може працювати з різними СУБД.
Таблиця - уявімо собі папку, в якій зберігаються документи, згруповані за певною ознакою, наприклад список замовлень за останній місяць. Це і є таблиця в комп`ютерній базі даних. Окрема таблиця має своє унікальне ім`я.
Тип даних - вид інформації, дозволеної для зберігання в окремому стовпці або рядку. Це можуть бути числа або текст певного формату.
Стовпець і рядок - Всі ми працювали з електронними таблицями, в яких також присутні рядки і стовпці. Будь-яка реляційна база даних працює з таблицями аналогічним чином. Рядки іноді називають записами.
Первинний ключ - Кожен рядок таблиці може мати один або декілька стовпців для її унікальною ідентифікації. Без первинного ключа дуже важко виробляти оновлення, зміна і видалення потрібних рядків.
Що таке SQL?
Мова запитів SQL (Англ. Structured Query Language - мова структурованих запитів) був розроблений тільки для роботи з базами даних і зараз є стандартом для всіх популярних СУБД. Синтаксис мови складається з невеликої кількості операторів і простий у вивченні. Але, не дивлячись на зовнішню простоту, він дозволяє створення sql запитів для складних операцій з БД будь-якого розміру.
З 1992 р існує загальноприйнятий стандарт, званий ANSI SQL. Він визначає базовий синтаксис і функції операторів і підтримується всіма лідерами ринку СУБД, такими як ORACLE Microsoft SQL Server. Розглянути всі можливості мови в одній невеликій статті неможливо, тому ми коротко розглянемо тільки основні SQL запити. Приклади наочно показують простоту і можливості мови:
- створення баз і таблиць;
- вибірка даних;
- додавання записів;
- модифікація і видалення інформації.
Типи даних SQL
Всі стовпчики в таблиці бази даних зберігають один тип даних. Типи даних в SQL такі ж, як і в інших мовах програмування.
Тип даних | опис |
INT | Цілі числа |
REAL | Числа з плаваючою комою |
TEXT | Символьний рядок зі змінною довжиною |
DATE | sql запит "дата" в різних форматах |
TIME | час |
CHAR | Текстові рядки фіксованої довжини |
Створюємо таблиці і бази даних
Створювати нові бази, таблиці та інші запити в SQL можна двома способами:
- Операторами SQL через консоль СУБД
- Використовуючи інтерактивні засоби адміністрування, що входять до складу сервера баз даних.
Створюється нова база даних оператором CREATE DATABASE lt; найменування бази даннихgt; -. Як бачимо, синтаксис простий і лаконічний.
Таблиці всередині бази даних створюємо оператором CREATE TABLE з наступними параметрами:
- найменування таблиці
- імена і типи даних стовпців
Як приклад створимо таблицю Commodity з наступними стовпчиками:
стовпець | опис |
commodity_id | ID продукту |
vendor_id | ID постачальника (ключ зовнішньої таблиці Vendors) |
commodity_name | Найменування продукту |
commodity_price | вартість |
commodity_desc | опис |
Створюємо таблицю:
CREATE TABLE Commodity
(Commodity_id CHAR (15) NOT NULL,
vendor_id CHAR (15) NOT NULL,
commodity_name CHAR (254) NULL,
commodity_price 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
Є можливість отримати як результат запиту значення всіх стовпців рядка. Для цього використовується знак «*»:
SELECT * FROM Commodity
- Додатково SELECT підтримує:
- Сортування даних (оператор ORDER BY)
- Вибір відповідно до умов (WHERE)
- Угруповання термін (GROUP BY)
додаємо рядок
Для додавання рядка в таблицю використовуються SQL запити з оператором INSERT. Додавання може проводитися трьома способами:
- додаємо нову цілий рядок;
- частина рядка;
- результати запиту.
Для додавання повної рядка необхідно вказати ім`я таблиці і значення стовпців (полів) нового рядка. Наведемо приклад:
INSERT INTO Commodity VALUES ( `106`, `50`, `Coca-Cola`, `1.68`, `No Alcogol,)
Відео: (SQL запити) 1. Запит на вибірку даних за допомогою оператора select
Приклад додає в таблицю новий товар. Значення вказуються після VALUES для кожного стовпчика. Якщо немає відповідного значення для стовпця, то необхідно вказувати NULL. Стовпці заповнюються значеннями в порядку, зазначеному при створенні таблиці.
У разі додавання тільки частини рядка необхідно явно вказати найменування стовпців, як в прикладі:
INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)
VALUES ( `106`, &lsquo-50 `,` Coca-Cola `,)
Ми ввели тільки ідентифікатори товару, постачальника і його найменування, а решта поля відставили порожніми.
Додавання результатів запиту
В основному INSERT використовується для додавання рядків, але може використовуватися і для додавання результатів оператора SELECT.
Відео: Як створити запити в Microsoft Access за 10 хвилин
зміна даних
Для зміни інформації в полях таблиці бази даних необхідно використовувати оператор UPDATE. Оператор може застосовуватися двома способами:
- Оновлюються всі рядки в таблиці.
- Тільки для певного рядка.
UPDATE складається з трьох основних елементів:
- таблиця, в якій необхідно робити зміни;
- імена полів і їх нові значення;
- умови вибору рядків для зміни.
Розглянемо приклад. Припустимо, у товару з ID = 106 змінилася вартість, тому цей рядок необхідно оновити. Пишемо наступний оператор:
UPDATE Commodity SET commodity_price = `3.2` WHERE commodity_id = `106`
Ми вказали ім`я таблиці, в нашому випадку Commodity, де буде проводитися оновлення, потім після SET - нове значення стовпця і знайшли потрібний запис, вказавши в WHERE потрібне значення ID.
Для зміни декількох стовпців після оператора SET вказуються кілька пар стовпець-значення, розділених комами. Дивимося приклад, в якому оновлюється найменування та ціна товару:
UPDATE Commodity SET commodity_name =&rsquo-Fanta&rsquo-, commodity_price = `3.2` WHERE commodity_id = `106`
Для видалення інформації в стовпці можна привласнити йому значення NULL, якщо це дозволяє структура таблиці. Необхідно пам`ятати, що NULL - це саме «ніяке» значення, а не нуль у вигляді тексту або числа. Видалимо опис товару:
UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = `106`
видалення рядків
SQL запити на видалення рядків в таблиці виконуються оператором DELETE. Є два варіанти використання:
- в таблиці видаляються певні рядки;
- видаляються всі рядки в таблиці.
Приклад видалення одного рядка з таблиці:
DELETE FROM Commodity WHERE commodity_id = `106`
Після DELETE FROM вказуємо ім`я таблиці, в якій будуть видалятися рядка. Оператор WHERE містить умову, за якою обиратимуться рядки для видалення. У прикладі ми видаляємо рядок товару з ID = 106. Вказувати WHERE дуже важливо тому пропуск цього оператора пріведт до видалення всіх рядків в таблиці. Це відноситься і до зміни значення полів.
В операторі DELETE не вказуються найменування стовпців і метасимволу. Він повністю видаляє рядки, а видалити окремий стовпець він не може.
Використання SQL в Microsoft Access
Microsoft Access зазвичай використовується в інтерактивному режимі для створення таблиць, баз даних, для управління, зміни, аналізу даних в базі даних і з метою впровадити запити SQL Access через зручний інтерактивний конструктор запитів (Query Designer), використовуючи який можна побудувати і негайно виконати операторів SQL будь-якої складності.
Також підтримується режим доступу до сервера, при якому СУБД Access може використовуватися як генератор SQL-запитів до будь-якого ODBC джерела даних. Ця можливість дозволяє додаткам Access взаємодіяти з базами даних будь-якого формату.
розширення SQL
Оскільки SQL запити не мають всіх можливостей процедурних мов програмування, таких як цикли, розгалуження і т.д., виробники СУБД розробляють свій варіант SQL з розширеними можливостями. В першу чергу це підтримка збережених процедур і стандартних операторів процедурних мов.
Найбільш поширені діалекти мови:
- Oracle Database - PL / SQL
- Interbase, Firebird - PSQL
- Microsoft SQL Server - Transact-SQL
- PostgreSQL - PL / pgSQL.
SQL в Інтернет
СУБД MySQL поширюється під вільною ліцензією GNU General Public License. Є комерційна ліцензія з можливістю розробки замовних модулів. Як складова частина входить в найбільш популярні збірки Інтернет-серверів, таких як XAMPP, WAMP і LAMP, і є найпопулярнішою СУБД для розробки додатків в мережі Інтернет.
Була розроблена компанією Sun Microsystems і зараз підтримується корпорацією Oracle. Підтримуються бази даних розміром до 64 терабайт, стандарт синтаксису SQL: 2003, реплікація баз даних і хмарних сервісів.