Ответы к экзамену по БД. 1. Архитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi). 3
Скачать 2.24 Mb.
|
13. Операторы описания данных (DDL).14. Операторы манипулирования данными (DML).15. Язык запросов DQL. Оператор выбора SELECT.Язык запросов (Data Query Language) в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры. Синтаксис оператора SELECT имеет следующий вид: SELECT [ALL | DISTINCT ] *|имя_столбца [AS новое_имя] [,...n] FROM имя_таблицы [[AS] псевдоним] [,...n] [WHERE <условие_поиска>] [GROUP BY имя_столбца [,...n]] [HAVING <критерии выбора групп>] [ORDER BY имя_столбца [,...n]] Здесь ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса. Ключевое слово DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор. Символ *. (звездочка) означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса. В разделе FROM задается перечень исходных отношений (таблиц) запроса. В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц, подобно операции условного соединения в реляционной алгебре. В разделе GROUP BY задается список полей группировки. В разделе HAVING задаются предикаты-условия, накладываемое на каждую группу. В части ORDER BY задается список полей упорядочения результата. 16. Предикаты раздела WHERE.В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц, подобно операции условного соединения в реляционной алгебре. В разделе GROUP BY задается список полей группировки. В разделе HAVING задаются предикаты-условия, накладываемое на каждую группу. В части ORDER BY задается список полей упорядочения результата. В выражении условий раздела WHERE м.быть использованы следующие предикаты: Предикаты сравнения {=, <>, >,<, >=,<=}, которые имеют традиционный смысл. Предикат Between A and В — принимает значения между А и В. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. В стандарте задан и противоположный предикат Not Between A and В, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы. Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Существует противоположный предикат NOT IN (множество). Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл. По стандарту в шаблон могут быть включены специальные символы: символ подчеркивания (_) — для обозначения любого одиночного символа; символ процента (%) — для обозначения любой произвольной последовательности символов; остальные символы, заданные в шаблоне, обозначают самих себя. Предикат сравнения с неопределенным значением IS NULL. Понятие неопределенного значения было внесено в концепции баз данных позднее. Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени. При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению. Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты: <имяатрибута>IS NULL и <имяатрибута> IS NOT NULL. Если в данной строке указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение «Истина» (TRUE), а предикат IS NOT NULL — «Ложь» (FALSE), в противном случае предикат IS NULL принимает значение «Ложь», а предикат IS NOT NULL принимает значение «Истина». Предикаты существования EXIST и несуществования NOT EXIST. Эти предикаты относятся к встроенным подзапросам, и подробнее мы рассмотрим их, когда коснемся вложенных подзапросов. |