|
Программирование >> Реализация целостности данных
ЧАСТЬ 1 Теории кнык баз данных подробно описывать этот оператор и углубляться бности его применения, а приведу в качестве примера его простейшую структуру. Вот синтаксис оператора SELECT: SELECT <список полей> FROM <сп11Сок наборов запис.ей> <типсоединения> JOIN <условие соЕдиненйя> WHERE <критер1.1Й..Е1Ыборки> GROUP BY <список полей,аператора 6оирВу> HAVING <крйтер1лй аыйор!-Ч> ORDER BY список: полей оператора 0гс1егВу> <Снисок нолей> в операторе SELECT - это список, состоящий из одного или более полей, которые будут включены в результирующий набор записей, возвращаемьгх оператором. Поля могут быть взя-.ты из нижележащих наборов записей либо вычислены. <Список на-боров записей> в выражении FROM - это, как вы, наверное, уже догадались, перечисление таблиц и представлений, па которых основывается оператор SELECT. Ключевые слова SELECT и FROM обязательны для SELECT, все остальные ключевые слова - нет. Оператор JOIN определяет связь между наборами записей, перечисленными в <сниске наборов занисей>. Более подробно об операторе JOIN я расскажу i в этой главе. Ключевое слово WHERE логическое выражение ограничи- вающее число записей, которые будут включены в результирующий набор. Об условии WHERE мы также подробно поговорим далее. Оператор GROUP BY объединяет в одну те записи, в которых указанные ноля имеют одинаковые значения. Ключевое слово HAVING используется для задания критериев отбора записей, полученных в результате выполнения оператора GROUP BY. Оператор ORDER BY сортирует набор записей в том порядке, в котором они указаны в Значения Null (еще раз о трехзначной логике) Для выполнения большинства операций реляционной алгебры используются логические операторы, то есть операторы, возвращающие, как правило, булевы значения - True или False. Я не оговорилась, когда как правило , поскольку значения используемые в реляционной модели, существенно усложняют дело. Null - особые значения, используемые наряду с булевыми. Поэтому вам придется иметь дело с тремя значениями - True, False и ГЛАВА онная алгебра Null. Это объясняет происхождение термина трехзначная логика. Значения известных логических операторов трехзначной логики приводятся в табл. 5-1. Табл1. Значения логических операторов Andr иХОг длятрехзначнойлогики - .
Проанализировав табл. 5-1, легко заметить, что результатом выполнения любой логической операции над Null и любым другим значением { True. False или Null) является Null. В виде формулы это можно выразить так: Л /ОР любоезначение = Null, где ОР - логический оператор. Это же правило выполняется и для логических операторов сравнения (табл. 5-2). Табл. 5-2. Логические значения операторов сравнения (= ?) для трехзначной логики
sSQL Server обрабатывает трехзначную логику неоднозначно. В дополнение к стандартному режиму обработки трехзначной логики, он ЧАСТЬ ляциониыи баз данных предоставляет расширением стандартных логических операций. Если стандартный режим обработки трехзначной логики (ANSI NUEES) отключен (SET ANSI NULLS OFF), то результатом операции == Nuil будет True, а результатом операции Null = произвол ьное значение>, где <произвольное значение> - любое значение, кроме Nil!! будет False. (Несомненно, это связано с тем, что для уникальных индексов SQL Server скает присутствие в каждом индексе единственного значения Null). Для обработки значений ШИъ SQE существуют два унарных оператора - IS NULL и IS NOT NULL. Результаты выполнения этих операторов над различными значениями показаны в табл. 5-3. Как и шдущем примере №ое. значение> - это любое значение, кроме Null. Табл. 5-3. Значения операторов IS NULL и IS NOT NULL Is Null Is Not Null <11роизво.11Ьное 311ачеш1е>} False True True False Tra<; False False True Null True False Реляционные операторы Мы начнем знакомство с операторами реляционной алгебры с четырех типов таких операторов: ограничение (restriction), проекция (projection), соединение Qoin) и деление (divide). Первые два из них могут только над одним набором записей, хотя этот набор записей, в свою очередь, норой является результатом выполнения некоторых операций над произвольным числом наборов записей (например, представлением, основанным на множестве наборов записей). Оператор соединения - это один из основных операторов в реляционной модели, он задает правила объединения двух наборов записей. Последний из упомянутых, оператор деления, используется довольно редко, с его удобно определять, какие записи из одного набора совпадают со всей совокупностью записей второго, Все четыре типа реляционных операторов реализуются с SQL-онератора SELECT. Вы можете использовать всевозможные комбинации этих операторов, допускаемые системными ограничениями по длине и сложности составляемых выражений.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |