3 Описание таблиц
Объекты SQL создаются с помощью языка определения данных (Data Definition Language — DDL), который применяется для описания атрибутов базы данных, таблиц, полей, индексов и способов сохранения данных.
Для создания таблицы, описания ее структуры предназначена команда CREATE TABLE. По этой команде:
· создается пустая таблица;
· присваивается имя пустой таблице;
· присваивается имя столбцам (полям) и определяется порядок их следования;
· устанавливается тип и размер каждого поля.
Минимальное число столбцов в таблице — один.
Формат команды CREATE TABLE:
CREATE TABLE <имя таблицы >
(<имя столбца> <тип данных> [(<размер>)],
<имя столбца> <тип данных> [(<размер >)]...);
Для данных символьного типа «размер» указывать обязательно, так как по умолчанию это 1 (один символ).
Пример команды CREATE TABLE для создания таблицы Spisok следующей структуры:
Факультет |
Курс |
Группа |
ФИО |
Стипендия (сумма) |
Удержания |
Перед созданием таблицы базы данных необходимо:
1) создать структуру таблицы, т. е. определить необходимый перечень полей и отношений между ними;
2) присвоить имена выбранным полям;
3) определить тип каждого поля (символьное, числовое, логическое и т.д.);
4) задать размер полей.
После этого приступаем к созданию таблицы. Для каждого поля структуры файла следует указать имя поля, его тип, длину, а для числовых данных — и количество цифр после десятичной точки, если это необходимо:
CREATE TABLE Spisok
fakultet char (4),
kurs char(l),
grupa char (5),
fio char (15),
stip decimal (7,2),
uderzano decimal (6,2);
Поля Stip и Uderzano описаны как десятичные, соответственно длинаполя (field width) 7 и 6 десятичных цифр и точность (количество знаков после запятой в цифровых полях) — 2.
Эту команду можно записать и в строку:
CREATE TABLE Spisok (fakultet char (4), kurs char (1), grupa char (4), fio char (15), slip decimal (7,2), uderzano decimal (6,2);
Контрольный пример таблицы Spisok приведен на рисунке 1.1.
Рисунок 1.1 - Контрольный пример таблицы Spisok
Индексирование
Записи в файлах базы данных размещены по ключам упорядочения. Возможны два вида упорядочения записей в таблице: а) логическое (CREATE INDEX — индексирование); б) физическое (SORT — сортирование).
Ключи сортирования должны быть сравнимыми, т. е. любые два ключа сортирования К1 и К2 должны удовлетворять одному из трех отношений:
К1 < К2, К1 = К2, К1 >К2.
Ключ, на который имеется ссылка в другой таблице, называется внешним.
Для манипулирования со значением строк таблицы предназначены индексы. Индексирование — это упорядочение записей по ключу (алфавиту, хронологии, в порядке возрастания или убывания). Для индексного поля создается упорядоченный список значений для этого поля. В таблице данных строки не упорядочены. Для поиска строки с заданным значением поля-ключа программа последовательно просматривает все записи таблицы, строка за строкой, пока не встретит строку с заданным значением поля. Это долгий путь. Индекс же сразу находит запись по значению поля-ключа.
Индекс (индексный файл) создается по команде:
CREATE INDEX <имя индекса> ON <имя таблицы>
(<имя столбца>[,<имя столбца>]...);
Пример. Создать индекс по полю fio таблицы Spisok:
CREATE INDEX fio ON Spisok (fio);
Таблица индексов (индексный файл), созданная командой CREATE INDEX, для пользователя невидима. SQL сам автоматически обращается к таблице индексов по мере надобности.
Корректировка таблицы (добавление столбцов в таблицу, удаление столбцов, изменение их размера и др.) выполняется командой ALTER TABLE следующего формата:
ALTER TABLE <имя таблицы> ADD <имя столбца>
<тип данных>,<размер>;
Новый столбец по этой команде в таблице становится последним; в него заносятся NULL-значения. Пользоваться этой командой следует осмотрительно, чтобы не повредить базу данных.
Удаление таблицы. Удалить можно только пустую таблицу, поэтому предварительно следует удалить ее данные. Формат команды:
DROP TABLE <имя таблицы>;