|
Операция соединения, эквисоединенияSELECT A.Field1, …, A.Fieldn, B.Field1, …, B.Fieldm FROM A, B WHERE (A.Fieldi Θ B.Field1)
Если Θ – операция «=», то это эквисоединение.
Операция естественного соединения Пусть есть отношения A (X 1, …, Xn, A 1, …, Am) и B (X 1, …, Xn, B 1, …, 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 Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|