Оглавление

4.3. Создание таблицы

Создать таблицу в базе данных позволяет SQL-команда
CREATE TABLE <Имя таблицы> (
<Имя поля1> <Тип данных> [<Опции>],
<Имя поля2> <Тип данных> [<Опции>],
...
) [<Дополнительные опции>];


В параметре <Опции> могут быть указаны следующие значения:
□ NOT NULL означает, что поле обязательно должно иметь значение при вставке новой записи в таблицу (если не задано значение по умолчанию). Если опция не указана, то поле может быть пустым;

□ PRIMARY KEY указывает, что поле является первичным ключом таблицы. Записи в таком поле должны быть уникальными. Опция также может быть указана после перечисления всех полей;
□ AUTO_INCREMENT указывает, что поле является счетчиком: если при вставке новой записи указать NULL, то MySQL автоматически генерирует значение, на единицу большее максимального значения, уже существующего
в поле. В таблице может быть только одно поле с этой опцией;
□ DEFAULT задает для поля значение по умолчанию, которое будет использовано, если при вставке записи для этого поля не было явно указано значение;
□ CHARACTER SET определяет кодировку текстового поля;
□ COLLATE задает тип сортировки текстового поля.

 
В параметре <Дополнительные опции> могут быть указаны следующие значения:
□ ENGINE — тип таблицы (например, MyISAM);
□ DEFAULT CHARSET — кодировка (например, cp1251);
□ AUTO_INCREMENT — начальное значение для автоматической генерации значения поля.
Для вывода всех типов таблиц, поддерживаемых текущей версией MySQL, предназначена SQL-команда
SHOW ENGINES;
На практике обычно используются два типа таблиц — MyISAM и InnoDB. Тип MyISAM является "родным" типом таблиц и применяется по умолчанию. Хотя версии MySQL под Windows по умолчанию могут устанавливать тип InnoDB.

 

В отличие от типа MyISAM таблицы типа InnoDB поддерживают транзакции и внешние ключи, но не имеют поддержки полнотекстового поиска. Кроме того, таблицы типа InnoDB работают медленнее таблиц MyISAM, но зато они более надежны.

 
Для вывода всех кодировок применяется SQL-команда
SHOW CHARACTER SET;
Чтобы получить список всех типов сортировки можно воспользоваться SQL- командой
SHOW COLLATION;

 
Создадим таблицы из нашего первоначально рассмотренного примера. Для этого в левой части из списка выбираем базу tests. С правой стороны выбираем вкладку SQL.

 

В текстовом поле набираем следующие команды:

CREATE TABLE `City` (
   `id_City` INT NOT NULL AUTO_INCREMENT,
   `City` CHAR(50) NOT NULL,
   PRIMARY KEY  (`id_City`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

CREATE TABLE `Customers` (
   `id_Customer` INT NOT NULL AUTO_INCREMENT,
   `Name` CHAR(50) NOT NULL,
   `Address` CHAR(255) NOT NULL,
   `id_City` INT NOT NULL,
   `Phone` CHAR(30),
   PRIMARY KEY  (`id_Customer`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

CREATE TABLE `Tovar` (
   `id_Tovar` INT NOT NULL AUTO_INCREMENT,
   `Tovar` CHAR(50) NOT NULL,
   `Price` INT NOT NULL,
   PRIMARY KEY  (`id_Tovar`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

CREATE TABLE `Orders_Items` (
   `id_Orders` INT NOT NULL,
   `id_Tovar` INT NOT NULL,
   `Col` TINYINT unsigned,
   PRIMARY KEY  (`id_Orders`, `id_Tovar`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

CREATE TABLE `Orders` (
   `id_Orders` INT NOT NULL AUTO_INCREMENT,
   `id_Customer` INT NOT NULL,
   `Date_orders` DATE,
   `Sum` INT,
   PRIMARY KEY  (`id_Orders`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

 

Можно набрать все команды одновременно, а можно и по отдельности. Чтобы выполнить запрос, нажимаем кнопку OK. Все созданные таблицы отображаются слева под списком баз данных:
tests (5)
city
customers
orders
orders_items
tovar

 
Если таблицы не отобразились, то обновите страницу.
Если щелкнуть на названии таблицы, то справа отобразится ее структура.

 
Вывести все таблицы из указанной базы данных позволяет SQL-команда
SHOW TABLES FROM <Имя базы данных>;

 
Для примера выведем все таблицы из базы данных tests:
SHOW TABLES FROM `tests`;

 
Чтобы отобразить структуру конкретной таблицы из указанной базы данных, можно воспользоваться командой SQL
SHOW COLUMNS FROM <Таблица> FROM <Имя базы данных>;

 
Для примера выведем структуру таблицы City из базы данных tests:
SHOW COLUMNS FROM `City` FROM `tests`;

 
Отобразить структуру таблицы позволяет также SQL-команда
DESCRIBE <Таблица>;

 
В отличие от команды SHOW COLUMNS, перед использованием команды DESCRIBE база данных должна быть предварительно выбрана. Для примера выведем структуру таблицы Orders из базы данных tests:
USE `tests`;
DESCRIBE `Orders`;

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити