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

3.2. Использование подзапросов в insert

UPDATE STUDENT 1

SET STIPEND = STIPEND*2

WHERE CITY = 'Москва';

Предложение SET не является предикатом, поэтому в нем можно указать значение NULL следующим образом:

UPDATE UNIVERSITYl

SET RATING = NULL

WHERE CITY = 'Москва';

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

Создание объектов базы данных осуществляется с помощью операторов языка определения данных (DDL).

Таблицы базы данных создаются с помощью команды CREATE TABLE. Эта команда создает пустую таблицу, то есть таблицу, не имеющую строк. Значения в эту таблицу вводятся с помощью команды INSERT. Команда CREATE TABLE определяет имя таблицы и множество поименованных столбцов в указанном порядке. Для каждого столбца должен быть определен тип и размер. Каждая создаваемая таблица должна иметь, по крайней мере, один столбец. Синтаксис команды CREATE TABLE имеет следующий вид:

CREATE TABLE <ИМЯ ТабЛИЦЫ>

(<имя столбцаХтип данных>[(<размер>)]);

Используемые в SQL типы данных как минимум поддерживают стандарты ANSI (American National Standards Institute — Американский национальный институт стандартов)

Типы данных SQL:

CHAR (CHARACTER),

INT (INTEGER),

SMALLINT,

DEC (DECIMAL),

NUMERIC,

FLOAT,

Тип данных, для которого обязательно должен быть указан размер, — это CHAR. Реальное количество символов, которое может находиться в поле, изменяется от нуля (если в поле содержится NULL-значение) до заданного в CREATE TABLE макси-

мального значения.

Следующий пример показывает команду, которая позволяет создать таблицу STUDENT.

CREATE TABLE STUDENT1

(STUDENT__ID INTEGER,

SURNAME VARCHAR(60;,

NAME VARCHAR (60),

STIPEND DOUBLE,

KURS INTEGER,

CITY VARCHAR(60>,

BIRTHDAY DATE,

UNIV_ID INTEGER);

Создание объектов базы данных

Существует два основных типа ограничений — ограничения на столбцы и ограничения на таблицу. Ограничения на столбцы (COLUMN CONSTRAINTS) применимы только к отдельным столбцам, а ограничения на таблицу (TABLE CONSTRAINTS) примени-

мы к группам, состоящим из одного или более столбцов. Ограничения на столбец добавляются в конце определения столбца после указания типа данных и перед окончанием описания столбца (запятой). Ограничения на таблицу размещаются в кон-

це определения таблицы, после определения последнего столбца.

Команда CREATE TABLE имеет следующий синтаксис, расширенный включением ограничений:

CREATE TABLE <ИМЯ таблицы >

(<имя столбца > <тип данных> Ограничения на столбец>,

<имя столбца> <тип данных> Ограничения на столбец>,

Ограничения на таблицу> (<имя столбца>[,<имя столбца>]));

Поля, заданные в круглых скобках после описания ограничений таблицы, — это поля, на которые эти ограничения распространяются. Ограничения на столбцы применяются к тем

столбцам, в которых они описаны.

Зміна структури таблиці

Для модификации ранее созданной таблицы используется команда ALTER TABLE. Задавая различные параметры этой команды, вы можете внести в таблицу следующие изменения.

□ Добавить столбец вы можете с помощью команды

ALTER TABLE <Имя таблицы>

ADD <Имя столбца> <Тип столбца> [<Свойства столбца>] [FIRST или AFTER <Имя предшествующего столбца>];

В этой команде мы указываем имя таблицы, в которую добавляется столбец, а также имя и тип добавляемого столбца (о типах столбцов см. пункт «Типы данных в MySQL»). При необходимости можно также задать свойства добавляе­мого столбца (см. пункт «Свойства столбцов»). Кроме того, можно определить " место нового столбца среди уже существующих: добавляемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столб­ца (AFTER). Если место столбца не задано, он становится последним столбцом таблицы.

Например, чтобы добавить в таблицу Products (Товары) столбец store (на­звание склада, где хранится каждый вид товара), выполните команду

ALTER TABLE Products ADD store VARCHAR(1OO) AFTER details;

ПРИМЕЧАНИЕ

Добавить столбец со свойством AUTOJNCREMENT можно только с одновре­менным созданием индекса или ключа для этого столбца. Например, если бы столбец id не был включен в таблицу Products (Товары) при ее создании, мы могли бы добавить его с помощью команды ALTER TABLE Products ADD id BIGINT AUTOJNCREMENT, ADD PRIMARY KEY (id);

□ Добавить первичный ключ вы можете с помощью команды

ALTER TABLE <Имя таблицы> ADD [CONSTRAINT <Имя ключа>] PRIMARY KEY (<Список столбцов>);

При добавлении в таблицу первичного ключа мы указываем имя таблицы, в ко­торую нужно добавить ключ, и имена столбцов, которые будут образовывать первичный ключ (эти столбцы должны уже существовать в таблице). Более подробно о первичных ключах было сказано в пункте «Ключевые столбцы и индексы».

Например, если бы первичный ключ не был определен при создании таблицы Orders (Заказы), мы могли бы добавить его с помощью команды

ALTER TABLE Orders ADD PRIMARY KEY (id);

□ Добавить внешний ключ вы можете с помощью команды

ALTER TABLE <Имя таблицы> ADD [CONSTRAINT <Имя внешнего ключа>] FOREIGN KEY [<Имя индекса>] (<Список столбцов>) REFERENCES <Имя родительской таблицы> (<Список столбцов первичного ключа родительской таблицы>) [<Правила поддержания целостности связи>];

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

Например, если бы внешний ключ не был определен при создании таблицы Orders (Заказы), мы могли бы добавить его с помощью команды

ALTER TABLE Orders

ADD FOREIGN KEY (customerjd) REFERENCES Customers (id) ON DELETE RESTRICT ON UPDATE CASCADE);

Более подробно о внешних ключах говорилось в пункте «Ключевые столбцы и индексы». D Добавить в таблицу обычный индекс вы можете с помощью команды

ALTER TABLE <Имя таблицы> ADD INDEX [<Имя индекса>] (<Список столбцов>);

Добавить уникальный индекс — с помощью команды

ALTER TABLE <Имя таблицы>

ADD [CONSTRAINT <Имя ограничения>]

UNIQUE (<Список столбцов>); Добавить полнотекстовый индекс — с помощью команды

ALTER TABLE <Имя таблицы> ADD FULLTEXT [<Имя индекса>] (<Список столбцов>);

При добавлении в таблицу индекса мы указываем имя таблицы, в которую нужно добавить индекс, и имена столбцов, включенных в индекс. В случае необходимости можно также задать имя индекса. Более подробно об индексах было сказано в пункте «Ключевые столбцы и индексы».

Например, добавить индекс для столбца store (склад) таблицы Products (Товары) можно с помощью команды ALTER TABLE Products ADD INDEX (store); - Изменить столбец таблицы вы можете с помощью следующих команд: • Чтобы полностью изменить описание столбца, выполните команду

ALTER TABLE <Имя таблицы> CHANGE <Прежнее имя столбца> <Новое имя столбца>

<Новый тип столбца> [<Свойства столбца>] [FIRST или AFTER <Имя предшествующего столбца>];

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]