Создание баз данных в среде MYSQL. Щербаков П.П. - 10 стр.

UptoLike

Составители: 

18
Теперь начнем создание таблиц внутри только что созданной базы
данных. Сначала создадим таблицу street (отделы):
create table
street (
id_street int not null auto_increment primary key,
street_name varchar(20)
) type=InnoDB;
Эта таблица содержит два столбцаid_street, который будет
первичным ключом, и street_name . Для определения столбцов таблицы
используется список разделенных запятыми деклараций заключенный в
скобки. Обратите внимание на то, что атрибуты столбцов не разделяются
запятыми, — разделяются только сами столбцы.
Этонаш первый многострочный оператор SQL. Число пробелов в SQL
не имеет значения, поэтому
мы можем компоновать наши запросы как нам
нравится. В операторах CREATE, как правило, в каждой строке размещается
о, элемент, чтобы оператор было удобнее читать. Интерпретатор SQL не
будет интерпретировать ваш оператор до тех пор, пока вы не напечатаете
завершающую точку с запятой (;) и не нажмете клавишу <Enter>.
В этой таблице мы декларируем создание
двух столбцов. Каждая
декларация столбца начинается с указания имени столбца, за которым
следует информации о типе этого столбца. Давайте сначала разберемся с
определением второго столб таблицы, поскольку оно проще. Декларация
street_name varchar(20)
сообщает нам, что именем столбца будет street_name и что он будет иметь
тип varchar (20). Тип b — это строка переменной длины
, в данном случае до
20 символов. Можно было бы использовать char, т.е. строки фиксированной
длины.
Теперь вернемся к определению первого столбца. Оно
выглядит так: id_street int not null
auto_increment primary key,
Именем столбца является id_street, а его типом — int (целое). Это
уникальный номер, который мы будем использовать для идентификации
улиц.
После типа указана некоторая дополнительная информация о
столбце.
Сначала указано, что этот столбец не должен быть пустым — not null ,
это значит, что для всех строк таблицы в этом столбце должно быть указано
некоторое значение.
Затем мы указали, что столбец должен быть типа auto_increment. Это
очень удобная возможность в MySQL. Если при добавлении данных в эту
таблицу мы не укажем
номер отдела, MySQL поместит в соответствующий
столбец уникальный номер, который окажется следующим в
последовательности auto_ increment. Это облегчит нам жизнь.
19
Наконец, мы указываем, что этот столбец должен быть первичным
ключом нашей таблицы (primary key). Если первичный ключ состоит из
одного столбца, мы можем указать его так, как это сделано здесь. Для
первичных ключей, состоящих из нескольких столбцов, необходимо
использовать другой подход.
Итак, таблица определена. Теперь посмотрим на завершающую часть
этого оператора SQL.
После закрывающей скобки вы видите следующее:
type=InnoDB
Это выражение говорит о том, что таблица должна использовать механизм
хранения InnoDB.
Что это значит? MySQL поддерживает различные механизмы хранения
данных. Типом, используемым по умолчанию, является MylSAM. Если бы мы
хотели использовать таблицы MylSAM, нам не нужно было бы добавлять
определение типа в конце оператора create table.
Здесь указан тип InnoDB, поскольку в некоторых примерах мы
собираемся, использовать внешние ключи. Механизм InnoDB поддерживает
внешние ключи! и транзакции, a MylSAM — нет. Таблицы типа MylSAM
часто работают быстрее, чем таблицы InnoDB. Поэтому для каждой таблицы
нужно решить, какой тип! будет для нее лучшим.
create provider (
id_provider int not null auto_increment primary key,
provider _name varchar(20)
) type=InnoDB;
create table
organization (
id_organisation int not null auto_increment primary key,
orgatisation_name varchar(120)
) type=InnoDB;
create address (
id_address int not null auto_increment primary key,
id_street int,
house int,
office _ int,
dop_inf varchar(20)
) type=InnoDB;
create table
person (
id_ person int not null auto_increment primary key,
f_name varchar(20),
l_name _name varchar(20),
birthday date,
comment text,
id_organisation int) type=InnoDB;