Запросы к базе данных

В этом разделе вы изучите, как использовать оператор select для выполнения поиска данных. Здесь описывается каждое предложение этого оператора и даются многочисленные примеры с использованием базы данных sample для демонстрации практического использования каждого предложения. После этого рассматриваются агрегатные функции, множество операторов, вычисляемые столбцы и временные таблицы. Затем рассказывается более подробно о сложных запросах. Вводится оператор соединения таблиц. В дополнение к рассмотрению всех форм оператора соединения, который является наиболее важным оператором для реляционных систем баз данных, в главе рассматриваются коррелированные подзапросы и функция exists.

Оценить
(0 голоса)
Язык Transact-SQL имеет один основной оператор для поиска информации в базе данных: оператор select. При помощи этого оператора можно запрашивать информацию из одной, или более таблиц базы данных (или даже из нескольких баз данных). Результатом выполнения оператора select является другая таблица, также известная как результирующий наборе. Самая простая форма оператора select содержит список select с предложением from. (Все другие предложения являются необязательными.) Эта форма оператора select имеет следующий синтаксис: select [ all | distinct ]  column_list from {tablel  [tab_aliasl]} Здесь tablel - имя таблицы, из которой выбирается информация. Параметр tab_aiiasi задает псевдоним (алиас) соответствующей таблицы. Псевдоним является другим именем соответствующей…
Оценить
(0 голоса)
Простейшая форма оператора select, описанная в предыдущем разделе, не является очень полезной для запросов. На практике всегда существует больше предложений в операторе select, чем в операторе, показанном в примере 6.1. Далее показан синтаксис оператора select, обращающегося к таблице, с (почти что) всеми возможными предложениями:     Этот раздел начинается с определения предложения where. Часто бывает необходимым определить одно или более условий, которые ограничивают количество выбираемых строк. Предложение where задает логическое выражение (выражение, которое возвращает значение true или false), которое проверяется для каждой (потенциально) возвращаемой строки. Если это выражение истинное, то строка возвращается (помещается в результирующий набор), если ложное, то строка…
Оценить
(0 голоса)
Условия в предложении where могут быть либо простыми, либо содержать множество условий. Множественные условия могут быть созданы с помощью операторов and, or и not. Поведение этих операторов было описано с использованием таблиц истинности. Если два условия соединяются оператором and, то выбираются строки, соответствующие обоим условиям. Если два условия соединены оператором or, то выбираются все строки таблицы, для которых истинны либо первое условие, либо второе, либо оба вместе, как показано в примере 6.5.   Результат примера 6.5 содержит некоторые дубликаты значений столбца emp по. Если лишнюю информацию нужно устранить, то должна быть использована опция distinct, как показано здесь:     В…
Оценить
(0 голоса)
Оператор in дает возможность использовать два или более выражений в запросе на поиск. Результатом этого условия будет истина, если значение соответствующего столбца равняется одному из выражений, указанных в предикате in (пример 6.9).     Оператор in эквивалентен серии условий, связанных одним или более операторами or. Количество операторов or равняется количеству выражений в операторе in минус единица. Оператор in может быть использован вместе с логическим оператором not, как показано в примере 6.10. В этом случае запрос отыскивает строки, в которых не присутствуют значения, заданные в списке, среди значений указанного столбца.     В отличие от оператора in, который задает каждое индивидуальное…
Оценить
(1 голос)
Фраза null в операторе create table указывает, что специальное значение, называемое null (которое обычно представляет неизвестное или неприменимое значение), допустимо для описываемого столбца. Такие значения отличаются от всех других значений в базе данных. Предложение where в операторе select обычно позволяет вернуть строки, для которых сравнение в результате дает истину. Вопрос при рассмотрении запросов заключается в том, как сравнения, содержащие значения null, должны быть вычислены в предложении where? Все сравнения со значениями null вернут значение «ложь» (даже если им предшествует отрицание not). Для поиска строк со значениями в столбцах null язык Transact-SQL включает в себя оператор is null. Эта спецификация в…
Оценить
(0 голоса)
like- это оператор, который используется для проверки соответствия шаблону; т. е. он сравнивает значения столбца с заданным шаблоном. Тип данных такого столбца может быть любым символьным типом или датой. Общая форма оператора like: column [not] like  'pattern' Параметр pattern может быть константой типа строки или даты, либо это может быть выражение (включающее и столбцы таблиц), которое должно быть совместимым с типом данных соответствующего столбца. Для заданного столбца сравнение между значением в строке и шаблоном вычисляется в истину, если значение столбца соответствует выражению шаблона. Некоторые символы в шаблоне, называемые шаблонными или групповыми символами, имеют специфическую интерпретацию. Два из этих символа: ♦…
Оценить
(0 голоса)
Все предыдущие примеры этой главы содержат сравнения значений столбцов с выражениями, константами или множеством констант. В дополнение к этому язык Transact-SQL предоставляет возможность сравнения значений столбцов с результатами выполнения другого оператора select. Подобная конструкция, где один или более операторов select являются вложенными в предложение where в другом операторе select, называется подзапросом. Самый первый оператор select в подзапросе называется внешним запросом, в отличие от внутреннего запроса, который обозначает операторы select, используемые в сравнениях. Внутренний запрос будет выполняться первым, а внешний запрос получает значения от внутреннего запроса. Существуют два типа подзапросов: ♦ замкнутый; ♦ коррелированный. В замкнутом подзапросе внутренний запрос логически выполняется…
Оценить
(0 голоса)
В примере 6.22 показан замкнутый подзапрос, который используется с оператором =.     Внутренний запрос в примере 6.22 логически выполняется первым. Этот запрос возвращает номер отдела Research (dl). Следовательно, после выполнения внутреннего запроса этот подзапрос в примере 6.22 может быть представлен в виде следующего эквивалентного запроса: use sample select emp_fname, emp_lname from employee where dept_no = 'dl'; Подзапрос может быть использован также и с другими операторами сравнения. Любой оператор сравнения может быть использован с условием, что внутренний запрос возвращает в точности одну строку. Это очевидно, потому что сравнения между значениями отдельного столбца внешнего запроса и множеством значений (как результат выполнения…
Оценить
(0 голоса)
Оператор in позволяет использовать задание множества выражений (или констант), которые последовательно используются в запросе на поиск. Этот оператор может быть применен для подзапроса по той же причине, т. е. когда результат внутреннего запроса содержит набор значений. В примере 6.23 показано использование оператора in в подзапросе.       Каждый внутренний запрос может содержать другие запросы. Такой тип подзапросов называется многоуровневым вложенным подзапросом. Максимальное количество внутренних запросов в подзапросе зависит от объема памяти, которую имеет Database Engine для каждого оператора select. В случае подзапросов с множеством уровней вложенности система вначале выполняет самый внутренний запрос и возвращает результат запросу следующего уровня вложенности…
Оценить
(0 голоса)
Операторы any и all всегда используются в комбинации с одним или несколькими операторами сравнения. Общий синтаксис обоих операторов: column_name operator [any | all] query Здесь operator- обычный оператор сравнения, a query- внутренний запрос. Оператор any возвращает значение «истина», если результат выполнения соответствующего внутреннего запроса содержит, по меньшей мере, одну строку, соответствующую сравнению. Ключевое слово some является синонимом для any. В примере 6.25 показано использование оператора any.     Каждое значение столбца enterdate в примере 6.25 сравнивается со всеми значениями этого же столбца. Для всех дат этого столбца, за исключением самой ранней, сравнение возвращает истину как минимум один раз. Строка с…
«ПерваяПредыдущая12345СледующаяПоследняя»
Навигация
© 2018 www.serversql.ru. Все права защищены.