Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Labs / Russian / Lab4R-SELECTBasicFeatures.doc
Скачиваний:
35
Добавлен:
20.02.2016
Размер:
346.62 Кб
Скачать

Лабораторная работа 4

Предложение SELECT в SQL Oracle. Основные возможности

Содержание

Цели лабораторной работы 2

Теоретические основы 3

Синтаксис запроса 3

Назначение 3

Предварительные требования 4

Ключевые слова и параметры 4

Описание и примеры 5

Основные фразы запроса: SELECT и FROM 6

Фраза SELECT 6

Фраза FROM 7

Фраза WHERE 8

Использование простых условий 8

Специальные операторы 9

Варианты заданий 12

1.1. Вариант 1 12

1.2. Вариант 2 13

1.3. Вариант 3 13

1.4. Вариант 4 14

1.5. Вариант 5 14

1.6. Вариант 6 15

1.7. Вариант 7 16

1.8. Вариант 8 16

1.9. Вариант 9 18

1.10. Вариант 10 19

1.11. Вариант 11 19

1.12. Вариант 12 20

1.13. Вариант 13 21

1.14. Вариант 14 22

1.15. Вариант 15 23

1.16. Вариант 16 23

1.17. Вариант 17 24

1.18. Вариант 18 25

Контрольные вопросы 25

Приложения 26

Приложение A. Операторы SQL Oracle 26

Унарные и бинарные операторы 26

Старшинство операторов 26

Арифметические операторы 27

Оператор конкатенации 27

Операторы сравнения 27

Логические операторы 28

Теоретико-множественные операторы 29

Приложение B. Выражения 29

Простые выражения 30

Составные выражения 30

Выражения переменных 30

Выражения встроенных функций 31

Выражения функций, определенных пользователями 31

Выражения конструктора типа 31

CAST Expressions 31

CURSOR Expressions 31

Выражение доступа к объекту 31

Выражения DECODE 31

Список выражений 31

Приложение C. Комментарии в SQL 32

Цели лабораторной работы

  • Изучить основные возможности SQL Oracle по поиску данных в таблицах базы данных.

  • Приобрести практический опыт по поиску данных в таблицах базы данных с использованием SQL*Plus

Теоретические основы

Синтаксис запроса

Назначение

Организация поиска данных в таблицах базы данных.

Предварительные требования

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

Ключевые слова и параметры

DISTINCT | UNIQUE  

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

ALL  

Указывает на то, что отбираются все строки, включая и повторяющиеся. По умолчанию предполагается ALL.  

*  

Указывает, что отбираются все столбцы из всех таблиц, приведенных во фразе FROM.

schema

Имя схемы, содержащей таблицу. Если схема опущена, то Oracle предполагает, что таблица находится в вашей схеме.  

table.*

Указывает на то, что следует выбрать все столбцы из указанной таблицы. Вы можете использовать квалификатор схемы для выбора столбцов из таблицы, не принадлежащей вашей схеме. Запрос, который выбирает строки из двух или более таблиц производит их соединение.

expr

Является выражением, которое следует выбрать. См описание синтаксиса выражений в этой Приложении В. Имя столбца в этом списке может быть квалифицировано с помощью schema только если таблица, содержащая этот столбец, также квалифицирована с помощью schema во фразе FROM.  

c_alias

Предоставляет другое имя для выражения столбца и этот алиас используется в качестве заголовка столбца. Фраза AS является факультативной. Алиас переименовывает элемент списка фразы SELECT в контексте всего запроса. Алиас может использоваться во фразе ORDER BY, однако его использование в других фразах запрещено.  

FROM

 

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

table

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

t_alias

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

subquery

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

WHERE  

Ограничивает выбираемые строки теми, которые удовлетворяют указанным условиям.

condition является любым допустимым в SQL условием, которое основывается на столбцах таблиц из фразы FROM. См. описание синтаксиса условие а Лаб.2 .

outer_join применяется только в том случае, когда фраза FROM специфицирует более одной таблицы. Эта специальная форма условия указывает, что Oracle должен вернуть строки, удовлетворяющие условию, а также ВСЕ те строки одной из соединяемых таблиц, для которых не нашлось строк другой таблицы, которые бы удовлетворили условию соединения.

Если один из элементов фразы FROM является вложенной таблицей, то во фразе WHERE нельзя использовать outer_join.

Если эта фраза опущена, Oracle возвращает все строки таблиц из фразы FROM.  

GROUP BY  

 

 

 

Группирует отобранные на основе уникальности значений выражения exp, и возвращает единственную итоговую строку для каждой группы.

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

HAVING  

Ограничивает группы строк теми, на которых указанное условие condition равно TRUE. Если эта фраза опущена, то все созданные группы учавствуют в формировании выходных строк.

СпецифицируйтеGROUP BY и HAVING после фразы WHERE. Если вы используете обе фразы GROUP BY и HAVING, то они могут появляться в произвольном порядке.  

См. также описание синтаксиса для віражений expr в приложении этой Лаб. и описание синтаксиса условий в Лаб. 2.  

UNION | UNION ALL | INTERSECT | MINUS  

 

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

Если вы используете более двух запросов с теретико-множественными операторами, то Oracle вычисляет соседние запросы слева направо. Вы также можете воспользоваться круглыми скобками для изменения порядка вычислений.

Ограничения:

  • Для ссылки на столбец следует воспользоваться его алиасом.

  • Вы не можете использовать фразу ORDER BY в subquery этих операторов.  

ORDER BY  

 

 

Упорядочивает строки, возвращаемые предложением. Без этой фразы нет ни какой гарантии, что тот же самый запрос, выполненный еще раз, возвратит результат с тем же порядком строк, что и при его предыдущем выполнении.

  • expr – упорядочивает строки на основе значения выражения expr. Это выражение может использовать столбцы из списка фразы SELECT или столбцы из таблиц фразы FROM.

  • position – указывает порядковый номер столбца во фразе SELECT, по которому производится упорядочение; position должен быть целым числом.

  • c_alias – указывает алиас того столбца (выражения) списка фразы SELECT, по которому производится упорядочение.

  • ASC и DESC специфицируют упорядочение в возрастающем или убывающем порядке. ASC принимается по умолчанию.

Можно указать много выражений во фразе ORDER BY. Oracle сначала отсортирует строки по значению первого выражения. Затем строки с одним и тем же значением первого выражения сортируются по значению второго выражения и т.д. При сортировке значений NULL Oracle размещает их в конце при сортировке по возрастанию, и размещает такие строки в начале при сортировке по убыванию.  

Ограничения:

  • Если вы определили оператор DISTINCT в этом предложении, то в этом случае эта фраза может ссылаться только на столбцы из списка фразы SELECT.

  • Если вы указали фразу GROUP BY в этом же предложении, то фраза ORDER BY ограничивается следующими выражениями:

- Константы

- Агрегатные функции

- Выражения, идентичные тем, которые используются во фразе GROUP BY.

- Выражения, включающие перечисленные выше выражения, которые вычисляют одно и то же значение для всех строк группы.

Соседние файлы в папке Russian