Остаточний посібник з освоєння концепцій SQL

Вступ до SQL:

SQL (Structured Query Language) — це стандартна мова, що використовується для взаємодії з реляційними базами даних.

Вона використовується для зберігання, отримання та маніпуляцій з даними в реляційних базах даних.

Існують різні типи SQL баз даних, такі як MySQL, MS SQL Server, PostgreSQL та Oracle.

Компоненти SQL:

  • База даних
  • Схеми
  • Таблиці
  • SQL запити
  • Представлення
  • Функції
  • Збережені процедури
  • Транзакції

База даних

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

CREATE DATABASE DatabaseName;

Схеми

Схеми — це логічні розділи в SQL базі даних, що організовують та керують об'єктами бази даних, такими як таблиці, функції, збережені процедури, представлення, індекси та інші.

CREATE SCHEMA schema_name;

Таблиці

Таблиці — це основні компоненти бази даних, що складаються з рядків (записів) і стовпців (атрибутів або полів). Вони забезпечують цілісність і узгодженість даних, встановлюючи структуру та зв'язки збереженої інформації.

CREATE TABLE IF NOT EXISTS table_name (  
 column1 datatype constraints,  
 column2 datatype constraints,  
 ...  
);

SQL запити

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

  • Мова визначення даних (DDL): Команди DDL використовуються для визначення та керування структурами бази даних, такими як таблиці, індекси та схеми. Типові команди DDL: CREATE, ALTER, DROP, TRUNCATE
  • Мова запитів до даних (DQL): Команди DQL використовуються для запиту та отримання даних з бази даних. Основна команда DQL: SELECT
  • Мова маніпуляцій з даними (DML): Команди DML використовуються для маніпуляцій з даними в таблицях бази даних. Типові команди DML: INSERT, UPDATE, DELETE
  • Мова контролю доступу до даних (DCL): Команди DCL використовуються для контролю доступу до даних у базі даних. Типові команди DCL: GRANT, REVOKE
  • Мова контролю транзакцій (TCL): Команди TCL використовуються для управління транзакціями в базі даних. Транзакції — це послідовності операцій, виконуваних як єдине логічне завдання. Типові команди TCL: COMMIT, SAVEPOINT, ROLLBACK
-- Мова визначення даних (DDL)  
 CREATE TABLE table_name (  
 column1 datatype constraints,  
 column2 datatype constraints,  
 ...  
 );  

ALTER TABLE table_name  
ADD column_name datatype;  

DROP TABLE table_name;  

TRUNCATE TABLE table_name;
-- Мова запитів до даних (DQL)  
 SELECT column1, column2, ...  
 FROM table_name  
 WHERE condition;
-- Мова маніпуляцій з даними (DML)  
 INSERT INTO table_name (column1, column2, ...)  
 VALUES (value1, value2, ...);  

 UPDATE table_name  
 SET column1 = value1, column2 = value2, ...  
 WHERE condition;  

 DELETE FROM table_name  
 WHERE condition;
-- Мова контролю доступу до даних (DCL)  
 GRANT privilege ON object TO user;  
 REVOKE privilege ON object FROM user;
-- Мова контролю транзакцій (TCL)  
 COMMIT;  
 ROLLBACK;  
 SAVEPOINT savepoint_name;

Представлення

Представлення — це віртуальна таблиця, яка базується на результатах SQL запиту. Воно не зберігає дані фізично, але надає спосіб спростити складні запити, підвищити безпеку та представити дані у специфічному форматі.

-- Просте представлення  
CREATE VIEW view_name AS  
 SELECT column1, column2, ...  
 FROM table_name  
 WHERE condition;  

-- Складне представлення  
CREATE VIEW view_name AS  
 SELECT column1, column2, ...  
 FROM table1  
 JOIN table2 ON table1.column = table2.column  
 WHERE condition;  

-- Матеріалізоване представлення  
CREATE MATERIALIZED VIEW view_name AS  
 SELECT column1, column2, ...

FROM table_name  
WHERE condition;
  • Просте представлення: Створюється на основі однієї таблиці і не містить агрегатних функцій.
  • Складне представлення: Створюється на основі кількох таблиць або містить агрегатні функції. Може включати об'єднання кількох таблиць.
  • Матеріалізоване представлення: Зберігає дані фізично. Це знімок даних на конкретний момент часу, який можна оновлювати періодично, щоб відображати зміни в основних таблицях.

Функції:

Функція — це заздалегідь визначена або створена користувачем частина або послідовність коду, що використовується для виконання конкретного завдання і може бути викликана в SQL запитах. Функції можуть бути:

  • Вбудовані функції: Це функції, надані системою SQL бази даних і включають функції для математичних обчислень, маніпуляцій з рядками, операцій з датами та часом і багато іншого.
  • Функції, визначені користувачем: Це функції, створені користувачами для виконання конкретних завдань, які не покриваються вбудованими функціями.
-- Скалярна функція  
CREATE FUNCTION function_name (@parameter datatype)  
RETURNS return_datatype  
AS  
BEGIN  
 -- Логіка функції  
 RETURN expression;  
END;  

-- Функція, що повертає таблицю  
CREATE FUNCTION function_name (@parameter datatype)  
RETURNS TABLE  
AS  
RETURN  
(  
 -- Логіка функції, яка повертає таблицю  
 SELECT column1, column2, ...  
 FROM table_name  
 WHERE condition  
);

Збережені процедури

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

CREATE PROCEDURE procedure_name  
 @parameter1 datatype,  
 @parameter2 datatype  
AS  
BEGIN  
 -- Ваші SQL команди тут  
 SELECT column1, column2  
 FROM table_name  
 WHERE condition;  
END;

Транзакції

Транзакція в SQL — це послідовність однієї або більше SQL операцій, які виконуються як єдине логічне завдання. Транзакції гарантують, що серія операцій або успішно завершиться, або не відбудеться взагалі, зберігаючи цілісність бази даних.

SQL надає кілька команд для управління транзакціями:

  • BEGIN TRANSACTION: Починає нову транзакцію.
  • COMMIT: Зберігає всі зміни, зроблені під час поточної транзакції.
  • ROLLBACK: Відміняє всі зміни, зроблені під час поточної транзакції.
  • SAVEPOINT: Встановлює точку в транзакції, до якої ви можете пізніше відкотити зміни.
-- Почати нову транзакцію  
BEGIN TRANSACTION;  

-- Зберегти всі зміни, зроблені під час поточної транзакції  
COMMIT;  

-- Відмінити всі зміни, зроблені під час поточної транзакції  
ROLLBACK;  

-- Встановити точку збереження в транзакції  
SAVEPOINT savepoint_name;




Перекладено з: [The Ultimate Guide to Mastering SQL Concepts](https://medium.com/@zope17ashish/the-ultimate-guide-to-mastering-sql-concepts-6818f97a3f79)

Leave a Reply

Your email address will not be published. Required fields are marked *