русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Умови пошуку у вкладеному запиті


Дата добавления: 2015-07-09; просмотров: 513; Нарушение авторских прав


Вкладений запит завжди є частиною|часткою| умови пошуку в пропозиції|реченні| WHERE| або HAVING|. Раніше були розглянуті|розглядувати| прості умови пошуку, які можуть використовуватися в цих пропозиціях|реченнях|. Крім того, в SQL| є|наявний| наступні|такі| умови пошуку у вкладеному запиті.

Порівняння з|із| результатом вкладеного запиту (=, <> <, <= >, >=). Порівнює значення вираження|виразу| з|із| одним значенням, поверненим вкладеним запитом. Ця перевірка нагадує просте порівняння.

Перевіряемий_вираз| | = | <> | < | <= | > | >= | вкладений запит|

Порівняння з|із| результатом вкладеного запиту є модифікованою формою простого порівняння. Значення вираження|виразу| порівнюється із|із| значенням, поверненим вкладеним запитом, і якщо умова порівняння виконується, то перевірка повертає значення TRUE|. Ця перевірка використовується для порівняння значення з|із| рядка, що перевіряється, з|із| одним значенням, поверненим вкладеним запитом, як показано першому прикладі|зразку|.

Перевірка на приналежність результатам вкладеного запиту (IN|). Перевірка на приналежність результатам вкладеного запиту (ключове|джерельне| слово IN|) є видозміненою формою простий перевірки на членство в безлічі|множині|.

Перевіряемий_вираз| [NOT|] IN| вкладений запит |

Одне значення порівнюється із|із| стовпцем даних, повернених вкладеним запитом, і якщо це значення дорівнює одному із значень в стовпці, перевірка повертає TRUE|. Дана перевірка використовується, коли необхідно порівняти значення з|із| рядка, що перевіряється, з|із| безліччю|множиною| значень, повернених вкладеним запитом. Наприклад, вивести всю інформацію про студентів, що вчаться в групах з назвами|, що починаються|зачинають| на букву|літеру| (А(:

SELECT| *

FROM| Students|

WHERE| GrNo| IN| (SELECT| GrNo| FROM| Groups| WHERE| GrName| LIKE| ‘А%’)



Перевірка на існування (EXISTS|). В результаті|внаслідок| перевірки на існування (ключове|джерельне| слово EXISTS|) можна з'ясувати, чи міститься|утримується| в таблиці результатів вкладеного запиту хоч би|хоча би| один рядок. Аналогічною простий перевірки не існує. Перевірка на існування використовується лише|тільки| з|із| вкладеними запитами.

[NOT|] EXISTS| вкладений запит |

Наприклад, вивести прізвища студентів, які в 1-му семестрі здали|складали| хота б| одну дисципліну:

SELECT| StName|

FROM| Students|

WHERE| EXISTS| (SELECT| *

FROM| Marks|

WHERE| Marks|.StNo = Students|.StNo AND| Semester| = 1)

Багатократне|багаторазове| порівняння (ANY| і ALL|). У перевірці IN| з'ясовується, чи не рівне деяке значення одному із значень, що містяться|утримуються| в стовпці результатів вкладеного запиту. У SQL| є|наявний| два різновиди багатократного|багаторазового| порівняння – ANY| і ALL|, що розширюють попередню перевірку до рівня інших операторів порівняння. У обох перевірках деяке значення порівнюється із|із| стовпцем даних, поверненим вкладеним запитом.

Перевіряемий_вираз | = | <> | < | <= | > | >= | ANY| | ALL| вкладений запит |

Перевірка ANY|. У перевірці ANY| використовується один з шести операторів порівняння (=, <> <, <= >, >=) для того, щоб порівняти одне значення, що перевіряється, із|із| стовпцем даних, поверненим вкладеним запитом. Значення, що перевіряється, по черзі порівнюється з|із| кожним значенням, що міститься|утримується| в стовпці. Якщо будь-яке з цих порівнянь дає результат TRUE|, то перевірка ANY| повертає значення TRUE|.

Наприклад, вивести список прізвищ студентів, що отримали|одержували| в першому семестрі хоч би|хоча би| одну відмінну оцінку.

SELECT| StName|

FROM| Students|

WHERE| 5 = ANY| (SELECT| Mark|

FROM| Marks|

WHERE| Marks|.StNo = Students|.StNo AND| Semester| = 1)

Якщо вкладений запит в перевірці ANY| не створює жодного рядка результату або якщо результати містять|утримують| значення NULL|, то в різних СУБД перевірка ANY| може виконуватися по-різному. У стандарті ANSI/ISO для мови|язика| SQL| містяться|утримуються| детальні|докладні| правила, що визначають результати перевірки ANY|, коли значення, що перевіряється, порівнюється із|із| стовпцем результатів вкладеного запиту:

1. якщо вкладений запит повертає порожній|пустий| стовпець результатів, то перевірка ANY| має значення FALSE| (в результаті|внаслідок| виконання вкладеного запиту не набуто жодного значення, для якого виконувалася б умова порівняння).

2. якщо операція порівняння має значення TRUE| хоч би|хоча би| для одного значення в стовпці, то перевірка ANY| повертає значення TRUE| (є|наявний| деяке значення, отримане|одержувати| вкладеним запитом, для якого умова порівняння виконується).

3. якщо операція порівняння має значення FALSE| для всіх значень в стовпці, то перевірка ANY| повертає значення FALSE| (можна стверджувати, що ні для одного значення, поверненого вкладеним запитом, умова порівняння не виконується);

4. якщо операція порівняння не має значення TRUE| ні для одного значення в стовпці, але|та| в нім є|наявний| одне або декілька значень NULL| те перевірка ANY| повертає результат NULL|. (У цій ситуації неможливо але|та| з|із| визначеністю затверджувати|стверджувати|, чи існує отримане|одержувати| вкладеним запитом значення, для якого виконується умова порівняння; можливо, існує, а може і ні – все залежить від "справжніх|даних|" значень невідомих даних.)

Перевірка ALL|. У перевірці ALL|, як і в перевірці ANY|, використовується один з шести операторів (=, <> <, <= >, >=) для порівняння одного значення, що перевіряється, із|із| стовпцем даних, поверненим вкладеним запитом. Значення, що перевіряється, по черзі порівнюється з|із| кожним значенням, що міститься|утримується| в стовпці. Якщо всі порівняння дають результат TRUE|, то перевірка ALL| повертає значення TRUE|.

Наприклад, вивести список прізвищ студентів, що отримали|одержували| в першому семестрі лише|тільки| задовільні оцінки.

SELECT| StName|

FROM| Students|

WHERE| 3 = ALL| (SELECT| Mark|

FROM| Marks|

WHERE| Marks|.StNo = Students|.StNo AND| Semester| = 1)

Якщо вкладений запит в перевірці ALL| не повертає жодного рядка або якщо результати запиту містять|утримують| значення NULL|, то в різних СУБД перевірка ALL| може виконуватися по-різному. У стандарті ANSI/ISO для мови|язика| SQL| містяться|утримуються| детальні|докладні| правила, що визначають результати перевірки ALL|, коли значення, що перевіряється, порівнюється із|із| стовпцем результатів вкладеного запиту:

1. якщо вкладений запит повертає порожній|пустий| стовпець результатів, то перевірка ALL| має значення TRUE|. Вважається|лічить|, що умова порівняння виконується, навіть якщо результати вкладеного запиту відсутні.

2. якщо операція порівняння дає результат TRUE| для кожного значення в стовпці, то перевірка ALL| повертає значення TRUE|. Умова порівняння виконується для кожного значення, отриманого|одержувати| вкладеним запитом.

3. якщо операція порівняння дає результат FALSE| для якого-небудь|будь-якого| значення в стовпці, то перевірка ALL| повертає значення FALSE|. У цьому, випадку можна стверджувати, що умова пошуку виконується не для кожного значення, отриманого|одержувати| вкладеним запитом.

4. якщо операція порівняння не дає результат FALSE| ні для одного значення в стовпці, але|та| для одного або декількох значень дає результат NULL|, то перевірка ALL| повертає значення NULL|. У цій ситуації не можна з|із| визначеністю затверджувати|стверджувати|, чи для всіх значень, отриманих|одержувати| вкладеним запитом, справедлива умова порівняння; можливо, для всіх, а може і ні – все залежить від "справжніх|даних|" значень невідомих даних.

 



<== предыдущая лекция | следующая лекция ==>
 | SQL: Команди опрацювання даних


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.258 сек.