Файл: Тема 8. Операторы DDL.pdf

Добавлен: 20.10.2018

Просмотров: 487

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Тема 8. Операторы DDL 

Демонстрацию операторов DDL языка SQL будем проводить на примере 

базы  данных  СНАБЖЕНИЕ,  описывающей  взаимодействие  поставщиков  и 

покупателей товаров.  

База данных состоит из трех отношений со схемами:  

 

Покупатели (Фамилия, Адрес, Баланс),   

 

Поставщики (Название, Адрес, Товар, Цена),  

 

Заказы (Фамилия, Товар, Количество).  

В  приведенных  далее  описаниях  операторов  используются  следующие 

соглашения:  конструкция  [текст]  означает  необязательность  заключенного  в 

скобки  фрагмента  оператора,  конструкция  {текст},…  -  одно  или  несколько 

повторений  фрагмента,  конструкция  {вариант1|вариант2|вариант3…}  -  выбор 

одного из вариантов. 

Оператор CREATE TABLE 

CREATE TABLE имя_таблицы ({имя_столбца тип [NOT NULL]},…) 

Создается новая таблица с именем имя_таблицы, включающая столбцы с 

указанными  именами  и  типами  данных.  Необязательная  фраза  NOT  NULL 

запрещает  помещать  в  базу  данных  кортежи  с  незаданными  значениями 

соответствующих компонентов. 

Пример. 

CREATE TABLE Покупатели 

               (Фамилия CHAR (10) NOT NULL,  

                Адрес CHAR (20) NOT NULL, 

                Баланс NUMERIC (10,2)). 

Оператор  создает  новую  пустую  таблицу  Покупатели  со  столбцами 

Фамилия,  Адрес,  Баланс.  Фамилии  и  адреса  покупателей  должны 

присутствовать во всех строках таблицы. Баланс указывать не обязательно. 

Оператор ALTER TABLE 

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

             ({{ADD|MODIFY|DROP} имя_столбца [тип] [NOT NULL]},…) 


background image

Изменяет указанную таблицу. Варианты ADD,MODIFY, DROP означают 

соответственно добавление, модификацию, удаление указанного столбца. 

Пример

ALTER TABLE Покупатели 

             (ADD Телефон  CHAR (7)) 

Добавляет к таблице Покупатели столбец Телефон типа CHAR (7). 

Оператор CREATE INDEX 

Индекс  используется  для  ускорения  поиска  в  таблицах,  состоит  из 

последовательности  пар  (ключ  кортежа,  адрес  кортежа),  заполняется  и 

обслуживается СУБД. 

CREATE [UNIQUE] INDEX имя_индекса ON имя_таблицы 

                 ({имя_столбца  [ASC|DESC]},…) 

Создает  индекс  с  указанным  именем  для  таблицы  имя_таблицы.  Ключ 

индекса состоит из всех перечисленных атрибутов (имен столбцов).  

Необязательное  слово  UNIQUE  запрещает  дублирование  ключей,  слова 

ASC,  DESC  задают  тип  сортировки  значений  ключа  (по  возрастанию  или 

убыванию атрибута). Если тип сортировки не задан, то предполагается ASC. 

Пример. 

CREATE INDEX Инд_Покуп ON Покупатели (Фамилия). 

Создает  индекс  Инд_Покуп  для  таблицы  Покупатели.  Ключ  индекса 

содержит  единственный  атрибут  Фамилия.  Разрешено  дублирование  ключей, 

значения ключа упорядочены по возрастанию. 

Оператор CREATE VIEW 

CREATE VIEW  имя_представления  

                 [(список_столбцов)] AS оператор-SELECT 

Создает  таблицу  -  представление  имя_представления,  основанную  на 

результате  выполнения  оператора  SELECT.  Параметр  список_столбцов 

определяет  структуру  таблицы.  Если  список  не  задан,  то  используются  имена 

столбцов из запроса. 


background image

Операторы DML 

Оператор UPDATE 

UPDATE  имя_таблицы  

            {SET  имя_столбца = {выражение | NULL}},…  

             [WHERE  условие] 

Изменяет  значения  указанных  столбцов  таблицы  в  строках, 

удовлетворяющих  условию.  Слово  NULL  означает  отсутствие  значения  для 

столбца. Если условие не задано, то обновляются все строки таблицы. 

Пример. 

UPDATE  Покупатели 

            SET  Баланс = Баланс+100 

             WHERE  Баланс<0 

Обновляется  таблица  Покупатели.  К  каждой  строке  таблицы  с 

отрицательным балансом добавляется 100. 

Оператор INSERT  

Имеются две формы оператора. 

INSERT INTO имя_таблицы                                                               (1) 

                [(список_столбцов)] VALUES (список_значений) 

 

INSERT INTO имя_таблицы                                                               (2) 

                [(список_столбцов)]  предложение-SELECT 

Первая форма вводит в таблицу новые строки с указанными значениями 

полей. Если столбцы не указаны, то используются все столбцы таблицы. 

Вторая  форма  добавляет  в  таблицу  строки,  отобранные  предложением 

SELECT.  Если  имена  столбцов  не  указаны,  то  используются  имена  из 

предложения. 

Пример

INSERT INTO Покупатели  VALUES («Петров», «Адрес», 100.00) 

Добавляет  к  таблице  Покупатели  одну  запись  с  атрибутами  покупателя 

Петрова. 


background image

 

Оператор DELETE 

DELETE FROM имя_таблицы [WHERE условие] 

Удаляет удовлетворяющие условию строки. Если условие не указано, то 

удаляются все строки таблицы.