Программирование >>  Построение запросов sql 

1 ... 15 16 17 [ 18 ] 19 20 21 ... 101


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

1. Какие основные объекты существуют в БД?

2. Какие функции выполняет ядро базы данных?

3. Какие функции выполняет язык SQL?

4. Какие достоинства языка SQL принесли ему успех?

5. Охарактеризуйте основные файлы, входящие в состав сервера Firebird, и опишите, как работает сервер.

6. Какие существуют утилиты для администрирования БД Firebird?

7. Какие существуют категории запросов языка SQL?

8. Какие фазы обработки проходит каждый SQL-запрос при выполнении?

9. В каких формах может использоваться язык SQL?

10. Какие существуют правила составления имен объектов в SQL, какие константы могут использоваться?

11. Что представляет собой выражение в языке SQL? Какие разновидности выражений существуют?

12. Какие типы данных используются в СУБД Firebird?

3. Язык выборки данных

В этой главе приводятся возможности SQL по выборке данных из БД. Это самая большая глава из представленных в данном учебном пособии, потому что именно для организации выборки информации из БД SQL используется наиболее интенсивно подавляющим большинством пользователей.

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

СУБД Firebird.

3.1. Синтаксис запроса SELECT

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

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

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

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



- запрос на формирование данных представления в команде CREATE VIEW;

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

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

Полный синтаксис запроса SELECT имеет следующий вид [19, 20]:

[WITH [RECURSIVE]

имя производной таблицы1 [(<список столбцов>)] AS (<табличный подзапрос> ) [, имя производной таблицы2 [(<список столбцов>)] AS (<табличный подзапрос> )... SELECT [DISTINCT ALL] FIRST m] [SKIP n]

{* <возвращаемый элемент1> [[AS] псевдоним элемента1 [,<возвращаемый элемент2> [[aS] псевдоним элемента2] ] } FROM { <таблица1> [псевдоним1] [,<таблица2> [псевдоним2

<таблица1> [псевдоним1] <тип соединения1> <таблица2> [псевдоним2] {ON<условие соединения1> USING (<список столбцов>)} <тип соединения2> <таблица3> [псевдонимЗ] {ON<условие соединения2> USING (<список столбцов>)}]] } [WHERE <условие поиска>]

[GROUP BY <элемент группировки1> [, <элемент группировки2>] ] [HAVING <условие поиска>] [PLAN <список пунктов плана>]

ORDER BY <элемент сортировки1> [, <элемент сортировки 2>] ROWS k [TO r ]],

<список столбцов>:: = столбец1 [, столбец2 ...]; <возвращаемый элемент> :: =

{ [<таблица>].* [<таблица>.] столбец константа <выражение> (<скалярный подзапрос> ) }; <таблица>:: =

{ базовая таблица представление имя производной таблицы <производная таблица>};

<производная таблица>

(<табличный подзапрос>) [[AS] псевдоним] [(<список столбцов>)];

<тип соединения>::= {CROSS JOIN

[NATURAL] [{INNER {LEFT RIGHT FULL} [OUTER]}] JOIN};

<условие соединения>::=

{<таблица1>.столбец <операция сравнения> <таблица2>.столбец};



<операция сравнения> {= < > <= >= <> };

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

[[ANDOR][NOT] <условие поиска2>],

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

{ <значение> <операция сравнения> {<значение1>

(<скалярный подзапрос> )

{aNY ALL} (<подзапрос столбца>)}

<значение> [NOT] BETWEEN <значение1> AND <значение2>

<значение> [nOT] LIKE шаблон [ESCAPE символ пропуска]

<значение> [nOt] CONTAINING <значение1>

<значение> [nOt] STARTING WITH <значение1>

<значение> [nOt] IN ({<значение1> [, <значение2> ] <подзапрос столбца>}) <значение> IS [NOT] NULL <значение> IS [nOt] DISTINCT FROM <значение1> EXISTS (<табличный подзапрос>) SINGULAR (<табличный подзапрос>)};

<значение>::= {[<таблица>.] столбец константа <выражение> функция};

<элемент сортировки> :: ={ [<таблица>.] столбец

порядковый номер столбца

псевдоним столбца

<выражение>} [ASC[ENDING] DESC [ENDING]] NULLS FIRST NULLS LAST]};

<элемент группировки> := { [<таблица>.] столбец

порядковый номер столбца псевдоним столбца <выражение>}.

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

3.2. Запросы к одной таблице

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

SELECT [DISTINCT ALL] FIRST m] [SKIP n]

{* <возвращаемый элемент1> [AS псевдоним элемента1] [,<возвращаемый элемент2>[AS псевдоним элемента2] ] } FROM {базовая таблица представление} [псевдоним] [WHERE <условие поиска>]

[GROUP by <элемент группировки1> [, <элемент группировки2>] ]



1 ... 15 16 17 [ 18 ] 19 20 21 ... 101

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика