Створення структури

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

Створення бази

Спочатку необхідно створити базу даних виконавши команду

%sql CREATE DATABASE test;
Loading...

після чого ми перевіряємо доступні БД командою і бачимо у списку test, це і є наша база в якій ми будемо виконувати всі наступні запити

%sql SHOW DATABASES;
Loading...

Створення таблиць

Для створення таблиці в SQL використовується оператор CREATE TABLE. Відомості про структуру таблиці, такі як назва стовпців та їх типи даних, вказуються після цього оператора. Ось базовий синтаксис для створення таблиці:

CREATE TABLE table_name (
    column1 datatype1,
    column2 datatype2,
    column3 datatype3,
    ...
);

Давайте розглянемо приклад створення таблиці books з Figure 3:Фізична структура БД для збереження інформації про книги:

%%sql 
CREATE TABLE `books` (
    `id` int NOT NULL AUTO_INCREMENT,
    `category_id` int DEFAULT NULL,
    `title` text,
    `year` smallint DEFAULT NULL,
    PRIMARY KEY (`id`)
);

у цьому запиті:

  1. id int NOT NULL AUTO_INCREMENT:
    • id - це унікальний ідентифікатор для кожної книги в таблиці.
    • int - це тип даних, який представляє цілі числа.
    • NOT NULL вказує, що значення в цьому стовпці не може бути порожнім (нульовим).
    • AUTO_INCREMENT вказує на автоматичне збільшення значень цього стовпця для кожного нового запису. Це забезпечить унікальність значень id для кожної книги, і база даних автоматично буде присвоювати їм послідовні номери.
  2. DEFAULT NULL - вказує, що за замовчуванням значення цього стовпця буде NULL, якщо воно не вказане явно при вставці нового запису.
  3. PRIMARY KEY (id) визначає первинний ключ таблиці, який складається зі стовпця id. Первинний ключ ідентифікує унікально кожен запис в таблиці.

Cтворимо аналогічно інші таблиці: authors, books_authors та categories.

%%sql

CREATE TABLE `authors` (
    `id` int NOT NULL AUTO_INCREMENT,
    `name` text,
    PRIMARY KEY (`id`)
);

CREATE TABLE `books_authors` (
    `book_id` int NOT NULL,
    `author_id` int NOT NULL
);

CREATE TABLE `categories` (
    `id` int NOT NULL AUTO_INCREMENT,
    `name` text,
    PRIMARY KEY (`id`)
);

А тепер виконаємо команду для перегляду списку таблиць у нашій БД test

%sql SHOW TABLES
Loading...

Типи даних

SQL використовує різноманітні типи даних для зберігання та обробки інформації в базах даних. Типи даних можна класифікувати на кілька основних категорій:

  1. Цілі числа (INTEGER, INT):

    • Використовуються для зберігання цілих чисел без десяткової частини.
    • Приклад: INT, INTEGER.
  2. Десяткові числа (DECIMAL, NUMERIC, FLOAT, REAL):

    • Дозволяють зберігати числа з десятковою частиною.
    • Приклад: DECIMAL(p, s), NUMERIC(p, s), FLOAT(p), REAL.
  3. Рядки (CHAR, VARCHAR, TEXT):

    • Використовуються для зберігання текстової інформації.
    • CHAR - фіксована довжина, VARCHAR - змінна довжина, TEXT - для довших текстів.
  4. Дата та Час (DATE, TIME, DATETIME, TIMESTAMP):

    • Дозволяють зберігати і взаємодіяти з датами та часом.
    • Приклад: DATE, TIME, DATETIME, TIMESTAMP.
  5. Булеві значення (BOOLEAN):

    • Використовуються для представлення логічних значень TRUE або FALSE.
  6. Бінарні дані (BLOB, BINARY, VARBINARY):

    • Використовуються для зберігання бінарних об’єктів, таких як зображення або відео.
    • Приклад: BLOB, BINARY, VARBINARY.

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

Створення відношень

%%sql

ALTER TABLE `books_authors` ADD CONSTRAINT books_book_id
FOREIGN KEY (`book_id`) REFERENCES `books` (`id`);

ALTER TABLE `books_authors` ADD CONSTRAINT authors_author_id
FOREIGN KEY (`author_id`) REFERENCES `authors` (`id`);

ALTER TABLE `books` ADD CONSTRAINT categories_category_id
FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`);

Цей SQL-запит використовується для додавання зовнішнього ключа (FOREIGN KEY) до таблиці books_authors. Давайте розглянемо кожну частину запиту:

  1. ALTER TABLE books_authors ADD CONSTRAINT books_book_id:

    • ALTER TABLE books_authors - вказує, що ми здійснюємо зміни у структурі таблиці books_authors.
    • ADD CONSTRAINT books_book_id - визначає, що ми додаємо обмеження (constraint) з ім’ям books_book_id.
  2. FOREIGN KEY (book_id):

    • FOREIGN KEY - вказує, що ми додаємо зовнішній ключ до таблиці.
    • (book_id) - це стовпець, до якого ми додаємо зовнішній ключ.
  3. REFERENCES books (id):

    • REFERENCES books - вказує, що ми посилаємося на таблицю books.
    • (id) - це стовпець у таблиці books, на який ми посилаємося за допомогою зовнішнього ключа.

Отже, цей SQL-запит встановлює зовнішній ключ для стовпця book_id в таблиці books_authors, який посилається на стовпець id в таблиці books. Це створить зв’язок між цими двома таблицями, дозволяючи здійснювати зв’язані запити, наприклад, вибірку інформації про авторів для конкретної книги.