Professional Documents
Culture Documents
Лр7 SQL Створення Таблиць
Лр7 SQL Створення Таблиць
Мета: Засвоїти типи даних СУБД MySQL, створити базу даних та таблиці засобами команд мови SQL для
визначення структур даних, отримати навики при використанні команд CREATE, ALTER і DROP та їх опцій.
МЕТОДИЧНІ ВКАЗІВКИ
Команди SQL будемо вивчати, використовуючи СУБД MySQL. Дистрибутив серверу MySQL можна
завантажити за посиланням https://dev.mysql.com/downloads/mysql/
В якості редактора для команд SQL будемо використовуати MySQL Workbench, дистрибутив якого можна
завантажити тут: https://dev.mysql.com/downloads/workbench/
SQL (англ. Structured query language — мова структурованих запитів) — декларативна мова
програмування для взаємодії користувача з базами даних, що застосовується для формування запитів,
оновлення і керування реляційними БД, створення схеми бази даних та її модифікації, системи контролю
за доступом до бази даних.
Сама по собі SQL не є ані системою керування базами даних, ані окремим програмним продуктом.
SQL може формувати інтерактивні запити або, бувши вбудованою в прикладні програми, виступати як
інструкції для керування даними. Крім цього, стандарт SQL містить функції для визначення зміни, перевірки
та захисту даних.
Усі SQL-оператори діляться на такі категорії:
• DDL (Data Definition Language) — робота зі структурою бази,
• DML (Data Manipulation Language) — робота з рядками таблиць,
• DCL (Data Control Language) — робота з правами,
• TCL (Transaction Control Language) — робота з транзакціями.
Оператори DDL дозволяють працювати з визначенням даних. До них відносяться такі команди:
• створення об'єктів (CREATE);
• зміна (редагування) об'єктів (ALTER);
• вилучення об'єктів (DROP).
Для визначення даних необхідно вказувати їх імена і типи. Розглянемо основні типи даних в SQL.
Типи даних
Числові типи даних
Тип Опис
TINYINT(size) Цілий від -128 до 127 . Від 0 до 255 UNSIGNED.
SMALLINT(size) Від -32768 до 32767. Від 0 до 65535 UNSIGNED.
MEDIUMINT(size) Від -8388608 до 8388607. Від 0 до 16777215 UNSIGNED.
INT(size) Від -2147483648 до 2147483647. Від 0 до 4294967295 UNSIGNED.
INTEGER(size) Синонім до INT
BIGINT(size) Від -9223372036854775808 до 9223372036854775807. Від 0 до
18446744073709551615 UNSIGNED.
FLOAT(size,d) Число з плаваючою крапкою. Точність (параметр d) буде <=24
DOUBLE(size,d) Точніше число з плаваючою крапкою
REAL(size,d) Синонім до DOUBLE
DECIMAL(size,d) DOUBLE, що зберігається як рядок з фіксованою крапкою.
NUMERIC(size,d) Синонім до DECIMAL
Максимальне число цифр задається в параметрі size. Максимальне число цифр після десяткової крапки
задається в параметрі d.
Числові константи в командах SQL задаються аналогічно іншим мовам програмування.
Приклад 1.
15 (ціле число) 18.7 (дійсне) -35 (знакове) 0xFF (шістнадцядкове)
Тип BOOL - синонім до TINYINT, а константи TRUE та FALSE - до 1 та 0 відповідно.
create table type_product (id int auto_increment primary key, name_type varchar(20));
create table product ( id int,
name_prod varchar(100),
type_prod int,
price float,
count int,
date_suplly date,
foreign key (type_prod) references type_product(id) );
Вилучення таблиці
DROP TABLE [IF EXISTS] <назва таблиці1> [, <назва таблиці2>,...]
Команда призначена для вилучення таблиць. При цьому відповідні файли вилучаються з директорії
бази даних.
Перейменування таблиці
RENAME TABLE <назва таблиці1> TO <нова назва таблиці1>
[, <назва таблиці2> TO <нова назва таблиці2>,...]
Команда призначена для перейменування таблиці.
Створення індексу
CREATE [UNIQUE|FULLTEXT] INDEX <назва індексу>
ON <назва таблиці> (<назва поля>[<кількість символів>],... )
Команда призначена для створення індексів (індексних файлів) для вказаної таблиці по вказаному
полю. Для символьних полів можна створювати індекси не по всьому полю, а по вказаній кількості перших
символів.
Вилучення індексу
Таблиця “Car”
• номерний знак
• код марка/модель авто
• тип кузова
• тип коробки передач
• тип пального
• колір
• рік випуску
• загальний стан
• ціна оренди за добу
Таблиця “Brand_Model”
• код марка/модель авто
• марка авто
• модель авто
Таблиця “Client”
• код клієнта
• прізвище
• ім'я
• посвідчення водія
• категорія
• email
• контактний телефон
• країна проживання
Таблиця “Rental_Detail”
• номерний знак авто
• клієнт
• дата взяття в оренду
• дата повернення
• оплата
• в якому стані взяв в оренду
• в якому стані повернув
Варіант 2. База даних “Hotel”
Таблиця “Room”
• код номеру
• тип номеру
• загальна площа
• максимальна кількість осіб
• ціна за добу
• наявність знижки
Таблиця “Room_type”
• код типу номеру
• назва
• опис
Таблиця “Guest”
• id клієнта
• прізвище
• ім'я
• дата народження
• країна
• місто
• email
• контактний телефон
• посвідчення особи
Таблиця “Reservation”
• код
• номер
• клієнт
• дата бронювання
• дата заїзду
• дата виїзду
• кількість дорослих
• кількість дітей
• оплата
Варіант 3. База даних “Foreign_language_courses”
Таблиця “Course”
• id курсу
• назва
• мова
• вікова група студентів
• викладач
• тривалість одного заняття
• рік вивчення
Таблиця “Teacher”
• id викладача
• прізвище
• ім'я
• по батькові
• дата народження
• сертифікати
• контактний телефон
• дата початку роботи на курсах
Таблиця “Student”
• id студента
• прізвище
• ім'я
• дата народження
• email
• контактний телефон
Таблиця “Group”
• курс
• студент
Таблиця “Course_Shedule”
• курс
• день тижня
• час проведення заняття
Варіант 4. База даних “Pharmacy”
Таблиця “Medicament”
• код ліків
• назва
• форма випуску (таблетки, капсули, суспензія тощо)
• категорія за призначенням
• діюча речовина
• виробник
• постачальник
• ціна
• кількість
Таблиця “Producer”
• код виробника
• назва
• країна
Таблиця “Supplier”
• код постачальника
• назва
• контактна особа
• контактний телефон
• договір
Таблиця “Supply_Detail”
• код поставки
• дата поставки
• постачальник
Таблиця “Order_Item”
• код поставки
• код ліків
• кількість
Варіант 5. База даних “Clothing_store”
Таблиця “Product”
• код продукту
• назва
• категорія продукту
• ціна
• кількість
• бренд одягу
• постачальник
• наявність знижки
Таблиця “Category”
• код категорії
• назва
Таблиця “Order_Detail”
• код замовлення
• дата замовлення
• клієнт
• ознака виконання замовлення
Таблиця “Order_Item”
• код замовлення
• код товару
• кількість
Таблиця “Client”
• код клієнта
• логін
• пароль
• email
• прізвище
• ім'я
• контактний телефон
• адреса доставки
Варіант 6. База даних “Cinema”
Таблиця “Movie”
• id фільму
• назва фільму
• режисер
• рік випуску
• акторський склад
• жанр
• опис
Таблиця “Actors”
• id актора
• прізвище
• ім'я
• дата народження
• місце народження
Таблиця “Actor_Movie”
• id актора
• id фільму
Таблиця “Seance”
• код сеансу
• фільм
• дата сеансу
• зал
• кількість місць
• вартість квитка
Таблиця “Ticket”
• id
• сеанс
• прізвище та ім'я відвідувача
• ознака бронювання
• ознака купівлі
Варіант 7. База даних “Beauty_salon”
Таблиця “Service”
• код послуги
• назва
• вартість
• тривалість
• опис
Таблиця “Employee”
• id майстра
• прізвище
• ім'я
• дата народження
• номер телефону
• кваліфікація
Таблиця “Employee_Services”
• код
• послуга
• майстер
Таблиця “Client”
• код
• прізвище
• ім'я
• контактний телефон
• інші дані
• дата першого відвідування
Таблиця “Appointment”
• код
• код клієнта
• код послуги майстра
• дата відвідування
• час відвідування
• ознака відвідування
Варіант 8. База даних “Airport”
Таблиця “Airports”
• код аеропорту
• назва
• місто
• країна
Таблиця “Airline”
• код
• назва авіакомпанії
• адреса офісу
• контактний телефон
Таблиця “Flight_Info”
• номер рейсу
• літак
• авіакомпанія
• аеропорт вильоту
• аеропорт прильоту
• дата
• час вильоту
• тривалість польоту
• кількість місць економ-класу
• кількість місць бізнес-класу
• ціна квитка економ-класу
• ціна квитка бізнес-класу
Таблиця “Ticket”
• номер квитка
• номер рейсу
• клас квитка (економ або бізнес)
• відомості про пасажира
• пільги (немовлята, діти до 12 років)
Варіант 9. База даних “Students”
Таблиця “Student”
• номер залікової книжки
• прізвище
• ім’я
• по батькові
• дата народження
• паспортні дані
• середній бал атестату
• інформація про батьків
• контактний телефон
Таблиця “Speciality”
• код спеціальності
• назва
Таблиця “Teacher”
• код вчителя
• прізвище
• ім'я
• по батькові
• дата народження
• напрямок предметів, які викладає (філологічні, математика, комп'ютерні науки)
Таблиця “Group”
• код групи
• назва
• куратор
• курс
• спеціальність
Таблиця “Student_Group”
• код групи
• код студента
Варіант 10. База даних “Shop”
Таблиця “Product”
• код продукту
• назва
• категорія продукту
• ціна
• кількість
• постачальник
• остання дата поставки
• наявність знижки
Таблиця “Category”
• код категорії
• назва
Таблиця “Supplier”
• код постачальника
• назва
• контактна особа
• контактний телефон
• договір
Таблиця “Order_Detail”
• код продажу (номер чеку)
• дата продажу
• час продажу
Таблиця “Order_Item”
• код
• код продажу
• код товару
• кількість
Варіант 11. База даних “Railway_station”
Таблиця “Train”
• номер потяга
• назва
• пункт відправки (станція)
• пункт призначення (станція)
• кількість місць типу А
• кількість місць типу Б
• ціна квитка для типу А
• ціна квитка для типу Б
Таблиця “Station”
• код станції
• назва
• місто
• область
• країна
Таблиця “Train_schedule”
• номер потяга
• час відправлення
• час прибуття
Таблиця “Person”
• паспортні дані пасажира
• прізвище
• ім'я
• по батькові
• дата народження
Таблиця “Reservation”
• номер квитка
• дата
• номер потяга
• пасажир
Варіант 12. База даних “Library”
Таблиця “Book”
• код книжки
• назва книжки
• автор
• жанр
• видавництво
• рік випуску
• кількість примірників
• ціна
Таблиця “Genre”
• код
• назва
Таблиця “Publisher”
• код видавництва
• назва
• місто
• контактна особа
• контактний телефон
Таблиця “Person”
• код читацького квитка
• прізвище
• ім'я
• по батькові
• контактний телефон
• дата реєстрації в бібліотеці
Таблиця “Book_reservation”
• дата взяття книжки
• книжка
• абонент
• дата повернення книжки