Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Дагестанский Государственный Технический Университет
Факультет РТиМТ
Кафедра ПМиИ
Курсовая работа.
По дисциплине «ОТиПБД»
Выполнил:
Проверил:
Волгоград 2014
Введение.
Для формирования запросов на выборку данных в SQL исполь-
зуется оператор SELECT. Его формат представлен ниже:
SELECT [ ALL I DISTINCT ] selectitemcommalist
FROM tablereferencecommalist
[ WHERE conditional_expression ]
[ GROUP BY column_name_commalist ]
[ HAVING conditionalexpression ]
[ ORDER BY order item commalist ]
SELECT является достаточно сложным оператором, позволяю-
щим выбирать данные из одной или нескольких таблиц, выполнять
группировку, обработку данных с помощью агрегатных функций,
формировать вложенные запросы и т. д. Выражение SELECT обраба-
тывается целиком, а не «построчно», как обычно бывает в языках
программирования. В несколько обобщенном виде схема выполнения
оператора SELECT выг лядит следующим образом:
1) выполняется раздел FROM;
2) выполняется раздел WHERE (если есть);
3) выполняется GROUP BY (если есть);
4) выполняется HAVING (если есть);
5) выполняются определения в разделе SELECT:
6) выполняется ORDER BY (если есть).
Начнем с рассмотрения обязательного раздела SELECT. В нем
указывается список элементов выборки select-item-commalist,
который не должен быть пустым. Также может использоваться клю-
чевое слово ALL или DISTINCT. Первое из них указывает, что в ре-
зультате запроса могут быть повторяющиеся строки, второе - что по-
вторения отбрасываются. Например, используется ключевое слово
DISTINCT и есть три совпадающих строки, тогда в результате из них
останется только одна. Когда явно ничего не указано, то подразумева-
ется ALL.
Рассмотрим теперь пример с заданием имени столбца и исполь-
зованием текстовой константы в столбце. Если необходимо явно ука-
зать, как столбец будет называться в выводимых результатах запроса,
это можно сделать в списке элементов выборки в разделе SELECT.
Новое имя указывается после исходного названия столбца через про-
бел или после необязательного ключевого слова «as». Ниже приведен
пример, в котором список фамилий и инициалов студе!гтов сопро-
вождается подписью «Фамилия и инициалы».
SELECT DISTINCT 'Фамилия и инициалы' as Label1/
FIO FROM Students
Подпись задается с помощью строковой константы, которые в
SQL берутся в одинарные кавычки. Называться столбец с подписью
будет Label 1. Результат выполнения этого запроса для набора данных
из табл. 7.2 представлен в табл. 7.3. Как отмечалось выше, ключевое
слово «as» в SELECT можно пропустить, но иногда оно позволяет
сделать текст на SQL более понятным.
Часть 2.
Сравнение может производиться не только для чисел, но и для
строковых значений (посимвольно), дат и т. д.
Если необходимо получить все значения из интервала, можно
использовать конструкцию BETWEEN ... AND... . Пусть имеется
таблица Book с информацией о книгах, и в ней целочисленный стол-
бец Year, содержащий год издания книги. Получить все книги, издан-
ные с 1990 по 2002 год включительно, можно с помощью приведен-
ного ниже запроса (т. к. «Year» для MS SQL Server является ключе-
вым словом, название столбца снова в квадратных скобках).
SELECT *
FROM Book
WHERE (Year) BETWEEN 1990 AND 2002
Аналогичный результат даст запрос
SELECT *
FROM Book
WHERE [Year]>=1990 AND [Year]<=2002
Если наоборот нужны все книги, кроме изданных в этот период,
можно использовать конструкцию NOT BETWEEN:
SELECT *
FROM Book
WHERE [Year] NOT BETWEEN 1990 AND 2002
Для приведенного выше примера запрос
SELECT * FROM Results GROUP BY StudID
должен привести к ошибке. При использовании GROUP BY, в разделе
SELECT могут быть указаны только те столбцы, но которым произво-
дится группировка. Прочие столбцы могут указываться, если они вы-
ступают в качестве аргументов а1регатных функций, сопоставляющих
группе значений одно.
Ниже приведены основные агрегатные функции:
- среднее значение: AVG ((DISTINCT | ALL) <выражение>);
- максимум: МАХ([DISTINCT|ALL] <выражение>);
- минимум: MIN([DISTINCT I ALL] <выражение>);
- сумма: SUM( [DISTINCT I ALL] <выражение>);
- количество: COUNT ((DISTINCT | ALL] <выражение>) или
COUNT (*).
Часть 4.
Группировка может проводиться и по нескольким столбцам: для
этого в разделе GROUP BY нужно перечислить их через запятую.
Кроме того, можно группировать строю! по значению некоторой
функции от данных в столбцах. Например, на рис. 7.1. а представлена
таблица Device, в которой есть столбец DatePurch типа Date. В столб-
це содержатся даты покупки устройств. Пусть необходимо подсчи-
тать, сколько устройств было приобретено в каждом году (рис. 7.1, б).
В Transact-SQL есть функция YEARO, позволяющая получить из даты
значение года. Сам запрос будет выглядеть следующим образом:
SELECT YEAR(DatePurch) [Год],
COUNT(Devld) [К-во устройств]
FROM Device GROUP BY YEAR(DatePurch)
Рассмотрим пример запроса, выводящего записи отсортирован-
ными по двум столбцам: по названию предмета по возрастанию и
оценке - по убыванию.
SELECT Subj, StudID, Mark
FROM Results
ORDER BY Subj, Mark DESC
КОНТРОЛЬНЫЕ ВОПРОСЫ.
1. Перечислите основные свойства транзакций.
2. В чем разница между явными и неявными транзакциями?
3. В чем заключается проблема потерянного обновления?
4. Назовите основные типы блокировок.
5. Перечислите уровни изоляции транзакций, определенные в
стандарте SQL-92.
6. Каким образом обеспечивается свойство долговечности тран-
закций?
7. В чем заключатся суть протокола двухфазной фиксации?
Список литературы.
1. Диго С.М. Базы данных. Проектирование и создание: Учебно-
методический комплекс. - М.: Изд. центр ЕАОИ, 2008. - 171 с.
2. Диго С.М. Проектирование и использование баз данных:
учебник для вузов по направлению и специальности "Информ. систе-
мы в экономике" / С. М. Диго.- М.: Финансы и статистика, 1995 .-
207 с.
3. Дейт К. Дж. Введение в системы баз данных, 6-е издание:
Пер. с англ. - К.; М.; СПб.: Издательский дом «Вильяме», 1999. -
848 с.
4. Карпова Т.С. Базы данных: модели, разработка, реализация. -
СПб.: Питер, 2002 - 304 с.
5. Кириллов В.В. Введение в реляционные базы данных. / В.В.
Кириллов. Г.Ю. Громов - СПб.: БХВ-Петербург, 2009. - 464 с.
6. N. Sharma, R. F. Chong и др. Database fundamentals /
[Электронный ресурс] URL:
https7/w\vw.ibm.com/developenvorks/\vikis/display/db2oncampus/FREE+
ebook+-+Database+fundamcntals
7. Крёнке Д. Теория и практика построения баз данных. 8-е нзд-
СПб.: Питер, 2003. (Серия «Классика computer science»). - 800 с.
8. Советов Б.Я. Базы данных: Теория и практика. Учеб. для вту-
зов / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовской. -2-е изд., стер.
- М.: Высшая школа, 2007.- 463 с.
9. Кузнецов С.Д. Базы данных: языки и модели. Учебник - М.:
ООО «Бином-Пресс», 2008. - 720 с.
10. Кривошеин М. ER: диаграммы сущность - связь. [Электрон-
ный ресурс] URL: http://mikkri.narod.ru/library/pdf/ER_Modeling.pdf
П.Ицик Бен Гаи. Microsoft SQL Server 2008. Осиобы Т SQL:
Пер. с англ. - СПб.: БХВ-Петербург, 2009. - 432 с.