6.1. Простые запросы на языке SQL

Простейший SQL запрос позволяет выбрать из отношения группу кортежей, удовлетворяющих определенному критерию. Для конструирования таких запросов используются ключевые слова SELECT (выбрать), FROM(из), WHERE(при условии).

SELECT * FROM кинофильмы WHERE студия=’мосфильм’

·         В предложении FROM перечислены отношения, к которым обращен запрос.

·         Предложение WHERE задает условие, аналогично условию C оператора σ в реляционной алгебры. Выбираемые кортежи обязаны удовлетворять условию WHERE.

·         Предложение SELECT оговаривает, какие атрибуты кортежей, принадлежащих отношениям из FROM и удовлетворяющих условию из WHERE.

Один из способов интерпретации запроса состоит в последовательном просмотре каждого кортежа отношения, упомянутого во FROM, проверке условия WHERE. Если условие выполняется, то значения компонентов кортежа включаются в итоговое отношение.

Проекция в SQL

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

SELECT наименование, продолжительность

FROM кинофильмы

WHERE студия=’мосфильм’ AND год=1980

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

SELECT наименование, продолжительность AS длительность

FROM кинофильмы

WHERE студия=’мосфильм’ AND год=1980

Еще одна возможность связана с использованием выражений в предложении SELECT:

SELECT наименование, продолжительность/60 AS длительность_в_часах

FROM кинофильмы

WHERE студия=’мосфильм’ AND год=1980

В качестве выражений допустимо использовать константы.

Выбор в SQL

Возможность выбора в SQL значительно превышают возможности оператора σ реляционной алгебры.

Условные выражения могут создаваться на основе шести операторов сравнения: «=», «<>», «>», «<», «>=», «<=». В роли операндов могут использоваться константы и идентификаторы-имена атрибутов отношений. Строковые константы должны быть заключены в одинарные кавычки.

Результат операции сравнения – значение булева типа (TRUE / FALSE). Булевы выражения могут сцепляться с помощью логических функций AND, OR, NOT

 

Связь SQL и реляционной алгебры

SELECT L

FROM R

WHERE C

эквивалентно

πL (σC(R))

Сравнение строк

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

<>. Алфавитный порядок.

Язык SQL предоставляет возможность сравнения строки с образцом.

s LIKE p

s тестируемая строка, p – образец.

Образец может включать специальные символы подстановки % и _.

Бинарные данные

B’1000101’

X’5ff3a

Дата и время в SQL

Значениям даты соответствуют специальные типы данных.

Форматы представления дат:

DATE ‘1948-05-14’

TIME ’15:00:45.1234’

TIMESTAMP ‘1948-05-14 12:00:00’

Значение NULL и операции сравнения с NULL

Значение атрибута  NULL соответствует отсутствию информации или неприменимости ее в данном контексте

Проверка: x IS NULL;’ x IS NOT NULL

При сравнении со значением NULL выражение вернет значение UNKNOWN.

Трехзначная логика.

Упорядочение атрибутов

ORDER BY <список атрибутов>

ASC / DESC