Формирование запросов на выборку данных в SQL

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1005,96 Кб
  • Опубликовано:
    2015-07-20
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Формирование запросов на выборку данных в SQL

Для формирования запросов на выборку данных в 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 выглядит следующим образом:

1)      выполняется раздел FROM;

2)      выполняется раздел WHERE (если есть);

)        выполняется GROUP BY (если есть);

4)      выполняется HAVING (если есть);

5)      выполняются определения в разделе SELECT:

6)      выполняется ORDER BY (если есть).

Начнем с рассмотрения обязательного раздела SELECT. В нем указывается список элементов выборки select-item-commalist, который не должен быть пустым. Также может использоваться ключевое слово ALL или DISTINCT. Первое из них указывает, что в результате запроса могут быть повторяющиеся строки, второе - что повторения отбрасываются. Например, используется ключевое слово

DISTINCT и есть три совпадающих строки, тогда в результате из них останется только одна. Когда явно ничего не указано, то подразумевается ALL.


Рассмотрим теперь пример с заданием имени столбца и использованием текстовой константы в столбце. Если необходимо явно указать, как столбец будет называться в выводимых результатах запроса, это можно сделать в списке элементов выборки в разделе SELECT. Новое имя указывается после исходного названия столбца через про - бел или после необязательного ключевого слова «as». Ниже приведен пример, в котором список фамилий и инициалов студентов сопровождается подписью «Фамилия и инициалы».DISTINCT «Фамилия и инициалы» as Label1/ FIO FROM Students

Подпись задается с помощью строковой константы, которые в SQL берутся в одинарные кавычки. Называться столбец с подписью будет Label 1. Результат выполнения этого запроса для набора данных из табл. 7.2 представлен в табл. 7.3. Как отмечалось выше, ключевое слово «as» в SELECT можно пропустить, но иногда оно позволяет сделать текст на SQL более понятным.






Если необходимо получить все значения из интервала, можно использовать конструкцию BETWEEN… AND…. Пусть имеется таблица Book с информацией о книгах, и в ней целочисленный стол - бец Year, содержащий год издания книги. Получить все книги, издан - ные с 1990 по 2002 год включительно, можно с помощью приведен - ного ниже запроса (т.к. «Year» для MS SQL Server является ключе - вым словом, название столбца снова в квадратных скобках). SELECT * FROM Book(Year) BETWEEN 1990 AND 2002 Аналогичный результат даст запрос* FROM Book [Year]>=1990 AND [Year]<=2002

Если наоборот нужны все книги, кроме изданных в этот период, можно использовать конструкцию NOT BETWEEN:* FROM Book[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] <выражение>);























Группировка может проводиться и по нескольким столбцам: для этого в разделе 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 ResultsBY Subj, Mark DESC





Список литературы

1.   Диго С.М. Базы данных. Проектирование и создание: Учебно-методический комплекс. - М.: Изд. центр ЕАОИ, 2008. - 171 с.

.     Диго С.М. Проектирование и использование баз данных: учебник для вузов по направлению и специальности «Информ. систе - мы в экономике» / С.М. Диго. - М.: Финансы и статистика, 1995. - 207 с.

3.   Дейт К.Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. - К.; М.; СПб.: Издательский дом «Вильяме», 1999. - 848 с.

4.   Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2002 - 304 с.

.     Кириллов В.В. Введение в реляционные базы данных. / В.В. Кириллов. Г.Ю. Громов - СПб.: БХВ-Петербург, 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 с.

.     Советов Б.Я. Базы данных: Теория и практика. Учеб. для вту - зов / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовской. -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 с.

Похожие работы на - Формирование запросов на выборку данных в SQL

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!