Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
186 Кб
Скачать
☆

2Выборка информации из базы данных

2.1Базовый синтаксис оператора select

Простейшей формой SQL-запроса является такая, которая предполагает выбор из нескольких отношений группы кортежей, удовлетворяющих определенному условию. При его написании используется следующая базовая конструкция:

SELECT <список выбора>

FROM <список таблиц>

WHERE <условия поиска>.

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

Предложение WHERE задает условие отбора кортежей. Кортежи, включаемые в результирующее отношение, должны удовлетворять условию отбора.

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

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

Предложение SELECT позволяет сопроводить имя атрибута служебным словом AS и псевдонимом (alias), который должен стать заголовком соответствующего столбца итоговой таблицы.

Предложение SELECT позволяет использовать вычисляемые выражения, а также даже постоянные величины.

2.2Соглашение об именовании

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

2.3Порядок выполнения логических операторов

<Скобки><Умножение/деление><Сложение/вычитание><NOT><AND><OR>

2.4Диапазоны (BETWEEN и NOT BETWEEN)

Одно из средств реализации условий являются диапазоны. Определить диапазон можно двумя способами:

  • с помощью операторов сравнения > и <;

  • с помощью ключевого слова BETWEEN (включающий диапазон).

<имя столбца> [NOT] BETWEEN <значение1> AND <значение2>.

2.5Списки (IN и NOT IN)

Ключевое слово IN позволяет выбрать значения, совпадающие со значениями из заданного списка.

<имя столбца> [NOT] IN (<значение1>,[<значение2>,[…,[<значениеN>]]])

При использовании ключевого слова IN отпадает необходимость во вводе многочисленных операторов сравнения.

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

2.6Выбор неопределенных значений

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

Первый вариант состоит в том, чтобы ограничиться использованием обычных типов данных и не использовать null-значения, а вместо неизвестных данных вводить либо нулевые значения, либо значения специального вида - например, договориться, что строка "АДРЕС НЕИЗВЕСТЕН" и есть те данные, которые нужно вводить вместо неизвестного адреса. В любом случае на пользователя (или на разработчика) ложится ответственность за правильную трактовку таких данных. В частности, может потребоваться написание специального программного кода, который в нужных случаях определял бы такие данные.

Второй вариант состоит в использовании null-значений вместо неизвестных данных. За кажущейся естественностью такого подхода скрываются более глубокие проблемы. Самой очевидной является необходимость использования трехзначной логики (three-valued logic, 3VL) при оперировании с данными, которые могут содержать null-значения. В трехзначной логике кроме значений T - ИСТИНА и F - ЛОЖЬ, введено значение U - НЕИЗВЕСТНО. Логическое значение U - это то же самое, что и null-значение. Трехзначная логика базируется на следующих таблицах истинности:

AND

OR

NOT

F

T

U

F

F

F

F

T

F

T

U

U

F

U

U

F

T

U

F

F

T

U

T

T

T

T

U

U

T

U

F

T

T

F

U

U

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

Для обработки значений NULL при построении условия выбора используется ключевое слово IS NULL.

<имя столбца> IS NULL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]