ALTER TABLE PROD DROP STORE

Инструкция удаления таблицы имеет формат вида:

 

DROP TABLE <имя та6лицы>

 

Например, для удаления таблицы с именем SALE достаточно записать оператор вида:

DROP TABLE SALE

 

Одним из структурных элементов физической памяти является индекс. Индекс – это средство, обеспечивающее быстрый доступ к строкам таблицы на основе значений одного или нескольких столбцов. В индексе хранятся значения данных и указатели на строки, где эти данные встречаются. Данные в индексе располагаются в убывающем или в возрастающем порядке, чтобы СУБД могла быстро найти требуемое значение. Затем по указателю СУБД сможет быстро определить строку, содержащую требуемое значение. Инструкциясоздания индекса имеет формат вида:

 

CREATE [UNIQUE] INDEX <имя индекса> ОN <имя таблицы> (<имя столбца> [ ASC| DESC]

[,<имя столбца> [ASC| DESC],... )

 

Оператор позволяет создать индекс для одного или нескольких столбцов заданной таблицы с целью ускорения выполнение запросных и поисковых операций с таблицей. Для одной таблицы можно создать несколько индексов.

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

При создании индекса можно задать порядок автоматической сортировки значений в столбцах – в порядке возрастания ASC (по умолчанию), или в порядке убывания DESC. Для разных столбцов можно задавать различный порядок сортировки.

Пример 3.31. Создание индекса

Пусть из таблице CUST часто извлекаются данные по названию фирм-клиентов. Можно создать индекс main_index для сортировки названий фирм-клиентов в алфавитном порядке по возрастанию. Оператор создания индекса может иметь вид:

CREATE INDEX main_index ON CUST (CUST_NAME)

 

Инструкция удаления индекса имеет формат вида:

 

DROP INDEX<имя индекса>

 

Эта инструкция позволяет удалять созданный ранее индекс с соответствующим именем. Так, например, для уничтожения индекса main_index к таблице CUST достаточно записать инструкцию DROP INDEX main_index.

Кроме таблиц и индексов существуют другие объекты базы данных, например, представления. Представление является "виртуальной" таблицей, содержащей набор столбцов одной или нескольких таблиц. Однако, в отличие от таблицы, представление как совокупность значений в базе данных реально не существует. Представление определяется как запрос на выборку данных, которому присвоили имя и сохранили в базе данных. Представление позволяет пользователю увидеть результаты сохраненного запроса.

Инструкциясоздания представления имеет формат вида:

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

[(<имя столбца> [,<имя столбца> ]…)]

AS <оператор SELECT>

 

При необходимости можно задать имя для каждого столбца создаваемого представления. Список имен столбцов должен содержать столько элементов, сколько столбцов содержится в запросе. Если список имен в инструкции отсутствует, то каждый столбец представления получает имя соответствующего столбца запроса.

Пример 3.32. Создание представления

Необходимо создать представление c именем CUSTINFтаблицы CUST, включающее только названия клиентов и их номера.

 

CREATE VIEW CUSTINF

AS SELECT CUST_NUM, CUST_NAME

FROM CUST

 

Создать представление ORDER_CUS, показывающее заказы сделанные клиентом 3105.

CREATE VIEW ORDER_CUS

AS SELECT

FROM ORDERS

WHERE CUST_NUM=3105

 

Инструкцияудаления представления имеетформат вида:

 

DROP VIEW <имя представления>

 

Оператор позволяет удалить созданное ранее представление. Заметим, что при этом таблицы, участвующие в запросе, удалению не подлежат. Удаление представления ORDER_CUS производится инструкцией вида:

DROP VIEW ORDER_CUS

 

Представления широко применяются для ограничения доступа пользователей ко всей информации в таблицах базы данных.

Пример 3.33. Использование инструкции GRAND и REVOKE

Можно определить права доступа к таблицам базы данных с помощью инструкций GRAND и REVOKE. Например, инструкция

GRAND INSERT

ON CUST

TO PETROV

 

разрешает сотруднику Петрову ввод данных в таблицу CUST.

Далее инструкция отменяет привилегии сотрудника Иванова на изменение данных о клиентах и чтение информации о них

REVOKE UPDATE, SELECT

ON CUST

TO IVANOV

Запросы являются фундаментом SQL. Многие разработчики используют SQL исключительно в качестве инструмента для создания запросов. Поэтому важнейшей инструкцией является инструкция SELECT, которая используется для построения SQL-запросов:

SELECT [ALL | DISTINCT]<список данных>

FROM <список таблиц>

[WHERE <условие отбора>]

[GROUP BY <имя столбца> [,<имя столбца>]... ]

[HAVING <условие поиска>]

[ORDER BY <спецификация> [,<спецификация>]...]

 

Оператор SELECT позволяет производить выборку и вычисления над данными из одной или нескольких таблиц. В предложении SELECT указывается список возвращаемых столбцов, разделенных запятыми. Для каждого элемента из списка в ответной таблице будет создан один столбец. Ответная таблица может иметь (ALL), или не иметь (DISTINCT) повторяющиеся строки. По умолчанию в ответную таблицу включаются все строки, в том числе и повторяющиеся. Список данных может содержать выражения над столбцами, показывающие, что наряду с выборкой данных выполняются вычисления, результаты которого попадают в новый (создаваемый) столбец ответной таблицы

В отборе данных участвуют записи одной или нескольких таблиц, перечисленных в списке предложения FROM. Такие таблицы называют исходными таблицами запроса.

При использовании в списках данных имен столбцов нескольких таблиц для указания принадлежности столбца некоторой таблице применяют конструкцию вида: <имя таблицы>.<имя столбца>.

Предложение WHERE задает условия, которым должны удовлетворять строки в результирующей таблице. Вслед за ключевым словом WHERE указывается логическое выражение <условие отбора>. Его элементами могут быть имена столбцов, операции сравнения, арифметические операции, логические операции (И, ИЛИ, НЕТ), скобки, специальные функции LIKE и т.д.

Предложение GROUP BY содержит список столбцов, которые используются для группировки строк.Группой называются строки с совпадающими значениями в столбцах, перечисленных за ключевыми словами GROUP BY. Для сгруппированных данных можно использовать статистические функции: AVG (среднее значение в группе), МАХ (максимальное значение в группе), MIN (минимальное значение в группе), SUM(сумма значений в группе), COUNT (число значений в группе).

Вслед за предложением HAVING указывается логическое выражение <условия поиска>, определяющее, какие из отобранных и сгруппированных строк будут отображаться в результирующем наборе данных. Правила записи аналогичны правилам формирования <условия отбора> предложения WHERE.

Предложение ORDER BY задает порядок сортировки результирующего множества строк. Обычно каждая <спецификация> аналогична соответствующей конструкции оператора CREATE INDEX и представляет собой конструкцию вида: <имя столбца> [ ASC | DESC].

Пример 3.34. Выбор строк

Пусть требуется вывести названия товаров и их цену. Инструкцию выбора можно записать следующим образом:

SELECT PROD_NAME, PRICE

FROM PROD

Пример 3.35. Выбор с условием

Вывести названия товаров, цена которых больше 100$. Инструкцию SELECT для этого запроса можнозаписать так:

SELECT PROD_NAME

FROM PROD

WHERE PRICE>100

Пример 3. 36.Выбор с сортировкой

Строки результатов запроса, как и строки таблицы базы данных, не имеют определенного порядка. Включив в инструкцию SELECT предложение ORDER BY, можно отсортировать результаты запроса.

Пусть требуется вывести название клиентов и годовой объем заказов. Последний столбец отсортировать по возрастанию. По умолчанию данные сортируются по возрастанию.