|
Программирование >> Реализация баз данных
Зачятиа 1 выборка ык т базы данных SOL Server % 75 Резюме Оператор SELECT используется для извлечения данных из БД SQL Server и представления их пользователю в виде одного или нескольким фуюших наборов. Главными конструкциями оператора SELECT являются SELECT. INTO, FROM, WHERE, GROUP BY, HAVING и ORDER BY. Конструкция SELECT состоит из ключевого слова SELECT и списка выбора. Список выбора определяет столбцы результирующего набора, который генерирует оператор SELECT. Конструкции ТО позволяет использовать результирующий набор для создания новой таблицы, имя которой задано этой конструкцией. Конструкция FROM представляет собой разделенный запятыми список имен таблиц, представлений и конструкций JOIN. Конструкция FROM задает список таблиц и представлений, где содержатся столбцы, на которые ссылается список выбора и конструкция WHERE. Конструкция FROM также позволяет задавать условия соединения. Конструкции WHERE и HAVING оператора SELECT определяют строки исходных которые применяются для построения результирующего набора. Конструкция GROUP BY необходима для создания итоговьгх значений для каждой строки результирующего набора. 1 7 Выборка ция даншх Глава 6 Занятие 2. Выборка данных с помощью усложненных методик работы с запросами Теперь, когда вы познакомились с основами работы оператора SELECT и его различными конструкциями, мы расскажем о более сложных методиках работы с запросами. Одна из них позволяет объединить несколько таблиц с целью получения результирующего набора, который содержит строки и столбцы из все аблии Другая методика основана на использовании подзапросов, которые стаамют собой операторы SELECT, вложенные операторы (SELECT, INSERT, UPDATE или DELETE). Внутри подзапросов разрешаются вложенные подзапросы. Такие элементы языка и ROLLUP, позволяют получать сводные данные. В этом занятии описана лап из этих методик и приведены примеры их использования для извлечения определенно!: информации из базы данных SQL Server. Изучив материал этого занятия, вы сможете: определять соединения, позволяющие извлечь данные из нескольких таблиц; определять подзапросы внутри операторов SELECT; получать сводные данные с конструкции GROUP в операторе SELECT. Продолжительность занятия - около 35 минут. Извлечение данных с помощью соединений Соединения позволяют извлекать m..i с из двух или большего числа таблиц на основе логических связей между таблицами. Соединение указывает SQL Server, как следует использовать данные одной таблицы для выбора строк из другой таблицы. Соединения задают в констпукщ ях FROM или WHERE. Условия соединения вместе с условиями конструкций WHERE и HAVING определяют строки, выбранные из основной, указанной в конструкции FROM таблицы. Однако определение условий соединения в конструкции FROM позволяет отделить их от других условий например, задан- ных в конструкции WHERE. рекомендуется задавать соединения именно этим методом. Когда единственный запрос ается на несколько таблиц, все ссылки на столбцы следует определять точно, Любое имя столбца, повторяющееся в двух или более таблицах в составе одного необходимо конкретизировать, указав имя Список выбора соединения может ссылаться на все столбцы соединяемых таблиц или на некоторое их подмножество. Не обязательно, чтобы в список выбора попали столбцы изо всех таблиц соединения. Например, иногда в соединении, которое состоит из трех таблиц, одн ицу используют в качестве моста междумя другими; поэтому в список выбора столбцы из срединной таблицы могут не попасть. Хотя в условии соединения обычно используется знак равенства (=), разрешается применять и другие реляционные операторы или операторы сравнения (или иные Когда SQL Server обрабатывает <оединение, механизм обработки запросов выбирает для этого наиболее эффективный метод (из нескольких возможных). Хотя при физическом исполнении различных соединений оптимизация производится no-разному, логическая последовательность операций такова: применяются условия соединения из конструкции FROM; применяются условия соединения и условия поиска из конструкции WHERE; применяются условия поиска иукиии HAVING. Иногда эта последовательность может влиять на результат запроса, если перемещать условия между конструкциями FROM и WHERE. Не обязательно присваивать столбцам, которые используются в условии соединения, одинаковое имя или тип данных. Однако, если типы данных не идентичны, необходимо, чтобы они были совместимы или SQL Server мог выполнить их неявное преобразование. Если неявное преобразование типов невозможно, условие соединения должно явно преобразовывать типы данных посредством функции CAST. Примечание Большинство соединений можно переписать в виде подзапросов (запросов, вложенных внутри других запросов), а большинство подзапросов удается переписать в виде соединений. О подзапросах подробно рассказано далее в этом занятии. Большинство соединений относятся к внутренним или внешним. Внутренние соединения возвращают строки, только когда в обеих таблицах существует хотя бы по одной строке, соответствующей условию соединения. При этом строки, для которых нет соот-строк из другой таблицы, исключаются. Внешние соединения возвращают все строки, по крайней мере по одной из указанных в конструкции FROM таблиц представлений, которые соответствуют любому из условий поиска, заданных конструкциями WHERE или HAVING. Также допустимы перекрестные соединения и самосоединения. Более подробно о перекрестных соединениях и самосоединениях - в SQL Server Books Online. Внутренние соединения Во внутренних соединениях значения соединяемых столбцов сравниваются оператора сравнения. В стандарте SQL-92 внутренние соединения задаются в конструкциях FROM или WHERE. Внутренние - единственный тип соединений, которые SOE-92 поддерживает в составе конструкции WHERE; их называют внутренними соединениями. ющем операторе SELECT внутреннее соединение используется для получения данных из таблиц Publishers и Titles базы данных Pubs: SELECT t.Title, D.Pub naiTie FROM Publishers AS p INNER JOIN Titles AS t ON p.Pub id = t.Pi.jb id ORDER BY Title ASC Этот оператор SELECT получает данные из столбца Title таблицы Titles (t) и столбца таблицы (p). Поскольку в этом операторе применяется внутреннее соединение, он возвращает только те строки, для которых в столбцах соединения и имеются равные значения. Внешние соединения SQL Server поддерживает три типа внешних соединений: левые, правые и полные. Левое внешнее соединение ссылается на все строки левой таблицы, а правое внешнее соединение - на все строки правой таблицы. Полное внешнее соединение возвращает все строки из обеих таблиц.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |