- •1. Назначение языка sql
- •2. Структура команд языка sql
- •3. Описание таблиц
- •4. Манипулирование данными
- •5. Формирование запросов (команда select)
- •6. Объединение таблицы по принципу “сама с собой”
- •7. Представления
- •8. Определение прав доступа к данным
- •9. Использование sql с другими языками программирования
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 (4), fio char (15), stip decimal (7,2), uderzana decimal (6,2);
Поля Stip и Uderzana описаны как десятичные, соответственно длина поля (field width) 7 и 6 десятичных цифр и точность (количество знаков после запятой в цифровых полях) — 2. Эту команду можно записать и в строку:
CREATE TABLE Spisok (fakultet char (4), kurschar(l), grupa char(4), fiochar(15), stip decimal (7,2), uderzana decimal (6,2);
Контрольный пример таблицы Spisok приведен на рис.1*.
Рис. 1. Контрольный пример таблицы Spisok
* Размер стипендий приведен в денежных знаках Республики Беларусь.
Индексирование
Записи в файлах базы данных размещены по ключам упорядочения. Возможны два вида упорядочения записей в таблице:
а) логическое (CREATE INDEX — индексирование);
б) физическое (SORT — сортирование).
Ключи сортирования должны быть сравнимыми, т. е. любые два ключа сортирования К1 и К2 должны удовлетворять одному из трех отношений:
К1 < К2, К1 = К2, К1 > К2.
Ключ, на который имеется ссылка в другой таблице, называется внешним.
Для манипулирования со значением строк таблицы предназначены индексы. Индексирование — это упорядочение записей по ключу (алфавиту, хронологии, в порядке возрастания или убывания). Для индексного поля создается упорядоченный список значений для этого поля. В таблице данных строки не упорядочены. Для поиска строки с заданным значением поля-ключа программа последовательно просматривает все записи таблицы, строка за строкой, пока не встретит строку с заданным значением поля. Это долгий путь. Индекс же сразу находит запись по значению поля-ключа.
Индекс (индексный файл) создается по команде:
CREATE INDEX <имя индекса> ON <имя таблицы> (<имя столбца>[,<имя столбца>].„);
Пример. Создать индекс по полю фамилия flo таблицы Spisok:
CREATE INDEX fio ON Spisok (fio);
Таблица индексов (индексный файл), созданная командой CREATE INDEX, для пользователя невидима. SQL сам автоматически обращается к таблице индексов по мере надобности.
Корректировка таблицы (добавление столбцов в таблицу, удаление столбцов, изменение их размера и др.) выполняется командой ALTER TABLE следующего формата:
ALTER TABLE <имя таблицы> ADD <имя столбца> <тип данных>,<размер>;
Новый столбец по этой команде в таблице становится последним; в него заносятся NULL-значения. Пользоваться этой командой следует осмотрительно, чтобы не повредить базу данных.
Удаление таблицы. Удалить можно только пустую таблицу, поэтому предварительно следует удалить ее данные. Формат команды:
DROP TABLE <имя таблицы>;