Базы данных / ЛР4_2014
.pdfПМИ |
БАЗЫ ДАННЫХ |
2014 |
Лабораторная работа № 4. Создание запросов
Цель работы: приобретение практических навыков создания запросов на выборку.
Задания
1.Изучите приведенный в лабораторной работе теоретический материал.
2.Изучите приведенные в лабораторной работе примеры создания запросов.
3.Выполните индивидуальное задание: сформулируйте и согласуйте с преподавателем список запросов к проектируемой Вами базе данных. Список должен включать следующие запросы:
−запрос на выборку к одной таблице с условием, накладываемым на выбор записей (предложение WHERE) и сортировкой записей результирующей таблиц;
−три запроса на соединение связанных таблиц с использованием операторов, внутреннего или внешнего соединения;
−запросы, реализующие подведение итогов по группе.
4.Создайте SQL-код запросов.
5.Покажите работу преподавателю.
6.Сохраните SQL-код запросов в текстовом файле.
7.Ответьте на контрольные вопросы.
Краткие теоретические сведения
Запрос – это требование конечного пользователя или приложения, направляемое СУБД и активизирующее в системе БД действия, которые обеспечивают выборку, вставку, удаление или обновление указанных в нем данных.
Синтаксис запроса на выборку
SELECT [ALL|DISTINCT|] <список выбора>
FROM <список таблиц>
[WHERE <условие отбора строк>]
[GROUP BY <список полей, по которым будут группироваться записи>] [HAVING <условие отбора групп записей>]
[ORDER BY <определение сортировки записей>];
В предложении SELECT задают имена столбцов, которые должны войти в итоговый набор данных после выполнения запроса. Этот набор должен содержать не менее одного столбца. Столбцы в предложении SELECT перечисляются через запятую. Порядок столбцов может отличаться от порядка столбцов в базовой таблице. Если все столбцы исходной таблицы должны войти в результирующую таблицу, то после команды ставится символ (*).
Качала Н.М. |
Страница 1 |
ПМИ |
БАЗЫ ДАННЫХ |
2014 |
Винструкции SELECT можно использовать символьные константы, заключенные в апострофы, и арифметические выражения, включающие числовые столбцы и константы, а также операторы (+, -, *, /), сгруппированные по мере необходимости с помощью круглых скобок.
Все столбцы, перечисленные в командах SELECT и WHERE должны существовать
водной из таблиц, указанных в команде FROM.
Впредложении WHERE задают условие, на основании которого выбираются строки из таблицы (таблиц).
При записи условий используют: − арифметические операции;
− операторы сравнения =,<>, <, > , <=, >=; − !> - не больше; !< -не меньше;
− оператор сравнения IN – проверка сравниваемой величины на вхождение во множество;
− логические операции AND, OR, NOT;
− оператор BETWEEN (используется для сравнения некоторой величины с двумя другими величинами, первая из которых меньше второй; условие, содержащее оператор BETWEEN, истинно, если сравниваемая величина равна граничному значению или любому значению между границами);
− оператор LIKE – для сравнения символьных переменных с символами шаблона;
− IS NULL, IS NOT NULL;
−CONSTAINS;
−предикат EXIST;
−круглые скобки.
В операторе LIKE используют следующие подстановочные элементы:
−знак подчеркивания _ обозначает точно один символ в строке;
−% – любая строка, состоящая из 0 и более символов;
−[список символов] – один символ из заданного списка символов; символы могут перечисляться через запятую, быть заданы как диапазон или идти друг за другом без разделительных знаков, например, [a,b,c,d], [a-d], [abcd];
−[^список символов] – любой символ вне указанного множества.
Примеры
1.Выбрать должности с окладами в диапазоне от 10000 до 15000. SELECT должность, оклад
FROM ДОЛЖНОСТИ
WHERE оклад BETWEEN 10000 AND 15000;
2.Выбрать сотрудников, фамилия которых начинается на букву «А». SELECT *
FROM СОТРУДНИК
WHERE Фамилия LIKE 'А%';
Качала Н.М. |
Страница 2 |
ПМИ |
БАЗЫ ДАННЫХ |
2014 |
3.Вывести фамилии и паспортные данные сотрудников. Сортировку выполнить в алфавитном порядке их фамилий.
SELECT Фамилия, Номер_пасп FROM СОТРУДНИКИ
ORDER BY Фамилия;
4.Вывести фамилию сотрудника и список его несовершеннолетних родственников.
SELECT СОТРУДНИК.Фамилия, РОДСТВЕННИКИ.Фамилия, РОДСТВЕННИКИ.Имя, РОДСТВЕННИКИ.Отчество, РОДСТВЕННИКИ.Дата_рожд, РОДСТВО.степень_родства FROM СОТРУДНИК INNER JOIN РОДСТВЕННИКИ ON
СОТРУДНИК.таб_ном = РОДСТВЕННИКИ.таб_ном INNER JOIN РОДСТВО ON РОДСТВЕННИКИ.код_родст = РОДСТВО.код_родств
WHERE DATEDIFF(year, GETDATE(),РОДСТВЕННИКИ.Дата_рожд) <18;
Запросы можно создавать в Конструкторе. Для активизации Конструктора
необходимо в Обозревателе объектов щелкнуть ПКМ по папке Представление и из контекстного меню выбрать пункт Создать представление. Появится окно Добавить таблицу, предназначенное для выбора таблиц и представлений, участвующих в запросе.
После добавления таблиц и закрытия окна Добавить таблицу появится окно конструктора запросов. Работу с Конструктором студенты должны изучить самостоятельно.
Контрольные вопросы
1.Объясните разницу между INNER JOIN и LEFT OUTER JOIN.
2.Объясните разницу между RIGTH OUTER JOIN и LEFT OUTER JOIN.
3.Какие итоговые функции используются в запросах?
4.Какие операторы используются для выбора только нескольких первых записей?
Качала Н.М. |
Страница 3 |