Операция выборки (селекции)
SELECT *
FROM A
WHERE (<condition>)
Операция пересечения
SELECT *
FROM A
INTERSECT
SELECT *
FROM B
Операция соединения, эквисоединения
SELECT A.Field1, … , A.Fieldn, B.Field1, … , B.Fieldm
FROM A, B
WHERE (A.Fieldi Θ B.Field1)
Если Θ – операция «=», то это эквисоединение.
Операция естественного соединения
Пусть есть отношения A (X1, … , Xn, A1, …, Am) и B (X1, … , Xn, B1, …, Br).
SELECT A.X1, … , A.Xn, A.A1, … , A.Am, B.B1, … , B.Br
FROM A, B
WHERE (A.X1 = B.X1) AND … AND (A.Xn = B.Xn)
Краткие итоги:В лекции дается общая характеристика операторов языка SQL, используемых, в частности, для работы с базой данных в интерактивном режиме (создание таблиц, выбор информации из таблиц, добавление, удаление и модификация элементов). Дается понятие интерактивного режима работы с SQL. Рассматриваются основные операторы SQL, используемые для манипулирования данными (выбор информации из таблиц, добавление, удаление и модификация элементов). Приводятся примеры записи запросов к базе данных на языке SQL с использованием операторов select, insert, update,delete. Рассматривается связь между операциями реляционной алгебры и операторами языка SQL.
Более подробно материалы лекции рассматриваются в [1-7].
Контрольные тесты
Задача 1. Основные группы операторов SQL?
Вариант 1.
Какие из перечисленных операторов относятся к языку управления данными (DCL)?
ð Update - изменение значений в полях таблицы
ð+ Grant – создание в системе безопасности разрешающей записи для пользователя
ð Select –выборка строк, удовлетворяющих заданным условиям
ð Create – создание таблицы, индекса
ð Drop – удаление таблицы
ð Alter – изменение структуры таблицы
ð Insert – вставка строк в таблицу
ð Delete – удаление строк из таблицы
ð+ Deny - создание в системе безопасности запрещающей записи для пользователя
Вариант 2.
Какие из перечисленных операторов относятся к языку определения данными (DDL)?
ð Update - изменение значений в полях таблицы
ð Grant – создание в системе безопасности разрешающей записи для пользователя
ð Select –выборка строк, удовлетворяющих заданным условиям
ð+ Create – создание таблицы, индекса
ð+ Drop – удаление таблицы
ð+ Alter – изменение структуры таблицы
ð Insert – вставка строк в таблицу
ð Delete – удаление строк из таблицы
ð Deny - создание в системе безопасности запрещающей записи для пользователя
Вариант 3.
Какие из перечисленных операторов относятся к языку манипулирования данными (DML)?
ð Update - изменение значений в полях таблицы
ð Grant – создание в системе безопасности разрешающей записи для пользователя
ð+ Select –выборка строк, удовлетворяющих заданным условиям
ð Create – создание таблицы, индекса
ð Drop – удаление таблицы
ð Alter – изменение структуры таблицы
ð+ Insert – вставка строк в таблицу
ð+ Delete – удаление строк из таблицы
ð Deny - создание в системе безопасности запрещающей записи для пользователя
Задача 2. Какие служебные слова используются в операторе select?
Вариант 1.
Какие служебные слова обязательно присутствуют в операторе SELECT?
ð+ FROM
ð WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
Вариант 2.
Какие служебные слова могут отсутствовать в операторе SELECT?
ð FROM
ð+ WHERE
ð+ ORDER BY
ð+ GROUP BY
ð+ HAVING
Вариант 3.
После каких служебных слов указывается список атрибутов в операторе SELECT?
ð FROM
ð WHERE
ð+ ORDER BY
ð+ GROUP BY
ð HAVING
Задача 3. Как формируется условие выборки записей?
Вариант 1.
Какие служебные слова определяют условие выборки записей?
ð FROM
ð+ WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
ð SELECT
Вариант 2.
Какие служебные слова не определяют условие выборки записей?
ð+ FROM
ð WHERE
ð+ ORDER BY
ð+ GROUP BY
ð+ HAVING
ð+ SELECT
Вариант 3.
Какие операторы и операнды могут использоваться при формировании условия выборки записей?
ð названия таблиц
ð+ имена атрибутов
ð+ имена атрибутов с указанием имен соответствующих таблиц
ð+ арифметические операторы сравнения
ð+ логические операторы
ð+ числовые константы
ð+ символьные константы
Задача 4.
Вариант 1.
Какие элементы таблицы выбираются оператором SELECT?
ð только строки
ð только столбцы
ð+ строки и столбцы
ð вся таблица
Вариант 2.
После какого служебного слова в операторе SELECT указывается выбор столбцов?
ð FROM
ð WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
ð+ SELECT
Вариант 3.
После какого служебного слова в операторе SELECT указывается выбор строк?
ð FROM
ð+ WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
ð SELECT
Задача 5. Как осуществляется выборка информации из нескольких таблиц?
Вариант 1.
В каких предложениях оператора SELECT необходимо использовать имена таблиц при выборке информации из нескольких таблиц?
ð+ FROM
ð+ WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
ð+ SELECT
Вариант 2.
Какие предложения оператора SELECT используются для установления связи между строками таблиц при выборке информации из нескольких таблиц?
ð FROM
ð+ WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
ð SELECT
Вариант 3.
Как указываются имена атрибутов в операторе SELECT при выборке информации из нескольких таблиц?
ð указываются только имена атрибутов через запятую
ð указываются имена атрибутов через запятую и имена таблиц через запятую
ð указываются имена таблиц через запятую и имена атрибутов через запятую
ð+ указывается имя таблицы и через точку имя атрибута и т. д.
Задача 6. Характеристика оператора INSERT.
Вариант 1.
Что делает оператор INSERT?
ð вставляет строку с заданными значениями элементов в таблицу
ð вставляет столбец с заданными значениями элементов в таблицу
ð+ вставляет строку с заданными значениями элементов и значениями по умолчанию в таблицу
ð вставляет столбец с заданными значениями элементов и значениями по умолчанию в таблицу
Вариант 2.
В каких предложениях оператора INSERT указываются вставляемые в таблицу значения?
ð INSERT
ð+ VALUES
ð FROM
ð WHERE
Вариант 3.
Какие служебные слова могут использоваться в операторе INSERT?
ð FROM
ð WHERE
ð+ VALUES
ð GROUP BY
Задача 7. Характеристика оператора DELETE.
Вариант 1.
Какие служебные слова могут использоваться в операторе DELETE?
ð+ FROM
ð+ WHERE
ð VALUES
ð GROUP BY
Вариант 2.
В каких случаях оператор DELETE не может быть выполнен корректно?
ð пользователь пытается удалить не ту строку, которую нужно удалить
ð удаляемая строка ссылается на строку другой таблицы
ð+ на удаляемую строку имеется ссылка из другой таблицы
ð+ нарушаются условия целостности
Вариант 3.
С помощью какого предложения оператора DELETE может указываться удаляемая строка?
ð FROM
ð+ WHERE
ð DELETE
ð SET
Задача 8. Как связаны операторы языка SQL с операциями реляционной алгебры?
Вариант 1.
Какой оператор языка (или служебное слово языка) реализует операцию проекции реляционной алгебры?
ð INSERT
ð+ SELECT
ð ORDER BY
ð GROUP BY
ð HAVING
Вариант 2.
Какой оператор языка (или служебное слово языка) реализует операцию селекции реляционной алгебры?
ð INSERT
ð+ SELECT
ð ORDER BY
ð GROUP BY
ð HAVING
Вариант 3.
Какой оператор языка (или служебное слово языка) используются при представлении операции естественного соединения реляционной алгебры?
ð+ FROM
ð+ WHERE
ð ORDER BY
ð GROUP BY
ð HAVING
ð+ SELECT
Литература
1. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. СПб.: Питер, 1997. – 700 с.
2. Грабер М. SQL. Справочное руководство. – М: Лори, 1997. – 291с.
3. Грофф Дж., Вайнберг П. Энциклопедия SQL. 3-е изд. СПб.: Питер, 2003.
4. Грофф Дж., Вайнберг П. SQL: полное руководство: Пер. с англ. – К.: Издательская группа BHV, 2000. – 608 с.
5. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для вузов. – СПб.: КОРОНА принт, 2000. – 416 с.
6. Реализация баз данных Microsoft SQL Server 7.0 Учебный курс: официальное пособие Microsoft для самостоятельной подготовки. М.: Издательско-торговый дом «Русская редакция», 2000.
7. Карпова Т. Базы данных. Модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с.
Лекция 13. Использование языка SQL в прикладных программах
В лекции рассматриваются разные технологии формирования запросов на языке SQL в прикладных программах (статическое формирование запроса, динамическое формирование запроса, использование библиотек).
Ключевые термины: язык SQL, встроенный SQL, статический SQL, динамический SQL, интерфейс программирования приложений, API, библиотеки для работы с СУБД.
Цель лекции:показать основные возможности формирования запросов к базе данных из прикладных программ.
13.1. Программный (встроенный) SQL
Основная работа с базой данных проводится с использованием прикладных программ, из которых и идут запросы к базам данных. В этом случае интерактивный режим работы не может быть использован, текст SQL- запроса должен быть либо включен в прикладную программу (если запрос полностью определен заранее), либо формироваться в процессе работы прикладной программы.
Программный SQL предназначен для того, чтобы встраивать SQL-запросы в прикладную программу, написанную на одном из языков программирования. При этом возникают следующие вопросы:
· компилятор с алгоритмического языка должен иметь возможность выделения в тексте прикладной программы последовательность операторов SQL.
· компилятор должен объединять возможности языка программирования высокого уровня (переменные, ветвления, циклы) и возможности SQL (запросы на языке, близком к естественному).
Решение этих проблем частично описано в стандарте SQL.
Рассмотрим алгоритм выполнения SQL-запросов в интерактивном режиме работы. Легко видеть, что пользователь вынужден ожидать результатов выполнения запроса в течение всего времени работы реализации SQL-запроса. Если через некоторое время пользователю снова нужно будет выполнить тот же самый запрос, СУБД вновь проделает те же самые действия, что и при предыдущем обращении. Налицо некоторое несовершенство механизма:
· одни и те же этапы выполняются каждый раз заново для одинаковых запросов;
· СУБД не может обрабатывать интерактивные запросы с опережением.
Решение подобных проблем очевидно – часть действий по обработке запроса необходимо выполнять один раз, сохранять результат в некотором виде, а потом использовать столько раз, сколько необходимо. Эта идея является одной из основных идей программного SQL. Таким образом, программный SQL позволяет:
· использовать операторы интерактивного SQL в тексте программы на языке программирования высокого уровня;
· наряду с операторами интерактивного SQL использовать новые специальные конструкции, дополняющие SQL и увеличивающие его возможности;
· для передачи параметров в запрос использовать в тексте запроса переменные, объявленные в программе;
· для возврата в программу результатов запроса использовать специальные конструкции, отсутствующие в интерактивном SQL;
· осуществлять компиляцию запросов совместно с программой, обеспечивая впоследствии согласованную работу программы и СУБД. Заранее (на этапе компиляции) выполнять действия по анализу и оптимизации запросов, экономя время, затрачиваемое на этапе выполнения программы.
На настоящий момент используются три варианта встраивания запросов на языке SQL в прикладную программу (программного SQL): статический SQL, динамический SQL и метод, основанный на различных интерфейсах программирования приложений (API). Рассмотрим соответствующие варианты.
13.2. Статический SQL
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|