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
|