Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL ЗАПРОСЫ.doc
Скачиваний:
7
Добавлен:
21.11.2018
Размер:
283.65 Кб
Скачать

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 <имя таблицы>;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]