Чтение онлайн

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

 столбец

catalogue
— номер длиной до 30 символов;

 столбец

notes
до 100 символов.

Учтите, что только столбец

notes
может быть
NULL
; у всех остальных должны быть значения.

Теперь таблица

artist
:

CREATE TABLE artist (

 id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,

 name VARCHAR(100) NOT NULL

);

И снова у вас столбец

id
и еще один для имени исполнителя.

И наконец, таблица

track
:

CREATE TABLE track (

 cd_id INTEGER NOT NULL,

 track_id INTEGER NOT NULL,

 title VARCHAR(70),

 PRIMARY KEY(cd_id, track_id)

);

Обратите внимание на то, что на этот раз вы объявили первичный ключ несколько иначе. Таблица

track
необычна тем, что ID каждого компакт-диска будет появляться несколько раз, ID любой заданной дорожки, скажем, дорожки 1, также будет появляться несколько раз в разных компакт-дисках. Но их комбинация всегда будет уникальной, поэтому объявите ваш первичный ключ как комбинацию двух столбцов. Такой ключ называют составным, поскольку он состоит из нескольких столбцов, участвующих в комбинации.

Сохраните эти SQL-операторы в текущем каталоге, в файле, названном create_tables.sql, и затем двигайтесь дальше и создайте базу данных и таблицы в ней. Готовый пример сценария содержит дополнительные строки, по умолчанию помеченные как комментарий, в них удаляются эти таблицы, если они уже существуют.

$ mysql -u rick -р

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

mysql> use blpcd;

Database changed

mysql> \. create_tables.sql

Query OK, 0 rows affected (6.04 sec)

Query OK, 0 rows affected (0.10 sec)

Query OK, 0 rows affected (0.00. sec)

mysql>

Обратите внимание на применение команды

\.
для получения ввода из файла create_tables.sql.

Вы могли бы создать таблицы, выполнив операторы SQL или просто набирая данные с помощью обозревателя запросов MySQL Query Browser.

После того как таблицы созданы, их можно просмотреть, используя MySQL Administrator (рис. 8.9), в котором вы проверяете таблицу индексов базы данных

blpcd
(или схему, если вы предпочитаете этот термин).

Выбрав редактирование таблицы (щелчок правой кнопкой мыши или двойной щелчок мышью имени таблицы на вкладке Tables (Таблицы)) позволит увидеть дополнительные сведения о столбцах (рис. 8.10).

Рис. 8.9

Рис. 8.10 

Вы заметили два значка ключа рядом со столбцами

cd_id
и
track_id
на рис. 8.10? Это означает, что они оба участвуют в формировании составного первичного ключа. Разрешив названию дорожки быть равным
NULL
(условие
NOT NULL
не проверяется), вы допускаете наличие нетипичной, но иногда встречающейся дорожки компакт-диска, не имеющей названия.

Вставка данных

Теперь вам нужно вставить какие-нибудь данные. Лучший способ проверки любого проекта базы данных — вставка контрольных данных и проверка работоспособности проекта.

Далее мы продемонстрируем пример импорта тестовых данных, что не важно для понимания происходящего, т. к. все операции импорта в основном похожи — они загружают разные таблицы. Есть два важных аспекта, на которые здесь следует обратить внимание.

 Сценарий удаляет любые имеющиеся данные, чтобы начать с "чистого листа".

 В поля

id
вставляются значения вместо использования функции
AUTO_INCREMENT
. В данном случае это безопаснее, поскольку при вставках необходимо знать, какие значения применялись, чтобы убедиться в полной корректности отношений между разными данными, поэтому лучше ввести значения, чем разрешить средству
AUTO_INCREMENT
автоматически сгенерировать их.

Этот файл назван insert_data.sql и может быть выполнен с помощью команды

\.
, которую вы уже видели:

– - Удаляются существующие данные

delete from track;

delete from cd;

delete from artist;

– - Теперь данные вставляются

– - Сначала таблица artist (исполнители или группы)

insert into artist(id, name) values(1, 'Pink Floyd');

insert into artist(id, name) values(2, 'Genesis');

insert into artist(id, name) values(3, 'Einaudi');

insert into artist(id, name) values(4, 'Melanie C');

– - Затем таблица cd

insert into cd(id, title, artist_id, catalogue) values(1, 'Dark Side of the Moon', 1, 'B000024D4P');

insert into cd(id, title, artist_id, catalogue) values(2, 'Wish You Were Here', 1, 'B000024D4S');

insert into cd(id, title, artist_id, catalogue) values(3, 'A Trick of the Tail', 2, 'B000024EXM');

insert into cd(id, title, artist_id, catalogue) values(4, 'Selling England By the Pound', 2, 'B000024E9M');

Поделиться:
Популярные книги

Наследие Маозари 7

Панежин Евгений
7. Наследие Маозари
Фантастика:
боевая фантастика
юмористическое фэнтези
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 7

Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Кандель Феликс Соломонович
Научно-образовательная:
история
5.00
рейтинг книги
Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Кукловод

Злобин Михаил
2. О чем молчат могилы
Фантастика:
боевая фантастика
8.50
рейтинг книги
Кукловод

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Изгои

Владимиров Денис
5. Глэрд
Фантастика:
фэнтези
боевая фантастика
5.00
рейтинг книги
Изгои

Хозяин Стужи

Петров Максим Николаевич
1. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Руководство по системной поведенченской психотерапии

Курпатов Андрей Владимирович
Научно-образовательная:
психотерапия и консультирование
5.00
рейтинг книги
Руководство по системной поведенченской психотерапии

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Неучтенный элемент. Том 11

NikL
11. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 11

Газлайтер. Том 39

Володин Григорий Григорьевич
39. История Телепата
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 39

Ваше Сиятельство 8

Моури Эрли
8. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 8

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Точка Бифуркации

Смит Дейлор
1. ТБ
Фантастика:
боевая фантастика
7.33
рейтинг книги
Точка Бифуркации