Типы данных, используемые в языке SQL для хранения информации в столбцах таблиц БД, весьма разнообразны. К сожалению, производители конкретных реляционных СУБД считают своим долгом улучшить множество типов данных, регламентируемых стандартом, реализуя свои собственные версии и расширения.
Автором учебного пособия в качестве базовых предлагается считать следующие типы данных:
· INT[(len)] - целое число длиной 4 байта, представляемое при выводе максимально len цифрами;
· SMALLINT[(len)] - целое число длиной 2 байта, представляемое при выводе максимально len цифрами;
· FLOAT[(len, dec)] - действительное число, представляемое при выводе максимально len символами с dec цифрами после десятичной точки;
· CHAR(size) - строка символов фиксированной длины размером size символов;
· VARCHAR(size) - строка символов переменной длины максимальным размером до size символов;
· BLOB (Binary Large OBject) - массив произвольных (двоичных) байтов (максимальный размер зависит от реализации, обычно это 65535 байт); этот тип данных может использоваться, например, для хранения изображений;
|
|
· DATE - астрономическая дата;
· TIME - астрономическое время.
Символьные константы (типа CHAR и VARCHAR) записываются как последовательности символов, заключенные в одиночные апострофы, например brass (латунь).
Десятичные константы (типа FLOAT) могут записываться в научной нотации как последовательности следующих компонент:
· знак числа;
· десятичное число с точкой;
· символ е;
· знак (+ или -) показателя степени;
· целое число, играющее роль показателя степени числа 10.
Например, десятичное число -0,123 может быть записано как -12.3е-2.
Отличие типов данных CHAR и VARCHAR заключается в том, что для хранения в таблице строк символов типа CHAR используется точно size байт (хотя содержание хранимых строк может быть значительно короче), в то время как для строк типа VARCHAR незанятые символами строк (пустые) байты в таблице не хранятся.
Подчеркнем, что величины len и dec (в отличие от size) не влияют на размер хранения данных в таблице, а только форматируют вывод данных из таблицы.
Манипулирование таблицами
Для создания, изменения и удаления таблиц в SQL БД используются операторы CREATE TABLE, ALTER TABLE и DROP TABLE.
Создание таблицы
Создание таблицы в БД реализуется оператором CREATE TABLE, имеющим следующий синтаксис
CREATE TABLE имя_табл (с_спецификация,...);где с_спецификация имеет разнообразный синтаксис. Здесь же рассматриваются наиболее часто используемые ее формы.
1. Описание столбца таблицы
имя_столбца тип_данных [ NULL ]где имя_столбца - имя столбца таблицы, а тип_данных - спецификация одного из типов данных, рассмотренных в разделе Типы данных языка SQL. Необязательное ключевое слово NULL означает, что ячейкам данного столбца разрешено быть пустыми (т.е. не содержать какого-либо значения).
|
|
2. Описание столбца таблицы
имя_столбца тип_данных NOT NULL [DEFAULT по_умолч ] [PRIMARY KEY]где конструкция NOT NULL запрещает иметь в таблице пустые ячейки в данном столбце. Конструкция PRIMARY KEY указывает, что содержимое столбца будет играть роль первичного ключа для создаваемой таблицы. Конструкция DEFAULT по_умолч переопределяет имеющееся для столбцов каждого типа данных значение по умолчанию (например, 0 для числовых типов), используемое при добавлении в таблицу оператором INSERT INTO строк, не содержащих значений в этом столбце.
3. Описание первичного ключа
PRIMARY KEY имя_ключа (имя_столбца,...)Эта спецификация позволяет задать первичный ключ для таблицы в виде композиции содержимого нескольких столбцов.
4. Описание вторичного ключа
KEY имя_ключа (имя_столбца,...)Модификация таблицы
Модификация существующей таблицы в БД реализуется оператором ALTER TABLE, имеющим следующий синтаксис
ALTER TABLE имя_табл м_специкация [, м_спецификация...]где м_спецификация имеет различные формы. Ниже рассматриваюся наиболее часто используемые.
1. Добавление нового столбца
ADD COLUMN с_спецификациягде с_спецификация - описание добавляемого столбца в том виде, как оно используется для создания таблицы оператором CREATE TABLE.
2. Удаление первичного ключа для таблицы
DROP PRIMARY KEY3. Изменение/удаление значения по умолчанию
ALTER COLUMN имя_столбца SET по_умолчили
ALTER COLUMN имя_столбца DROP DEFAULTУдаление таблицы
Удаление одной или сразу нескольких таблиц из БД реализуется оператором DROP TABLE, имеющим следующий простой синтаксис
DROP TABLE имя_табл,...Подчеркнем, что оператор DROP TABLE удаляет не только все содержимое таблицы, но и само описание таблицы из БД. Если требуется удалить только содержимое таблицы, то необходимо использовать оператор DELETE FROM.