Скачать презентацию Тема 8 Язык SQL подъязык DDL Подъязык DDL Скачать презентацию Тема 8 Язык SQL подъязык DDL Подъязык DDL

Тема 08 (SQL - DDL).ppt

  • Количество слайдов: 12

Тема 8 Язык SQL: подъязык DDL Подъязык DDL (Data Definition Language), позволяет создавать, изменять Тема 8 Язык SQL: подъязык DDL Подъязык DDL (Data Definition Language), позволяет создавать, изменять и уничтожать объекты базы данных: o Создание – CREATE o Изменение – ALTER o Удаление – DROP Пример: CREATE TABLE

Классификация типов данных (Microsoft SQL Server) Символьные данные Точные числа Округленные числа Дата/время Другие Классификация типов данных (Microsoft SQL Server) Символьные данные Точные числа Округленные числа Дата/время Другие • CHAR(length) • VARCHAR(length) • TEXT • NUMERIC (precision , scale), DECIMAL (precision, scale) • INT, SMALLINT, BIT • MONEY • FLOAT (precision) • REAL • DOUBLE PRECISION • DATETIME, SMALLDATETIME • Юникод, двоичные данные, курсоры, прочее.

Типы данных (Microsoft SQL Server) image smalldatetime bit binary text real decimal char uniqueidentifier Типы данных (Microsoft SQL Server) image smalldatetime bit binary text real decimal char uniqueidentifier money numeric timestamp tinyint datetime smallmoney nvarchar smallint float varbinary nchar int ntext varchar sysname cursor sql_variant table xml

Создание и удаление базы данных Действие Синтаксис Пример Создание БД CREATE DATABASE database_name [ Создание и удаление базы данных Действие Синтаксис Пример Создание БД CREATE DATABASE database_name [ [, . . . n] ] [ LOG ON {[, . . . n] } ]; CREATE DATABASE mytestbase; Удаление БД DROP DATABASE database_name; DROP DATABASE mytestbase;

Создание таблиц – базовый синтаксис CREATE TABLE table_name (column_name data_type [NULL | NOT NULL Создание таблиц – базовый синтаксис CREATE TABLE table_name (column_name data_type [NULL | NOT NULL ] [, . . . n]); Пример: CREATE TABLE S( Kod. S VARCHAR(5) Address VARCHAR(50), Pol СНАR, DR DATE, ZP DECIMAL(7, 0) Kod. B CHAR(9) NOT NULL, NOT NULL)

Удаление и модификация таблицы ALTER TABLE table_name {[ADD [COLUMN] column_name data_type [NULL | NOT Удаление и модификация таблицы ALTER TABLE table_name {[ADD [COLUMN] column_name data_type [NULL | NOT NULL ]] | [DROP [COLUMN] column_name]}; ALTER TABLE My. Customers DROP COLUMN Company. Name; DROP TABLE table_name [RESTRICT | CASCADE]; DROP TABLE My. Customers;

Индексы Индекс – это структура, позволяющая выполнить ускоренный доступ к строкам таблицы на основе Индексы Индекс – это структура, позволяющая выполнить ускоренный доступ к строкам таблицы на основе значений одного или более ее столбцов Индексы бывают: o Кластерные/некластерные; o Уникальные/неуникальные. CREATE [UNIQUE] [CLUSTERED] INDEX <имя_индекса> ON <имя_таблицы> (столбцы [ASC | DESC] [, . . . ]) DROP INDEX имя_индекса

Индексы - примеры CREATE UNIQUE CLUSTERED INDEX Kod. S_ind ON Staff (Kod. S); CREATE Индексы - примеры CREATE UNIQUE CLUSTERED INDEX Kod. S_ind ON Staff (Kod. S); CREATE INDEX Rent_ind ON Property_for_Rent (Type, Rooms); DROP INDEX Rend_ind

Определение ограничений целостности Ограничения целостности предназначены для защиты базы данных от нарушения согласованности сохраняемых Определение ограничений целостности Ограничения целостности предназначены для защиты базы данных от нарушения согласованности сохраняемых в ней данных. Обязательные данные Not null Ограничения на значения Check Целостность сущностей Primary key Ссылочная целостность Foreign key (в поле не должно быть неопределенных значений) (специальное ограничение) (первичный ключ) (внешний ключ)

Внешние ключи Для ограничения ссылочной целостности (FOREIGN KEY) предусмотрено четыре типа реакции на выполнение Внешние ключи Для ограничения ссылочной целостности (FOREIGN KEY) предусмотрено четыре типа реакции на выполнение UPDATE первичного ключа и DELETE записей родительской таблицы. Реакция применяется в том случае, если на первичный ключ ссылаются записи дочерней таблицы o o CASCADE – обновление (удаление) записей внешнего ключа SET NULL – установка значений внешнего ключа в пустое значение SET DEFAULT – установка значений внешнего ключа в значение по умолчанию NO ACTION – операция удаления(обновления) отвергается

Создание таблиц – расширенный синтаксис CREATE TABLE table_name {(column_name data_type [ NOT NULL ][ Создание таблиц – расширенный синтаксис CREATE TABLE table_name {(column_name data_type [ NOT NULL ][ UNIQUE] [DEFAULT ] [CHECK ()][, . . . n]} [ [, …n]] = [CONSTRAINT constraint_name] {PRIMARY KEY (column_name [, . . . n])} | {UNIQUE (column_name [, . . . n])} | {FOREIGN KEY (column_name [, . . . n]) REFERENCES table_name [(column_name [, . . . n])], [ON UPDATE {CASCADE |SET NULL |SET DEFAULT |NO ACTION}] [ON DELETE {CASCADE |SET NULL |SET DEFAULT |NO ACTION}] }| {CHECK()}

Создание таблицы - пример CREATE TABLE P( Kod. P int NOT NULL, city varchar(25), Создание таблицы - пример CREATE TABLE P( Kod. P int NOT NULL, city varchar(25), Pind int, type char(1) NOT NULL DEFAULT 'К’, rent money NOT NULL DEFAULT 600, Kod. O int NOT NULL, Kod. S int CONSTRAINT Staff. Not. Handling. Too. Much CHECK (NOT EXISTS (SELECT Kod. S FROM P GROUP BY Kod. S HAVING COUNT(*) > 100)), Kod. B int NOT NULL, PRIMARY KEY (Kod. P), FOREIGN KEY (Kod. S) REFERENCES S (Kod. S), FOREIGN KEY (Kod. O) REFERENCES O ON DELETE NO ACTION ON UPDATE CASCADE);