Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на айфон. ответа по бд.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
973 Кб
Скачать
☆

11) Команда создания таблиц. Пример для субд MySql. Просмотр структуры таблицы.

Команда CREATE TABLE

Синтаксис команды CREATE TABLE таков:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] имя

[(спецификация, ...)]

[опция, ...]

[ [IGNORE | REPLACE] запрос]

Флаг TEMPORARY задает создание временной таблицы, существующей в течение текущего сеанса. По завершении сеанса таблица удаляется. Временным таблицам можно присваивать имена других таблиц, делая последние временно недоступными. Спецификатор IF NOT EXIST подавляет вывод сообщений об ошибках в случае, если таблица с указанным именем уже существует. Имени таблицы может предшествовать имя базы данных, отделенное точкой. Если это не сделано, таблица будет создана в базе данных, которая установлена по умолчанию.

Разрешается создавать таблицы без столбцов, однако в большинстве случаев спецификация хотя бы одного столбца все же присутствует. Спецификации столбцов и индексов приводятся в круглых скобках и разделяются запятыми. Формат спецификации следующий:

имя тип

[NOT NULL | NULL]

[DEFAULT значение]

[AUTO_INCREMENT]

[KEY]

[ссылка]

Спецификация типа включает название типа и его размерность. По умолчанию столбцы принимают значения NULL. Спецификатор NOT NULL запрещает подобное поведение.

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

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

Пример 1:

Для базы данных rabotniki определена одна таблица, которая содержит данные компании о сотрудниках. Создадим ее.

Rab_id

1_name

2_name

dolgnost

vozrast

stag

zarplata

nadbavki

email

Идентиф. номер работника

Имя

Фамилия

Должность

Возраст

Стаж работы

Зарплата

Надбавки

Адрес эл. почты

Команда SQL для создания такой таблицы выглядит следующим образом:

CREATE TABLE rabotniki_data

(

rab_id int unsigned not null auto_increment primary key,

1_name varchar(20),

2_name varchar(20),

dolgnost varchar(30),

vozrast int,

stag int,

zarplata int,

nadbavki int,

email varchar(60)

);

Оператор DESCRIBE позволяет посмотреть структуру таблицы:

DESCRIBE rabotniki_data;

12)Команда изменения структуры таблицы. Основные преобразования, выполняемые этим оператором. Примеры для субд MySql.

Изменение структуры таблицы ALTER TABLE

Эта команда позволяет добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу.

ALTER TABLE table_name alter_spec;

Основные преобразования, выполняемые оператором ALTER TABLE

  • ADD create definition [ FIRST | AFTER column_name] Добавление нового столбца create_definition. Этот параметр представляет собой название ново- го столбца и его тип. Конструкция FIRST добавляет новый столбец перед столбцом column_name. Конструкция AFTER добавляет новый столбец после столбца column_name. Если место добавления не указано, по умолчанию столбец добавляется в ко- нец таблицы.

  • ADD INDEX [index_name] (index_col_name, ...) Добавление индекса index_name для столбца index_col_name. Если имя индекса index_name не указывается, ему присваивается имя, совпадающее с именем столбца index_col_name.

  • ADD PRIMARY KEY (index_col_name, ...) Делает столбец index_col_name или группу столбцов первичным ключом таблицы.

  • CHANGE old_col_name new_col_name type Изменение столбца с именем old_col_name на столбец с именем new_col_name и типом type.

  • DROP col_name Удаление столбца с именем col_name.

  • DROP PRIMARY KEY Удаление первичного ключа таблицы.

  • DROP INDEX index_name Удаление индекса index_name.

Примеры:

1. Добавление в таблицу new_table нового столбца test с размещением его после столбца name можно выполнить следующим SQL-запросом

mysql> ALTER TABLE new_table ADD test INT(10) AFTER name;

Выполнив команду DESCRIBE new_table, можно увидеть, что столбец test успешно добавлен после столбца name.

2. Переименование столбца test в текстовый столбец new_test можно осуществить следующим образом.

mysql> ALTER TABLE new_table CHANGE test new_test text;

3. Удаление столбца new_test можно осуществить следующим запросом

mysql> ALTER TABLE new_table DROP new_ test;