Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BakalVoprosy - KC-2010_pre_Answers.doc
Скачиваний:
2
Добавлен:
07.07.2019
Размер:
1.01 Mб
Скачать
  1. Мова запитів sql. Операція вибірки select.

До SQL были языки ISBL, QBE фирмы IBM. А также языки разрабатываемые в университетах США (PIQUE, QUEL). QUEL (использующий реляционное исчисление) - создавался для СУБД INGRES. Сегодня сохранились и развиваются QBE, SQL.

SQL (Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.

SQL основывается на реляционной алгебре.

Язык SQL делится на четыре части:

  • операторы определения данных (англ. Data Definition Language, DDL)

  • операторы манипуляции данными (англ. Data Manipulation Language, DML)

  • операторы определения доступа к данным (англ. Data Control Language, DCL)

  • операторы управления транзакциями (англ. Transaction Control Language, TCL)

Преимущества:

- Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую.

- Наличие стандартов. Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.

- Декларативность (С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса. Программист описывает набор данных для выборки или модификации, однако ему при этом полезно представлять, как СУБД будет разбирать текст его запроса. Особенно критичными такие моменты становятся при работе с большими базами данных и со сложными запросами — чем сложнее сконструирован запрос, тем больше он допускает вариантов написания, различных по скорости выполнения, но одинаковых по итоговому набору данных)

В настоящее время язык SQL стал стандаpтным языком запpосов к БД. Основной опеpацией в языке SQL является отобpажение, котоpое синтаксически пpедставляет собой блок SELECT ...FROM ... WHERE. Эта опеpация получает сначала гоpизонтальное подмножество записей, а затем веpтикальное.

Возможность соединения таблиц заключена во фpазе FROM. Hа языке pеляционной алгебpы для этой цели пpишлось бы использовать последовательность опеpаций JOIN, PROJECT, SELECT. Допустимы вложенные запpосы.

Общий вид предложения запроса выглядит следующим образом:

SELECT [DISTINCT]<колонки>

FROM <таблицы>

WHERE <условие>

GROUP BY <колонки>

HAVING <условие >

ORDER BY <колонки> ASC/DESC

SELECT определяет, какие колонки должна иметь результирующая таблица. Символ "*" обозначает, что результирующая таблица должна включать в себя все колонки всех таблиц, на основе которых строиться запрос

FROM определяет список таблиц, на основе которых строится запрос.

WHERE позволяет указать условие, которому должны удовлетворять значения в строках результатирующего отношения.

GROUP BY определяет список имен колонок, по одинаковым значениям которых будет выполняться группировка строк. Т.е. строки с одинаковыми значениями в указанных колонках будут представлены в результирующем отношении одной строкой.

HAVING позволяет определить из множества сгруппированных строк только те, которые удовлетворяют указаному условию.

Для упорядочивания итогового результата в SQL используется фраза ORDER BY с ключевыми словами: ASC (по возрастанию) и DESC (по убыванию).

В SQL допускается любая вложенность запросов, однако конкретная реализация ограничивает вложенность. В подзапросе и во внешнем запросе может использоваться одна и та же таблица.

В SQL допускается соединение таблиц с собой (самообъединение). При этом каждая строка таблицы комбинируется с ее копией и с другой строкой этой таблицы. В дальнейшем каждая такая комбинация оценивается с помощью предиката и в зависимости от его значения попадает или не попадает в предикат. Синтаксис операции соединения сохраняется, но надо иметь возможность ссылаться на две разные копии одной таблицы. Для этой используются псевдонимы (алиасы), которые определяются во фразе from, после имен таблиц. Для исключения дубликатов из результата в SQL используется фраза DISTINCT.

Возможно использование фразы Between для выборки определенного значения результата.

Предикат IN (принадлежит) – позволяет выбрать нужные значения из списка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]