Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
окт.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
231.76 Кб
Скачать

Підручник [ред.]

SQL краще вчити на практиці, тому треба запустити якусь СУБД, наприклад mySQL. Можна використати веб-інтерфейс w3schools, правда там не можна змінювати базу.

Загалом мову SQL поділяють на дві частини: мову маніпуляції даними ( Data Manipulation Language (DML) ), та мову опису даних ( Data Definition Language (DDL) ). Мова SQL не чутлива до регістру, і оператори пишуть великими буквами тільки для зручності.

Мова опису даних [ред.]

Дозволяє нам описати структуру даних.

Для інформації про типи даних можна переглянути розділ Типи даних MySQL.

Нехай маємо базу даних університету, і користувача, що має повний доступ до цієї бази. Створимо таблицю з людьми:

CREATE TABLE persons (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

surname VARCHAR(50),

name VARCHAR(200),

tel VARCHAR(50)

);

Щоб потім змінити структуру таблиці використовують команду ALTER, наприклад:

ALTER TABLE persons ADD COLUMN email VARCHAR(100);

Крім цього таблиці можна перейменовувати

ALTER TABLE TABLE RENAME AS new_table;

та звісно видаляти поля:

ALTER TABLE persons DROP COLUMN tel;

Мова маніпуляції даними [ред.]

SELECT [ред.]

Оператор SELECT дозволяє вибирати дані з бази. Загалом оператор SELECT виглядає так:

SELECT імена_полів

FROM імена_таблиць

WHERE умова;

Імена полів записуються через кому. Якщо потрібно вибрати всі поля, пишуть зірочку ("*"). При потребі можна уточнити з якої таблиці брати поле, додавши перед його іменем.

SELECT може видати нам рядки що повторюються. Якщо ми хочемо мати тільки унікальні значення, то можемо уникнути повторень командою DISTINCT.

SELECT DISTINCT поля FROM таблиці;

Умова дозволяє відкинути непотрібні нам значення. Загалом в умові певні поля порівнюються з певними значеннями, чи між собою. Текстові значення беруться в одинарні лапки (можна і в подвійні). Для порівняння можна користуватись такими операторами:

Оператор

Опис

Приклад

=

Рівність

surname='Іванов'

<> (можливо також != )

Нерівність

surname!='Іванов'

<, >, <=, >=

Менше, більше, менше рівно, більше рівно

age>=18

BETWEEN

Всі значення що знаходяться між даними двома включно

BETWEEN 'Іванов' AND 'Петров'

LIKE

Порівняння з шаблоном

surname LIKE 'І%'

IN

Приймає одне з перелічених значень

faculty IN ('Кубик','Радіофак','Мехмат')

В шаблоні для LIKE можна використовувати '%' як замінник для будь-якого числа будь-яких символів, та '_' як замінник для довільного одного символа.

Також в умові можна використовувати оператори OR, AND та NOT, та дужки.

Також до запиту SELECT можна додати команду ORDER BY, що дозволяє впорядкувати результат за заданими стовпцями. Щоб сортувати в зворотньому порядку після стовпців за якими сортують пишуть DESC:

SELECT name FROM students ORDER BY name DESC;

Варто також зауважити, що ORDER BY не може стояти перед WHERE інакше будуть помилки.

Також можна задати максимальну кількість записів в результаті. Корисно для великих таблиць. Правда синтаксис трохи відрізняється для різних систем:

MySQL

SELECT назви_стовпців FROM назва_таблиці LIMIT кількість

SQL Server

SELECT TOP кількість|відсоток назви_стовпців FROM назва таблиці

Oracle

SELECT назви_стовпців FROM назва_таблиці WHERE ROWNUM <= кількість

JOIN [ред.]

З'єднання використовуються для запитів з кількох таблиць, що базуються на зв'язках між певними стовпцями таблиць.

З'єднання бувають різні. Наприклад INNER JOIN (теж саме що і JOIN), де є хоч одне співпадіння в стовпцях таблиці.

Пишуть так:

SELECT назви_стовпців

FROM перша_таблиця

INNER JOIN друга_таблиця

ON перша_таблиця.назва_стовпця=друга_таблиця.назва_стовпця

І це буде те ж саме що і

SELECT назви_стовпців

FROM перша_таблиця, друга_таблиця

WHERE перша_таблиця.назва_стовпця=друга_таблиця.назва_стовпця

LEFT JOIN працює та пишеться майже так само, але повертає таблицю, в яку входять всі записи лівої таблиці (недостаючі записи з правої заповнються NULLами).

RIGHT JOIN відповідно навпаки.

FULL JOIN повертає об'єднання результатів RIGHT та LEFT JOIN.

INSERT [ред.]

Оператор INSERT додає до таблиці рядок. Має такий синтаксис:

INSERT INTO назва_таблиці VALUES (список_значень);

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

INSERT INTO students(name) VALUES ('Іван');

Всі інші поля отримають значення за замовчуванням.

UPDATE [ред.]

Змінює значення полів в уже існуючих записах. Синтаксис:

UPDATE назва_таблиці SET стовпець1=значення1, стовпець2=значення2, ... WHERE умова;

З цим оператором треба обережно, бо якщо забути задати умову, то зміняться всі записи таблиці.

DELETE [ред.]

Найпростіший оператор:

DELETE FROM назва_таблиці WHERE умова;

Знову ж таки, не варто забувати, що немає команди "Відмінити".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]