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

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

Жанры

Основы программирования в 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');

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

Технарь

Муравьёв Константин Николаевич
1. Технарь
Фантастика:
космическая фантастика
попаданцы
7.13
рейтинг книги
Технарь

Товарищ "Чума"

lanpirot
1. Товарищ "Чума"
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Товарищ Чума

Последний Паладин. Том 12

Саваровский Роман
12. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 12

Я уже царь. Книга XXIX

Дрейк Сириус
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я уже царь. Книга XXIX

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

Чужак из ниоткуда 2

Евтушенко Алексей Анатольевич
2. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда 2

Лекарь Империи 7

Карелин Сергей Витальевич
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 7

Девять драконов

Скотт Джастин
Детективы:
триллеры
5.00
рейтинг книги
Девять драконов

Тринадцатый VII

NikL
7. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VII

Родословная. Том 1

Ткачев Андрей Юрьевич
1. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Родословная. Том 1

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

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

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

Геном хищника. Книга четвертая

Гарцевич Евгений Александрович
4. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга четвертая