Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методические указания по лабораторной работе / лаб1_СОЗДАНИЕ ПРОСТЫХ SELECT-ЗАПРОСОВ.doc
Скачиваний:
60
Добавлен:
29.01.2014
Размер:
88.06 Кб
Скачать

2. Запросы на выборку

Для выборки информации из таблиц базы данных используется SQL-инструкций SELECT (выбрать) языка SQL.

Упрощенный синтаксис SQL-инструкций SELECT в общем случае выглядит следующим образом:

SELECT [DISTINCT] <СПИСОК АТРИБУТОВ>

FROM <список таблиц> [WHERE <условие выборки >]

[ORDER BY <СПИСОК АТРИБУТОВ>]

[GROUP BY <список атрибутов>]

[HAVING <условие>]

[UNION <выражение с оператором SELECT>];

Примечание: в квадратных скобках указаны элементы, которые могут отсутствовать в запросе.

Ключевое слово SELECT сообщает базе данных, что данное предложение является запросом на извлечение информации. После слова SELECT через запятую перечисляются наименования полей (список атрибутов), содержимое которых запрашивается.

Обязательным ключевым словом в предложении-запросе SELECT является слово FROM (из). За ключевым словом FROM указывается список разделенных запятыми имен таблиц, из ко­торых извлекается информация. Например, SELECT NAME, SURNAME

FROM STUDENT;

Приведенный запрос осуществляет выборку всех значений полей NAME и SURNAME из таблицы STUDENT.

Порядок следования столбцов в этой таблице соответствует порядку полей NAME и SURNAME, указанному в запросе, а не их порядку во входной таблице STUDENT.

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

Задание 1. Создать запрос на выборку в режиме SQL всех значений полей NAME и SURNAME из таблицы STUDENT.

  • Скопируйте с общего диска В на локальный диск USER…файл Учебная база.

  • Откройте файл Учебная база.

  • Перейдите на вкладку Запросы, щелкнув в Окне базы данных кнопку Запросы.

  • Нажмите кнопку Создать и в открывшемся окне Новый запрос выберите Конструктор.

  • Нажмите кнопку ОК, в открывшемся окне Добавление таблицы кнопку Закрыть.

  • Щелкните на раскрывающемся списке кнопки Вид на панели инструментов и выберите режим SQL.

  • В открывшемся окне Запрос 1: запрос на выборку наберите:

SELECT NAME, SURNAME

FROM STUDENT;

  • Для запуска запроса нажмите кнопку Запуск на панели инструментов.

Задание №2. Создать запрос на выборку в режимеSQLвсех столбцов таблицы STUDENT .

Вместо перечисления имен столбцов можно использовать символ «*» (звездочка).

SELECT *

FROM STUDENT;

Результатом выполнения запроса будет вся таблица STUDENT.

Задание №3. Создать запрос на выборку в режиме SQL названий городов, где проживают студенты, сведения о которых находятся в таблице STUDENT.

SELECT CITY FROM STUDENT;

Результатом запроса будет таблица, в которой будут встречаться одинаковые строки.

Внимание! Получаемые в результате SQL-запроса таблицы не в полной мере отвечают определению реляционного отношения. В частности, в них могут оказаться кортежи с одинаковыми значениями атрибутов.

Для исключения из результата SELECT запроса повторяющих­ся записей используется ключевое слово DISTINCT (отличный). Если запрос SELECT извлекает множество полей, то DISTINCT ис­ключает дубликаты строк, в которых значения всех выбранных полей идентичны.

Предыдущий запрос можно записать в следующем виде.

SELECT DISTINCT CITY

FROM STUDENT;

В результате получим таблицу, в которой дубликаты строк исключены.

Ключевое слово ALL (все), в отличие от DISTINCT, оказыва­ет противоположное действие, то есть при его использовании повторяющиеся строки включаются в состав выходных данных. Режим, задаваемый ключевым словом ALL, действует по умол­чанию, поэтому в реальных запросах для этих целей оно прак­тически не используется.

Задание 4. Создать запрос на выборку в режиме SQL, выполняющий выборку имен (NAME) всех студентов с фамилией (SURNAME) Петров, сведения о которых находятся в таблице STUDENT.

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

Запрос будет выглядеть следующим образом:

SELECT SURNAME, NAME

FROM STUDENT

WHERE SURNAME = 'Петров';

Задание 5.Создать запрос на выборку в режимеSQLдля получения имен и фамилий студен­тов, обучающихся на третьем курсе и получающих стипендию (размер стипендии больше нуля).

В задаваемых в предложении WHERE условиях могут использо­ваться операции сравнения, определяемые операторами = (рав­но), > (больше), < (меньше), >= (больше или равно), <= (мень­ше или равно), <> (не равно), а также логические операторы AND, OR И NOT.

SQL-запрос будет выглядеть таким образом:

SELECT NAME, SURNAME

FROM STUDENT

WHERE KURS = 3 AND STIPEND > 0;

Задание 6. Создать запрос в режиме SQL на выборку из таблицы EXAM_MARKS (Экзаменационные оценки) сведений о студентах, имеющих экзаменационные оценки только 4 и 5.

При задании логического условия в предложении WHERE мо­гут быть использованы операторы IN, BETWEEN, LIKE, IS NULL.

Операторы IN (равен любому из списка) и NOT IN (не ра­вен ни одному из списка) используются для сравнения прове­ряемого значения поля с заданным списком. Этот список зна­чений указывается в скобках справа от оператора IN.

Построенный с использованием IN предикат (условие) счи­тается истинным, если значение поля, имя которого указано сле­ва от IN, совпадает (подразумевается точное совпадение) с од­ним из значений, перечисленных в списке, указанном в скобках справа от IN.

Предикат, построенный с использованием NOT IN, считает­ся истинным, если значение поля, имя которого указано слева от NOT IN, не совпадает ни с одним из значений, перечислен­ных в списке, указанном в скобках справа от NOT IN.

Запрос будет выглядеть следующим образом:

SELECT*

FROM EXAM_MARKS

WHERE MARK IN (4, 5);

Задание 7. Создать запрос в режимеSQLна выборку сведений о студентах, не имеющих ни одной экза­менационной оценки, равной 4 и 5.

SELECT *

FROM EXAM_MARKS

WHERE MARK NOT IN (4,5);

Задание 8. Создать запрос режиме SQL на выборку записей о предметах, на изуче­ние которых отводится количество часов, находящееся в пре­делах между 30 и 40.

Оператор BETWEEN используется для проверки условия вхож­дения значения поля в заданный интервал, то есть вместо списка значений атрибута этот оператор задает границы его изменения.

Оператор BETWEEN может использоваться как для число­вых, так и для символьных типов полей.

Запрос будет иметь вид:

SELECT *

FROM SUBJECT

WHERE HOUR BETWEEN 30 AND 40;

Граничные значения, в данном случае значения 30 и 40, входят во множество значений, с которыми производится срав­нение.

Задание 9. Создать запрос режиме SQL на выборку из таблицы STUDENT сведе­ний о студентах, фамилии которых начинаются на букву «П».

Оператор LIKE применим только к символьным полям. Этот оператор просматривает строковые значения полей с це­лью определения, входит ли заданная в операторе LIKE под­строка (образец поиска) в символьную строку-значение прове­ряемого поля.

Для выборки строковых значений по заданному образцу подстроки можно применять шаблон искомого образца строки, использующий следующие символы:

  • символ подчеркивания «?», указанный в шаблоне, определя­ет возможность наличия в указанном месте одного любого символа;

  • символ «*» допускает присутствие в указанном месте прове­ряемой строки последовательности любых символов про­извольной длины.

Запрос будет иметь вид:

SELECT *

FROM STUDENT

WHERE SURNAME LIKE 'П*';

Задание 10. Выполнить SQL-запросы рассмотренной функциональности по индивидуальным базам данных.

Задание 11. Предоставить отчет в печатном и электронном виде по учебной и индивидуальной базам данных.

ПРИЛОЖЕНИЕ 1

Перечень SQL – инструкций

Таблица 1.

Команды

Описание

ORDER BY

Упорядочивание выходных данных объединения

запросов

GROUP BY

Позволяет применять агрегирующие функции к каждой группе

HAVING

Позволяет при выводе осуществлять фильтрацию групп

UNION

Используется для объединения выходных данных двух или более SQL-запросов в единое множество строк и столбцов.

Таблица 2. Предложения DDL (Data Definition Language)

Ключевое слово предложения

Установки

Описание

CONSTRAINN (создать ограничения на значения данных)

NOT NULL

Не допускаются нулевые (пустые) значения по соответствующему полю

AUTOINC

PRIMARY KEY

Таблица 2. Операторы Data Manipulation Language (DML)

Команда

Описание

SELECT

Выбор данных

INSERT

Добавление данных

DELETE

Удаление данных

UPDATE

Применяется для изменения данных

Таблица 3. Операторы Transaction Control Language (TCL)

Оператор

Описание

COMMIT

Применяется для завершения транзакции и сохранения изменений в базе данных

ROLLBACK

Применяется для отката транзакции и отмены изменений в базе данных

SET TRANSACTION

Применяется для установки параметров доступа к данным в текущей транзакции

Таблица 4. Операторы Data Control Language (DCL)

Оператор

Описание

GRANT

Применяется для присвоения привилегии

REVOKE

Применяется для отмены привилегии

Таблица 5. Операторы Cursor Control Language (CCL)

Оператор

Описание

DECLARE CURSOR

Применяется для определения курсора для запроса

OPEN CURSOR

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

FETCH

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

CLOSE CURSOR

Применяется для закрытия курсора

PREPARE

Применяется для подготовки оператора SQL для выполнения

EXECUTE

Применяется для выполнения оператора SQL

DESCRIBE

Применяется для описания подготовленного запроса