Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 1 - Проектирование БД.doc
Скачиваний:
57
Добавлен:
12.04.2015
Размер:
448.51 Кб
Скачать

Создание баз данных и таблиц на sql Для операций над базами данных и таблицами в стандарте sql имеются следующие операторы:

CREATE DATABASE

– создать новую базу данных

DROP DATABASE

– удалить базу данных

SET DATABASE,

USE

– сделать базу данных текущей

CREATE TABLE

– создать таблицу

ALTER TABLE

– изменить структуру существующей таблицы (добавить или удалить столбцы или ограничения целостности)

DROP TABLE

– удалить таблицу

Ниже приводится синтаксис этих операторов по стандарту SQL. В реальных СУБД есть отличия от стандарта более или менее значительные. Разновидности языкаSQL, применяемые в конкретной СУБД, называютсядиалектами SQL. Например, в СУБДOracleдиалект называетсяPL/SQL; вMSSQLServer–Transact-SQL; диалектInterBase–isql. Отличия диалектов от стандарта могут проявляться в том, что изменен порядок следования ключевых слов в операторах; имеются новые типы данных, отдельные конструкции стандартаSQLмогут вовсе не поддерживаться. Диалекты описываются в справочной системе конкретной СУБД.

Имена таблиц, столбцов и других объектов базы данных могут включать латинские буквы, цифры и символ подчеркивания. Специальные символы (@$# и т.п.) обычно указывают, что таблица системная и временная. Стандарт SQLне рекомендует использовать в именах русские (национальные) буквы, пробелы и зарезервированные слова. Но если они используются, то имена следует заключать в кавычки ".." или в квадратные скобки [..].

При описании конструкций SQLбудут использоваться следующие правила: в квадратных скобках [ ] записываются необязательные части конструкции; альтернативные конструкции разделяются вертикальной чертой | ; фигурные скобки {} выделяют логические блоки конструкции; многоточиеуказывает на то, что предшествующая часть конструкции может многократно повторяться.

Создание базы данных

CREATE DATABASE Имя_базы_данных

Удаление одной и более баз данных

DROP DATABASE Имя_базы_данных [,Имя_базы_данных …]

Объявление текущей базы данных

USE Имя_базы_данных –- в SQL Server и MySQL

SET DATABASE Имя_базы_данных -- в InterBase

Создание таблицы

CREATE TABLE Имя_таблицы (

описание_столбца [, описание_столбца | ограничение_целостности_таблицы…]

)

описание_столбца

Имя_столбца ТИП [DEFAULT значение_по_умолчанию]

[NOT NULL]

{[UNIQUE | PRIMARY KEY]}

|

{[REFERENCES Имя_таблицы(Имя_столбца)]

[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

}

[CHECK (условие_проверки)]

ТИП столбца может быть либо стандартным типом данных, либо именемдомена.

Некоторые СУБД позволяют создавать вычислимые столбцы(computed columns). Это виртуальные столбцы, значение которых не хранится в физической памяти, а вычисляется сервером СУБД при всяком обращении к этому столбцу. В описании вычислимого столбца указывается формула, по которой производится вычисление. В нее могут входить значения других столбцов этой строки, константы, встроенные функции и глобальные переменные.

Описание вычислимого столбца в SQLServerимеет вид:

описание_столбцаИмя_столбца AS выражение

Описание вычислимого столбца в InterBaseимеет вид:

описание_столбцаИмя_столбца COMPUTED BY (выражение)

СУБД MySQL3.23 вычислимые столбцы не поддерживает.

ограничение_целостности_таблицы

CONSTRAINT Имя_ограничения_целостности

{UNIQUE|PRIMARY KEY} (список_столбцов_образующих_ключ)

|FOREIGN KEY (список_столбцов_FK)

REFERENCES Имя_таблицы(список_столбцов_PK)

[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]

|CHECK (условие_проверки)

Некоторые СУБД допускают объявление врéменных таблиц. Например, в SQLServerимена временных таблиц должны начинаться с символа # (локальные временные таблицы, «видимые» только создавшему их пользователю) или ## (глобальные таблицы, видимые всем пользоватлям); вMySQLдля создания временных таблиц используется ключевое словоTEMPORARY, например:

CREATE TEMPORARY TABLE … (далее синтаксис аналогично create table).

Изменение структуры таблицы

Этот оператор позволяет изменять тип столбцов существующих таблиц, добавлять и удалять столбцы и ограничения целостности.

ALTER TABLE Имя_таблицы

-- изменение типа столбца (в SQL Server и InterBase)

ALTER COLUMN Имя_столбца новый_ТИП

-- изменение типа, имени и ограничений столбца (в MySQL)

CHANGE COLUMN Имя_столбца описание_столбца

-- добавление обычного или вычислимого столбца

|ADD описание_столбца

-- добавление ограничения целостности

|[WITH CHECK|WITH NO CHECK] ADD ограничение_целостности_таблицы

-- удаление столбца

|DROP COLUMN Имя_столбца

-- удаление ограничения целостности

|DROP CONSTRAINT Имя_ограничения_целостности

-- включение или отключение проверки ограничений целостности (в SQL Server)

|{CHECK|NO CHECK} CONSTRAINT {Список_имен_ограничений_целостности|ALL}

Удаление таблицы

DROP TABLE Имя_таблицы

Здесь перечислены наиболее общие части операторов SQL, близкие к стандарту. При создании таблиц в лабораторной работе рекомендуется обращаться к документации конкретной СУБД, поскольку специфические отличия диалектов помогут оптимизировать работу СУБД.