Page 120 - 4636
P. 120
Існуючий SQL-файл в MySQL можна виконати таким чином:
> Mysql-h хост-u bookorama-D books-р <bookorama. sql
(Не забудьте замінити заповнювач хост ім'ям використовуваного хоста.)
У даному випадку зручно використовувати перенаправлення, оскільки перед виконанням SQL-
код можна відредагувати в будь-якому текстовому редакторі.
Лістинг 6.1. bookorama. sql - SQL-код створення таблиць для програми "Буквофіл"
create table customers
(Customerid int unsigned not null auto_increment primary key,
name char (50) not null,
address char (100) not null,
city char (30) not null
create table orders
( orderid int unsigned not null auto_increment
primary key, customerid int unsigned not null/
amount float(6,2), . date date not null ) ;
create table books
( isbn char(13) not null primary key, author
char(50), title char (100) , price float(4,2)
) ;
create table order_items ( orderid int unsigned not
null, isbn char(13) not null, quantity tinyint
unsigned,
primary key (orderid, isbn)
);
create table book_reviews ( isbn char(13) not null
primary key, review text
);
Кожна таблиця створиться за допомогою окремого оператора CREATE TABLE. Як бачите,
створюються всі таблиці зі схемами, зі стовпцями, спроектованими в попередній лекції. Визначення
кожного стовпця містить його ім'я, за яким слідує тип даних. У визначеннях деяких стовпців наявні й
інші специфікатори.
Значення інших ключових слів
NOT NULL означає, що всі рядки таблиці повинні мати значення в цьому атрибуті. Якщо
ключове слово NOT NULL не вказано, поле може бути порожнім (NULL).
AUTO_INCREMENT - це спеціальна можливість MySQL, яку можна використовувати стосовно
числович стовпців. Якщо при вставці рядків у таблицю залишити це поле порожнім, MySQL
автоматично згенерує значення унікального ідентифікатора. Це значення буде на одиницю більше від
максимального значення, вже існуючого у стовпці. Кожна таблиця може містити не більше одного
такого поля. Стовпці, для яких вказано ключове слово AUTO_INCREMENT, мають бути
проіндексовані.
Ключові слова PRIMARYKEY, наступні за ім'ям стовпця, вказують, що цей стовпець є первинним
ключем таблиці. Записи в цьому стовпці повинні бути унікальними. MySQL буде автоматично
індексувати цей стовпець. Стовпець customerid у таблиці customers має атрибут AUTO_INCREMENT.
Автоматичний індекс по первинному ключу забезпечує індексування, необхідну атрибутом
AUTO_INCREMENT.
Вказувати PRIMARYKEY після назви стовпця можна лише тоді, коли ми маємо справу з
первинним ключем у вигляді одиночного стовпця. Альтернативний варіант - конструкція
PRIMARYKEY в кінці оператора створення таблиці order_items.
У даному випадку ця форма була використана тому, що первинний ключ складається з двох
стовпців. (Це також створює індекс з об'єднання двох стовпців.)
117