Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции СУБД.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.32 Mб
Скачать

8.5.Константы

В некоторых инструкциях SQL необходимо явно указывать значения чисел, строк или даты. В стандарте ANSI/ISO определен формат числовых и строковых констант, или литералов, которые представляют конкретные значения данных. Этот формат используется в большинстве СУБД.

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

Константы с плавающей запятой (известные также под названием приблизительные числовые литералы) определяются с помощью символа Е и имеют такой же формат, как и в большинстве языков программирования.

В соответствии со стандартом ANSI/ISO строковые константы (строковые литералы) в SQL должны быть заключены в одинарные кавычки. Надо отметить, что не все из известных ныне СУБД поддерживают такой формат представления строковых констант (для ORACLE характерна стандартное представление). Так вместо одинарных используются двойные, что усложняет перенос данных из одних баз в другие.

Константы типа даты в диалекте SQL для ORACLE имеют специфичный формат представления. Как и строковые литералы, даты при их явном представлении берутся в парные одинарные кавычки, однако запись дат отличается от их записи в других СУБД: ‘day-month-year’. В качестве символов разделителей здесь используются дефисы, месяц указывается тремя первыми буквами английского названия месяца, например Mar, Jan, Aug , год же представляется двумя последними десятичными разрядами.

Кроме пользовательских констант, в SQL существуют специальные именованные константы, возвращающие значения, хранимые в самой СУБД. Так в ORACLE существует константа SYSDATE, при указании которой в запросе, СУБД возвращает в результат или подставляет в поля базы данных текущую дату и время. Также стандартом регламентировано применение константы USER для фиксации имени пользователя сделавшего изменения в записях таблиц баз данных.

9.Инструкция select

Инструкция SELECT извлекает информацию из базы данных и возвращает её в виде таблицы результатов запроса. Для демонстрации примеров задания инструкции предположим существование небольшой базы данных пригодной для удовлетворения информационных нужд некоторого малого предприятия, занимающегося сдачей в аренду недвижимости. Реляционная схема данной базы приведена в приложении 1.

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

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

В предложении from указывается список таблиц, которые содержат элементы данных, извлекаемые запросом.

Предложение where показывает, что в результаты запроса следует включать только некоторые строки. Для отбора строк, включаемых в результаты запроса, используется условие отбора. Основные возможности этого предложения описаны ниже. Способы использования подчиненных запросов в предложении where рассматриваются в разделе “Подзапросы”.

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

Предложение having показывает, что в результаты запроса следует включать только некоторые из групп, созданных с помощью предложения group by. В этом предложении, как и в предложении where, для отбора включаемых групп используется условие отбора.

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

Рисунок 4 Синтаксическая диаграмма инструкции SELECT