Лекція 24. Вступ до SQL

MySQL - вільна реляційна система керування базами даних. Розробка та підтримка сайта MySQL здійснює корпорація Oracle, яка отримала права на торговельну марку разом з поглинанням Sun Microsystems, яка раніше придбала шведську компанію MySQL AB.

MySQL є рішенням для малих і середніх додатків. Входить до складу серверів WAMP, AppServ, LAMP і в портативні збірки серверів Денвер, XAMPP, VertrigoServ. Зазвичай MySQL використовується як сервер, до якого звертаються локальні або віддалені клієнти, проте в дистрибутив входить бібліотека внутрішнього сервера, що дозволяє включати MySQL в автономні програми.

Гнучкість СУБД MySQL забезпечується підтримкою великої кількості типів таблиць: користувачі можуть вибрати як таблиці типу MyISAM, що підтримують повнотекстовий пошук, так і таблиці InnoDB, що підтримують транзакції на рівні окремих записів. Більш того, СУБД MySQL поставляється із спеціальним типом таблиць EXAMPLE, що демонструє принципи створення нових типів таблиць. Завдяки відкритій архітектурі і GPL-ліцензуванню, в СУБД MySQL постійно з'являються нові типи таблиць.

phpMyAdmin - СУБД - додаток з відкритим кодом, написаний на мові PHP, що представляє собою веб-інтерфейс для адміністрування СУБД MySQL. PHPMyAdmin дозволяє через браузер і не тільки здійснювати адміністрування сервера MySQL, запускати команди SQL і переглядати вміст таблиць і баз даних. Додаток користується великою популярністю у веб-розробників, так як дозволяє управляти СУБД MySQL без безпосереднього введення SQL команд, надаючи дружній інтерфейс.

На сьогоднішній день PHPMyAdmin широко застосовується на практиці. Останнє пов'язано з тим, що розробники інтенсивно розвивають свій продукт, враховуючи всі нововведення СУБД MySQL. Переважна більшість українських провайдерів використовують цю програму в якості панелі керування для того, щоб надати своїм клієнтам можливість адміністрування виділених їм баз даних.

Додаток поширюється під ліцензією GNU General Public License і тому багато інших розробники інтегрують його в свої розробки, наприклад XAMPP, Denwer, AppServ, Open Server.

Проект на даний момент часу локалізований на більш ніж 62 мовах.

Мова SQL поділяється на кілька видів елементів:

  • Пункти (диз'юнкти), що є складовими частинами інструкцій та запитів.
  • Вирази, які можуть генерувати скалярні значення, або таблиці з стовпчиками і рядками даних
  • Предикати, які описують умови, результатом яких є значення тризначної логіки SQL (true/false/unknown) або Булеві значення істинності і які використовуються для обмеження ефекту інструкцій та запитів, або для зміни потоку виконання програми.
  • Запити, які отримують дані на основі заданих критеріїв.
  • Інструкції, які виконують дію над схемою даних чи самими даними, або контролюють транзакції, потік виконання програми, з'єднання, сесії, та виконують діагностику.
  • Інструкції SQL також включають крапку з комою (";") для позначення кінця інструкції. Хоча вона не є обов'язковою на кожній платформі, вона описується як стандартна частина граматики SQL.
  • Незначимі пропуски загалом ігноруюються в інструкціях і запитах SQL, дозволяючи форматувати код SQL з метою покращення читабельності.

SQL складається з:

  • DDL (Data Definition Language) — робота зі структурою бази,
  • DML (Data Manipulation Language) — робота з рядками,
  • DCL (Data Control Language) — робота з правами,
  • TCL (Transaction Control Language) — робота з транзакціями.

Data Definition Language:

  • CREATE — створення об'єкта (наприклад, таблиці);

Наприклад, створення таблиці з назвою zamdet:

create table Zamdet

  • ALTER — зміна об'єкта (наприклад, додавання/зміна полів таблиці);

Оператор ALTER TABLE використовується для додавання, зміни чи видалення стовпчиків або обмежень у наявній таблиці.

  • DROP — видалення об'єкта.

Оператор DROP, на відміну від оператора DELETE, відрізняється тим, що останній не видаляє саму таблицю. Наприклад, DELETE може видалити всі чи деякі дані з таблиці, при цьому залишаючи саму таблицю в базі даних, тоді як оператор DROP видаляє всю таблицю з бази даних.

Data Manipulation Language:

  • INSERT — оператор мови SQL, котрий додає рядки в таблицю або view. В реляційній СКБД можна визначити два варіанти оператора INSERT.

Однорядковий оператор INSERT дозволяє додавати в таблицю один новий рядок. Багаторядковий оператор INSERT забезпечує витягування даних з однієї частини бази даних, їх трансформацію і додавання в іншу частину. Використовується зазвичай при пакетній обробці і створенні нових даних.

  • SELECT — оператор мови SQL, котрий повертає рядки з однієї чи багатьох таблиць.

Ключові слова, пов'язані із запитом SELECT:

  • FROM — оператор мови SQL, котрий вживається із оператором SELECT, і вказує, з якої таблиці провадиться вибірка даних.
  • WHERE вказує, які рядки слід вибрати.
  • GROUP BY гуртує рядки, що мають спільну властивість таким чином, щоб функція агрегації могла бути застосована до кожної групи.
  • HAVING вибирає з груп означених оператором GROUP BY.
  • ORDER BY вказує порядок повернення рядків.

UPDATE — оператор мови SQL, що дозволяє оновити значення в заданих стовпцях таблиці.

DELETE — у мовах, подібних SQL, DML-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом Where. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів.

Data Control Language:

  • GRANT — надання прав користувачу;
  • DENY — явна заборона для користувача;
  • REVOKE — відміна заборони/дозволу користувачу.

Не зважаючи на наявність діалектів і відмінностей в синтаксисі, більшість текстів SQL-запитів, що містять, DDL і DML, можуть бути досить легко перенесені з однієї СУБД в іншу. Існують системи, розробники яких спочатку орієнтувалися на застосування щонайменше кількох СУБД (наприклад: система електронного документообігу Documentum може працювати як з Oracle, так і з Microsoft SQL Server та IBM DB2). Природно, що при застосуванні деяких специфічних для реалізації можливостей, такого рівня перенесення дуже важко досягти.

Остання зміна: Thursday 28 May 2020 20:17 PM