Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел VI. ЭММ. Управление данными.docx
Скачиваний:
2
Добавлен:
16.08.2019
Размер:
369.24 Кб
Скачать

23. Оператор выборки, синтаксис и описание

Оператор SELECT является фактически самым важным для пользователя и самым сложным оператором SQL. Он предназначен для выборки данных из таблиц, т.е. он, собственно, и реализует одно их основных назначение базы данных - предоставлять информацию пользователю.

Синтаксис оператора выборки:

В довольно сильно упрощенном виде оператор выборки данных имеет следующий синтаксис:

Оператор выборки ::=

Табличное выражение

[ORDER BY

{{Имя столбца-результата [ASC | DESC]} | {Положительное целое [ASC |DESC]}}.,..];

Табличное выражение ::=

Select-выражение

[

{UNION | INTERSECT | EXCEPT} [ALL]

{Select-выражение | TABLE Имя таблицы | Конструктор значений таблицы}

]

Select-выражение ::=

SELECT [ALL | DISTINCT]

{{{Скалярное выражение | Функция агрегирования | Select-выражение} [AS Имя столбца]}.,..}

| {{Имя таблицы|Имя корреляции}.*}

| *

FROM {

{Имя таблицы [AS] [Имя корреляции] [(Имя столбца.,..)]}

| {Select-выражение [AS] Имя корреляции [(Имя столбца.,..)]}

Соединенная таблица }.,..

[WHERE Условное выражение]

[GROUP BY {[{Имя таблицы|Имя корреляции}.]Имя столбца}.,..]

[HAVING Условное выражение]

24. Операторы назначения и отмены прав доступа на базу данных.

По соображениям безопасности не каждому пользователю прикладной системы может быть разрешено получать информацию из какой-либо таблицы, а тем более изменять в ней данные. Для определения прав пользователей относительно объектов базы данных (таблицы, представления, индексы) в SQL определена пара команд GRANT и REVOKE. Синтаксис операции передачи прав на таблицу:

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

  • SELECT - получение информации из таблицы

  • UPDATE - изменение информации в таблице

  • INSERT - добавление записей в таблицу

  • DELETE - удаление записей из таблицы

  • INDEX - индексирование таблицы

  • ALTER - изменение схемы определения таблицы

  • ALL - все права

GRANT <тип_права_на_таблицу>

ON <имя_таблицы> [<список_столбцов>]

TO <имя_пользователя>

Отмена прав осуществляется командой REVOKE:

REVOKE <тип_права_на_таблицу>

ON <имя_таблицы> [<список_столбцов>]

FROM <имя_пользователя>

Все ключевые слова данной команды эквивалентны оператору GRANT.

25. Приведите пример использования оператора SELECT.

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

Предложение SELECT (выбрать) позволяет объединить а затем упорядочить (ORDER BY) результаты выбора данных, полученных с помощью нескольких "подзапросов". При этом упорядочение можно производить в порядке возрастания - ASC или убывания DESC, а по умолчанию принимается ASC.

Имеет формат:

SELECT - (выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями

FROM - (из) перечисленных таблиц, в которых расположены эти столбцы

WHERE - (где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк

GROUP BY - (группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)

HAVING - (имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп.

Пример использования оператора SELECT:

SELECT T1.*

FROM T1, T2

WHERE T2.N1 = T1.F1

ORDER BY T1.F2

Предложение SELECT может использоваться как:

  • самостоятельная команда на получение и вывод строк таблицы, сформированной из столбцов и строк одной или нескольких таблиц (представлений);

  • элемент WHERE- или HAVING-условия (сокращенный вариант предложения, называемый "вложенный запрос");

  • фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT;

  • средство присвоения глобальным переменным значений из строк сформированной таблицы (INTO-фраза).