SQL: select-запросы расширенные возможности: Методические указания к лабораторной работе

Страницы работы

Содержание работы

SQL: SELECT-ЗАПРОСЫ РАСШИРЕННЫЕ ВОЗМОЖНОСТИ

Методические указания к лабораторной работе по курсу «Автоматизированные информационно-управляющие системы»

Балаково 2006


ЦЕЛИ РАБОТЫ:

·  Научиться применять некоторые расширенные возможности языка SQL;

·  Научиться составлять составные SQL-запросы и запросы из не­скольких таблиц.

1. РАСШИРЕННЫЕ ВОЗМОЖНОСТИ

Задание 1. Столбцы-выражения.

В SQL-запросах кроме названия полей и агрегирующих функций воз­можно применять переменные, значение которых надо будет ввести при выводе запроса на экран. Эти переменные можно использовать как для расчетов (арифметические выражения, в том числе со значе­ниями поля таблицы), так и для вывода дополнительного поля с ука­занным значением. В данном примере выводятся столбцы с символа­ми «+» и «=» в каждой строке, а также с рассчитанным по формуле значением.

SELECT КодСтудента, Физика, ‘+’, Математика, ‘+’, Информатика,’=’,(Физика+Математика+Информатика)/К

FROM [Личные данные];

В этом запросе перед выполнением появится окно для ввода значения переменной К (количество предметов, поставить равным 3).

Задание 2. Названия столбцов.

В случае необходимости переименования столбцов вывода запроса используется оператор AS и новое имя столбца. Таким же образом можно дать имя столбцу-выражению (вместо Exprl001).

SELECT Физика AS [Оценка по физике]

FROM [Личные данные];

Задание 3. Работа с датами.

Синтаксис языка SQL позволяет указывать даты в запросе, например,

в качестве условия выборки.

Например, 1 января 2000 года на SQL запишется #01/01/2000#

Обратите внимание, что в SQL в записи даты первым идет месяц, а

потом число: 24 декабря 2005 года = #12/24/2005#.

SELECT Фамилия, Имя, Дата_рождения

FROM Список

WHERE Дата_Рождения BETWEEN #01/10/1986# AND  #03/12/1987#;

2. СОСТАВНЫЕ ЗАПРОСЫ

В качестве источника данных (FROM) кроме таблиц возможно ис­пользование другого запроса SQL, который надо записать в круглых скобках после ключевого слова FROM.

Задание 4. Использование составного запроса.

SELECT DISTINCT Count (Город)

FROM Личные_данные;

Ключевое слово DISTINCT обрабатывает данные уже после выборки, поэтому SQL сначала вычислит количество строк в поле Город (функция Count), а затем к этой строке применит оператор DIS­TINCT, который ничего не сделает. Чтобы избежать этого, требуется разбить запрос на два.

Подсчитать количество городов в таблице Личные_данные.

SELECT  Count(Город)

FROM  (SELECT DISTINCT  Город  FROM [Личные данные]);

Задание 5. Подзапрос в операторе IN.

Подзапрос можно использовать не только в качестве источника строк

в фразе FROM. Подзапрос может быть использован в операторе IN.

SELECT Фамилия

FROM Список

WHERE Код IN (SELECT [КодСтудента]

FROM [Личные данные] WHERE Физика = 5);

3. ЗАПРОСЫ ИЗ НЕСКОЛЬКИХ ТАБЛИЦ

Задание 6. Запрос из нескольких таблиц.

Если задать запрос, в котором вывести поля из двух таблиц, то SQL выведет значения этих полей во всех возможных комбинациях. Например, если выводятся поля из таблиц, содержащих 5 строк и 15 строк, то в запросе будет выведено 45 строк.

Для устранения этого необходимо ввести проверку на совпадение по­лей, связывающих эти таблицы.

SELECT  Фамилия AS  SURNAME,   Физика AS  [Оценка по физике]

FROM  Список, [Личные данные]

WHERE Список.Код=[Личные данные].[КодСтудента];

Задание 7. Использование псевдонимов.

Псевдоним - это синоним таблицы, время существования которого ограничено одним запросом. Чаще всего служит для придания лако­ничности и читаемости текста запроса. Псевдоним задается во фразе FROM запроса через пробел после имени таблицы или вложенного запроса.

SELECT  Список.Фамилия,  Л.КодСтудента, город

FROM Список, (SELECT  * FROM [Личные данные] WHERE  физика<4) Л

WHERE  Список.Код=[Личные данные].КодСтудента;

Похожие материалы

Информация о работе