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
   115   116   117   118   119   120   121   122   123   124   125