- •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
Внимание
Изменять тип столбца, который уже содержит какие-либо значения, необходимо с осторожностью, так как при этом возможно внесение коррективов в значения. Например, если тип данных с плавающей точкой меняется на целочисленный, числовые значения будут округлены. В этой команде мы указываем имя таблицы, текущее имя столбца, новое имя столбца (которое может совпадать с текущим), новый тип столбца (который также может совпадать с текущим типом), а также, при необходимости, свойства столбца (старые свойства при выполнении команды CHANGE удаляют-|ся). Кроме того, можно определить место столбца среди остальных столбцов таблицы: изменяемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столбца (AFTER).
Например, чтобы переименовать столбец store (склад) таблицы Products (Товары) в warehouse (склад) и изменить его тип на CHAR (100), выполните команду
ALTER TABLE Products CHANGE store warehouse CHAR(IOO);
Чтобы присвоить столбцу свойство AUTO_INCREMENT, необходимо либо' одновременно с этим, либо заранее создать индекс для этого столбца.
• Чтобы изменить описание столбца без переименования, выполните команду
ALTER TABLE <Имя таблицы> MODIFY <Имя столбца> <Новый тип столбца> [<Свойства столбца>] [FIRST или AFTER <Имя предшествующего столбца>];
Данная команда полностью аналогична предыдущей, за исключением возможности переименования столбца.
• Чтобы установить значение по умолчанию для столбца, выполните команду
ALTER TABLE <Имя таблицы> ALTER <Имя столбца> SET DEFAULT <3начение по умолчанию>;
Например, чтобы установить для столбца warehouse таблицы Products значение по умолчанию Склад № 1, выполните команду
ALTER TABLE Products ALTER warehouse SET DEFAULT 'Склад №Г;
Чтобы удалить значение по умолчанию, выполните команду
ALTER TABLE <Имя таблицы> ALTER <Иия столбца> DROP DEFAULT;
Например, удалить значение по умолчанию, установленное для столбца warehouse, можно с помощью команды
ALTER TABLE Products ALTER warehouse DROP DEFAULT;
□ Удалить столбец таблицы вы можете с помощью команды
ALTER TABLE <Имя таблицы> DROP <Имя столбцам
При удалении столбца он удаляется также из всех индексов, в которые он был включен (в отличие от первичного и внешнего ключа, которые требуется удалить прежде, чем удалять входящие в них столбцы). Если при этом в индексе не остается столбцов, то индекс также автоматически удаляется.
Например, для удаления столбца warehouse (склад) из таблицы Products (Товары) выполните команду
ALTER TABLE Products DROP warehouse;
□ Удалить первичный ключ вы можете с помощью команды
ALTER TABLE <Имя таблицы> DROP PRIMARY KEY;
Например, удалить первичный ключ из таблицы Orders (Заказы) можно с помощью команды
ALTER TABLE Orders DROP PRIMARY KEY;
3 Удалить внешний ключ вы можете с помощью команды•
ALTER TABLE <Имя таблицы> DROP FOREIGN KEY <Имя внешнего ключа>;
В этой команде необходимо указать имя внешнего ключа. Если вы не задали имя внешнего ключа при его создании, то имя было присвоено автоматически и узнать его можно с помощью команды SHOW CREATE TABLE (см. подраздел «Другие команды для работы с таблицами»).
Например, удалить внешний ключ из таблицы Orders можно с помощью команды
ALTER TABLE Orders DROP FOREIGN KEY orders_ibfk_l;
(здесь orders_ibf k_l — имя внешнего ключа, автоматически присвоенное ему при создании).
3 Удалить индекс (обычный, уникальный или полнотекстовый) вы можете с помощью команды
ALTER TABLE <Имя таблицы> DROP INDEX <Имя индексам
В этой команде необходимо указать имя индекса. Если вы не задали имя индекса при его создании, то имя было присвоено автоматически и узнать его можно с помощью команды SHOW CREATE TABLE (см. подраздел «Другие команды для работы с таблицами»).
Например, удалить индекс, созданный для поля name (имя) таблицы Customers (Клиенты), можно с помощью команды
ALTER TABLE Customers DROP INDEX name;
(здесь name — имя индекса: по умолчанию индексу присваивается имя первого индексируемого столбца).
3 Включить и отключить обновление неуникальных индексов в таблице с типом My ISAM вы можете с помощью следующих команд:
• ALTER TABLE <Имя таблицы> DISABLE KEYS;
Эта команда временно отключает обновление неуникальных индексов, что позволяет увеличить быстродействие операций добавления строк в таблицу.
• ALTER TABLE <Имя таблицы> ENABLE KEYS;
Эта команда позволяет восстановить индексы после добавления строк. 3 Переименовать таблицу вы можете с помощью команды
-LTER TABLE <Имя таблицы> RENAME <Новое имя таблицы>;
□ Упорядочить строки таблицы по значениям одного или нескольких столбцов вы можете с помощью команды
ALTER TABLE <Имя таблицы> ORDER BY <Имя столбца 1> [ASC или DESC], [<Имя столбца 2> [ASC или DESC],...];
Упорядочение строк позволяет ускорить последующие операции сортировки по значениям указанных столбцов. Однако порядок строк в таблице может нарушиться после операций добавления и удаления строк.
По умолчанию строки таблицы упорядочиваются по возрастанию значений. Вы можете выбрать направление сортировки, указав ключевое слово ASC (по возрастанию) или DESC (по убыванию).
Для таблиц с типом InnoDB, в которых есть первичный ключ или уникальный индекс, не допускающий неопределенных значений (NOT NULL UNIQUE), эта команда игнорируется, поскольку строки таких таблиц автоматически упорядочиваются по значениям этого ключа/индекса.
□ Задать опциональные свойства таблицы (см. пункт «Опциональные свойства таблицы») вы можете с помощью команды
ALTER TABLE <Имя таблицы> Опциональное свойство таблицы>; Например, изменить тип таблицы можно с помощью команды
ALTER TABLE <Имя таблицы> ENGINE <Новый тип таблицы>;
□ Изменить кодировку и правило сравнения символьных значений, используе мых по умолчанию для новых символьных столбцов таблицы, можно, как любое другое опциональное свойство таблицы, с помощью команды
ALTER TABLE <Имя таблицы> CHARACTER SET <Имя кодировки> [COLLATE <Имя правила сравнения>];
Например, если для таблицы Products (Товары) требуется установить в качестве кодировки по умолчанию кодировку СР-1251, это можно сделать с помощью команды
ALTER TABLE Products CHARACTER SET cpl251;
После выполнения этой команды существующие столбцы таблицы Products по-прежнему будут иметь кодировку UTF-8. Если же с помощью команды ALTER TABLE будут добавляться новые символьные столбцы, то им будет по умолчанию присваиваться кодировка СР-1251.
Если вы хотите не только изменить кодировку, используемую по умолчанию для новых столбцов, но и преобразовать в новую кодировку существующие символьные столбцы таблицы, то нужно использовать команду
ALTER TABLE <Имя таблицы>
CONVERT TO CHARACTER SET <Имя кодировка [COLLATE <Имя правила сравнения>];
При выполнении этой команды не просто меняются описания символьных столбцов: данные в этих столбцах также преобразуются в новую кодировку.
Например, после выполнения команды
ALTER TABLE Products CONVERT TO CHARACTER SET cpl251;
все наименования и описания товаров (значения столбцов description и details) преобразуются в кодировку СР-1251.
Если же данные в столбце фактически закодированы с помощью одной кодировки, а в описании столбца указана другая кодировка, исправить эту ошибку можно, изменив кодировку только в описании столбца, без преобразования данных. Это можно сделать, преобразовав тип столбца из символьного в бинарный (то есть тип CHAR преобразовать в тип BINARY, тип VARCHAR — в тип VARBINARY, тип TEXT — в тип BLOB и т. п.), а затем обратно в символьный, уже в правильной кодировке. Для этого выполним последовательно две команды:
ALTER TABLE <Имя таблицы>
CHANGE <Имя столбца> <Имя столбца> <Бинарный тип данных>; ALTER TABLE <Имя таблицы>
CHANGE <Имя столбца> <Имя столбца> <Исходный тип данных>
CHARACTER SET Фактическая кодировка значений^;
Например, если для столбца details таблицы Products установлен тип TEXT и кодировка UTF-8, а данные в нем фактически находятся в кодировке СР-1251, приведем описание столбца в соответствие с реальной кодировкой с помощью команд
ALTER TABLE Products CHANGE details details BLOB: ALTER TABLE Products CHANGE details details TEXT CHARACTER SET cpl251:
Итак, вы изучили команду изменения таблицы. В следующем подразделе рассмотрим еще несколько полезных команд работы с таблицами.
