- •Varchar [(длмня)], char varying [(длина)],
- •Числовые типы данных
- •Дата и время
- •Неопределенные или пропущенные данные (noll)
- •Используемые термины и обозначения
- •Команды манипулирования данными
- •3.2. Использование подзапросов в insert
- •Создание таблиц базы данных
- •Создание объектов базы данных
- •Зміна структури таблиці
- •Внимание
- •Зміна структури таблиць
- •Заняття 4. Вставка записів у таблиці
- •Ограничение not null
- •2.4. Листинг 2.4. Команда создания таблицы Orders
- •Перегляд окремих записів та окремих полів у таблиці
- •Використання кількох умов відбору записів
- •Ітоги . Що ми узнали про перегляд даних у таблицях
- •Лекція на тему: Оновлення та вилучення записів в субд MySql.
- •3.2. Использование подзапросов в insert
- •Вилучення записів з таблиць
- •Лекція на тему: Вибірка даних з субд MySql.
- •Просте об'єднання двох таблиць
- •Самостійно.
- •Об'єднання трьох і більше таблиць
- •Об'єднання таблиць за остачею
- •Підсумок
- •Лекція на тему: Групування даних. Запити з обчисленнями.
- •Обчислення середнього значення: функція avg
- •Підрахунок кількості записів: функція count
- •Підрахунок суми значень: функція sum()
- •Пошук найбільшого та найменшого значення: функції max та min
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 <Имя предшествующего столбца>];
