ТОП 10:

Операция соединения, эквисоединения



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







Последнее изменение этой страницы: 2016-04-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.226.243.36 (0.018 с.)