Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Подзапросы возражающие множество строк в качестве результата↑ ⇐ ПредыдущаяСтр 8 из 8 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Рассматриваемые нами типы подзапросов возращали в качестве результата одну или более строк. В случаи если подзапос возвращает множество результатов, для подобных запросов необходимо использовать соответствующие операторы сравнения:
Разберем свойства и методы применения каждого из операторов по отдельности. Правильным решением задачи, является: SELECT * FROM emp WHERE job in (SELECT job FROM emp WHERE sal> 1000) Оператор IN – опеспечивает сравнения столбца job со всеми значениями из подзапроса. В результате данного примера выйдет столько строк, сколько будет совпадений столбца со значениями подзапроса. Оператор ANY, как уже отмечалось ANY сравнивает значение со всеми значениями из подзапроса. При этом зависимости от знака равенства смысл оператора изменяется. Таким образом, если использовать знак равенства вместе с ANY у нас получиться эквивалент оператору IN. При этом если будет применяться знак < и ANY то будет иметь смысл меньше минимального значения из списка. Если же > и ANY то будет иметь смысл больше максимального значения из списка. Вывидим сотрудников, чьи зарплаты больше зарплаты хотя бы одного из сотрудника отдела ANALYST. SELECT * FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE job = 'ANALYST') Оператор ALL, как уже отмечалось ALL сравнивает значение со всеми значениями из подзапроса. При этом зависимости от знака равенства смысл оператора изменяется. При этом если будет применяться знак < и ALL то будет иметь смысл меньше минимального значения из списка. Если же > и ALL то будет иметь смысл больше максимального значения из списка. Вывидим сотрудников, чьи зарплаты больше зарплат ВСЕХ сотрудников отдела ANALYST. SELECT * FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE job = 'ANALYST')
Хотя запросы одинаковы по структуре и отличаются лишь в операторе условия выборки, результаты двух запросов и смысл сильно отличается. Также в обоих типов подзапросов вы можете использовать оператор NOT естественно при этом условия выборки будут сильно изменятся.
EXISTS Оператор EXISTS берет подзапрос, как аргумент, и оценивает его как верный, если подзапрос возвращает какие-либо записи и неверный, если тот не делает этого. То есть если наш подзапрос возвращает хотя бы одну строку то - это выражение принимается за истину. Читателю может показаться что это функция редко используемая - но такое мнение может сложится только при небольшом опыте общения с коллегами из департамента маркетинга. Иногда маркетологи придумывают ужасные условия и хотят тут же получить результат. EXIST поможет вам справиться как и с ужасными условиями так и с быстротой получение результата. Так как использование оператора EXIST увеличивает производительность выполнения отчета.
SELECT * FROM emp e1 WHERE EXISTS(SELECT * FROM emp e2 WHERE e1.job=e2.job and e2.sal>=3000) ORDER BY sal, job
Рассмотрим, более подробно оператор EXISTS. EXISTS как мы поняли это оператор, который возвращает всего лишь два значение TRUE | FALSE. В случае если результат подзапроса возвращает хотя бы одну строку, то TRUE, иначе FALSE. Таким образом, верхний запрос возвращает всех сотрудников, если поданнойпрофесии есть хотя бы один сотрудник кто получает >= 3000. Хотя на практике можно встретить, верхний запрос переписанный в такой вид: SELECT ename, job, sal, deptno FROM emp e1 WHERE 0 < (SELECT COUNT(*) FROM emp e2 WHERE e1.job=e2.job and e2.sal>=3000) ORDER BY sal, job
54 Язык SQL:основные команды определения данных. Таблицы создаются командой createtable. Эта команда создает пустую таблицу. Команда createtable задает имя таблицы, столбцы таблицы в виде описания набора имен столбцов, указанных в определенном порядке, а также она может определять главный и вторичные ключи таблицы. Кроме того, она указывает типы данных и размеры столбцов. Каждая таблица должна содержать, по крайней мере, один столбец. Примеркоманды create table: create table ClientInfo (FirstNamevarchar(20), LastNamevarchar(20), Address varchar(20), Phone varchar(15) Тип varchar предназначен для хранения символов не в кодировке Unicode. Число, указываемое в скобках, определяет максимальный размер поля и может принимать значение от 1 до 8000. Если введенное значение поля меньше зарезервированного, при сохранении будет выделяться количество памяти, равное длине значения. После выполнения этого запроса в окне «Сообщения» появляется сообщение: Команды выполнены успешно. После перезапуска ManagementStudio в списке таблиц появилась новая таблица Итак, была создана таблица, состоящая из четырех полей типа varchar, причем для трех полей была определена максимальная длина 20 байт, а для одного - 15. Значения полей не заполнены - на это указывает величина Null. Можно удалить созданную таблицу непосредственно в интерфейсе ManagementStudio, щелкнув правой кнопкой и выбрав «Удалить».
55 Представления (view), их назначение и использование. Представление(view) – это программно создаваемая и визуально отображаемая таблица, заполняемая данными из других таблиц, временно существующая в оперативной памяти. Для создания представления используют запрос языка SQL, реализация которого обеспечивает выборку данных для представления. Для ссылки на представление используют ключевое слово VIEW. На представлении можно выполнять операции поиска, замены, удаления записей, а также выполнять SQL-запросы. Изменение данных в представлении автоматически ведет к изменению данных в тех таблицах, из которых построено представление. Представление может быть получено как результат выборки данных через соединение с удаленными компьютерами. Важное различие между курсорами и представлениями: 1) Изменение данных в курсоре необязательно приводит к изменению данных в исходной таблице (определяется типом курсора); 2) Представление – это визуально отображаемая таблица, а курсор-нет. Пример создания представления: CREATESQLVIEW myview; AS SELECT * FROM mytable; Здесь создается представление с именем myview, которое заполняется данными из таблицы mytable текущей открытой БД. Можно создать представление, которое будет заполняться данными, полученными из удаленного сетевого компьютера: CREATE SQL VIEW myview; CONNECTION connect1; AS SELECT * FROM mytable; Здесь необходимо использовать именованное соединение connect1, которое должно быть предварительно построено средствами VisualFoxpro.
Назначение и функции СУБД. Для хранения и обработки больших объемов информации используются базы данных. Каждая база данных хранит информацию о большом количестве объектов одинакового типа (организациях, людях, книгах и т. д.). Объекты одного типа обладают одинаковым набором свойств, поэтому база данных хранит для каждого объекта значения этих свойств. База данных позволяет упорядоченно хранить данные о большом количестве однотипных объектов, обладающих одинаковым набором свойств. В настоящее время широкое распространение получили компьютерные базы данных. Создание компьютерной базы данных, а также операции поиска и сортировки выполняются специальными программами - системами управления базами данных (СУБД). Система управления базами данных - это приложение, позволяющее создавать базы данных и осуществлять в них сортировку и поиск данных. Базы данных удобно представлять в виде таблицы. В каждой строке таблицы размещаются значения свойств одного объекта, а каждый столбец таблицы хранит значения определенного свойства всех объектов. Столбцы табличной базы данных называют полями. Строки таблицы называются записями (т. е. это записи об объекте). Запись хранит набор значений, содержащихся в полях базы данных. Достоинством табличного представления базы данных является возможность видеть одновременно несколько записей. Однако если база данных содержит много полей, а значения полей содержат много символов, то не очень удобно осуществлять ввод, просмотр и редактирование записей. Для поочередного ввода, просмотра и редактирования записей базы данных часто используется форма. Форма позволяет последовательно отображать записи в удобном для пользователя виде. Базы данных могут содержать сотни и тысячи записей. Часто бывает необходимо их упорядочить, т. е. расположить в определенной последовательности. Упорядочение записей называется сортировкой. Сортировка записей производится по какому-либо полю базы данных. Значения, содержащиеся в этом поле, располагаются в порядке возрастания или убывания. В процессе сортировки целостность записей сохраняется, т. е. строки таблицы перемещаются целиком. Также можно проводить вложенные сортировки, т. е. сортировать данные последовательно по нескольким полям. Поиск в базах данных осуществляется с помощью фильтров и запросов. Фильтры и запросы позволяют отбирать записи, которые удовлетворяют условиям поиска. Условия поиска записей создаются с использованием операторов сравнения (=, >, <и т. д.).
|
||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-06; просмотров: 485; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.134.95 (0.009 с.) |