Як складати SQL-запити - докладні приклади

Кожен з нас регулярно стикається і користується різними базами даних. Коли ми вибираємо адреса електронної пошти, ми працюємо з базою даних. Бази даних використовують пошукові сервіси, банки для зберігання даних про клієнтів і т.д.

Але, незважаючи на постійне використання баз даних, навіть для багатьох розробників програмних систем залишається багато «білих плям» через різне тлумачення одних і тих же термінів. Ми дамо коротке визначення основних термінів баз даних перед розглядом мови SQL. Отже.

База даних - файл або набір файлів для зберігання впорядкованих структур даних і їх взаємозв`язків. Дуже часто базою даних називають систему управління базою даних (СКБД). База даних - це тільки сховище інформації у певному форматі і може працювати з різними СУБД.

Таблиця - уявімо собі папку, в якій зберігаються документи, згруповані за певною ознакою, наприклад список замовлень за останній місяць. Це і є таблиця в комп`ютерній базі даних. Окрема таблиця має своє унікальне ім`я.

Тип даних - вид інформації, дозволеної для зберігання в окремому стовпці або рядку. Це можуть бути числа або текст певного формату.

Стовпець і рядок - всі ми працювали з електронними таблицями, в яких також присутні рядки і стовпці. Будь реляційна база даних працює з таблицями аналогічним чином. Рядки іноді називають записами.

Первинний ключ - кожен рядок таблиці може мати один або декілька стовпців для її унікальної ідентифікації. Без первинного ключа дуже важко проводити оновлення, зміна та видалення потрібних рядків.

Що таке SQL?

Мова запитів SQL (Англ. Structured Query Language - мова структурованих запитів) був розроблений тільки для роботи з базами даних і зараз є стандартом для всіх популярних СУБД. Синтаксис мови складається з невеликої кількості операторів і простий у вивченні. Але, незважаючи на зовнішню простоту, він дозволяє створення sql запитів для складних операцій з БД будь-якого розміру.

sql запити

З 1992 р існує загальноприйнятий стандарт, званий ANSI SQL. Він визначає базовий синтаксис і функції операторів і підтримується всіма лідерами ринку СУБД, такими як ORACLE Microsoft SQL Server. Розглянути всі можливості мови в одній невеликій статті неможливо, тому ми коротко розглянемо тільки основні SQL запити. Приклади наочно показують простоту і можливості мови:

  • створення баз і табліц;
  • вибірка даних;
  • додавання запісей;
  • модифікація і видалення інформації.

Типи даних SQL

Всі стовпці в таблиці бази даних зберігають один тип даних. Типи даних в SQL такі ж, як і в інших мовах програмування.

Тип данихОпис
INTЦілі числа
REALЧисла з плаваючою комою
TEXTСимвольний рядок зі змінною довжиною
DATEsql запит "дата" в різних форматах
TIMEЧас
CHARТекстові рядки фіксованої довжини

Створюємо таблиці і бази даних

створення sql запитів

Створювати нові бази, таблиці та інші запити в SQL можна двома способами:

  • Операторами SQL через консоль СУБД
  • Використовуючи інтерактивні засоби адміністрування, що входять до складу сервера баз даних.

Створюється нова база даних оператором CREATE DATABASE <наименование базы данных>-. Як бачимо, синтаксис простий і лаконічний.

Таблиці всередині бази даних створюємо оператором CREATE TABLE з наступними параметрами:

  • найменування таблиці
  • імена і типи даних стовпців

Як приклад створимо таблицю Commodity з наступними стовпцями:

СтовпецьОпис
commodity_idID продукту
vendor_idID постачальника (ключ зовнішньої таблиці 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

Оператор вибірки даних - самі часто використовувані 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 запит дата

Для додавання рядка в таблицю використовуються SQL запити з оператором INSERT. Додавання може проводитися трьома способами:

  • додаємо нову цілу строку;
  • частина строкі;
  • результати запиту.

Для додавання повної рядка необхідно вказати ім`я таблиці і значення стовпців (полів) нового рядка. Наведемо приклад:

INSERT INTO Commodity VALUES (`106`, `50`, `Coca-Cola`, `1.68`, `No Alcogol,)

Приклад додає в таблицю новий товар. Значення вказуються після VALUES для кожного шпальти. Якщо немає відповідного значення для стовпця, то необхідно вказувати NULL. Стовпці заповнюються значеннями в порядку, зазначеному при створенні таблиці.

У разі додавання тільки частини рядка необхідно явно вказати найменування стовпців, як у прикладі:

INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)

VALUES (`106`, `50`, `Coca-Cola`,)

Ми ввели тільки ідентифікатори товару, постачальника і його найменування, а решта поля відставили порожніми.

Додавання результатів запиту

В основному INSERT використовується для додавання рядків, але може використовуватися і для додавання результатів оператора SELECT.

Зміна даних

мова запитів sql

Для зміни інформації в полях таблиці бази даних необхідно використовувати оператор 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 = `Fanta`, commodity_price = `3.2` WHERE commodity_id = `106`

Для видалення інформації в стовпці можна привласнити йому значення NULL, якщо це дозволяє структура таблиці. Необхідно пам`ятати, що NULL - це саме «ніяке» значення, а не нуль у вигляді тексту або числа. Видалимо опис товару:

UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = `106`

Видалення рядків

sql запити приклади

SQL запити на видалення рядків у таблиці виконуються оператором DELETE. Є два варіанти використання:

  • у таблиці видаляються певні строкі;
  • видаляються всі рядки в таблиці.

Приклад видалення одного рядка з таблиці:

DELETE FROM Commodity WHERE commodity_id = `106`

Після DELETE FROM вказуємо ім`я таблиці, в якій будуть видалятися рядка. Оператор WHERE містить умову, за яким будуть вибиратися рядки для видалення. У прикладі ми видаляємо рядок товару з ID = 106. Вказувати WHERE дуже важливо тому пропуск цього оператора пріведт до видалення всіх рядків в таблиці. Це відноситься і до зміни значення полів.

У операторі DELETE не вказуються найменування стовпців і метасимволу. Він повністю видаляє рядки, а видалити окремий стовпець він не може.

Використання SQL в Microsoft Access

запити sql 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, реплікація баз даних і хмарних сервісів.




» » Як складати SQL-запити - докладні приклади