
- •Термінальний сервер[ред.]
- •Процес роботи [ред.]
- •Проблеми ліцензування [ред.]
- •Windows xp як сервер терміналів [ред.]
- •Загальне призначення сервера [ред.]
- •Історія [ред.]
- •Ролі сервера [ред.]
- •Серверне обладнання [ред.]
- •Історія [ред.]
- •Принцип роботи [ред.]
- •Характеристики [ред.]
- •Переваги Wi-Fi [ред.]
- •Недоліки Wi-Fi [ред.]
- •Комерційне використання Wi-Fi [ред.]
- •Бездротові технології в промисловості [ред.]
- •Міжнародні проекти [ред.]
- •Некомерційне використання Wi-Fi [ред.]
- •Безкоштовний доступ до Інтернету через Wi-Fi [ред.]
- •Юридичний статус [ред.]
- •Україна [ред.]
- •Типи [ред.]
- •Параметри мережного адаптера [ред.]
- •Функції та характеристики мережевих адаптерів [ред.]
- •Класифікація мережевих адаптерів [ред.]
- •Перше покоління [ред.]
- •Друге покоління [ред.]
- •Третє покоління [ред.]
- •Четверте покоління [ред.]
- •[Ред.]Використання
- •[Ред.]Конструкція
- •[Ред.]Застосування
- •[Ред.]Стандарти
- •Принцип роботи [ред.]
- •Застосування [ред.]
- •3.1.2. Структура стандартів ieee 802.X
- •Висновки
- •Підручник [ред.]
- •Мова опису даних [ред.]
- •Мова маніпуляції даними [ред.]
- •Транзакції [ред.]
- •Посилання [ред.]
Підручник [ред.]
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 умова;
Знову ж таки, не варто забувати, що немає команди "Відмінити".