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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задание №1. Создать запрос на выборку в режиме SQL всех значений полей ИМЯ и ФАМИЛИЯ из таблицы СПИСОК.

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

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

выберите Конструктор. Нажмите кнопку ОК, в открывшемся окне Добавление таблицы кнопку Закрыть. Щелкните на раскрывающемся списке кнопки Вид на панели инструментов и выберите режим SQL. В открывшемся окне Запрос 1: запрос на выборку наберите:

SELECT ИМЯ, ФАМИЛИЯ

FROM СПИСОК;

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

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

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

SELECT *

FROM СПИСОК;

Результатом выполнения запроса будет вся таблица СПИСОК.

Задание №3. Создать запрос на выборку в режиме SQL названий городов, где проживают студенты, сведения о которых находятся в таблице ЛИЧНЫЕ_ДАННЫЕ.

SELECT ГОРОД

FROM ЛИЧНЫЕ_ДАННЫЕ;

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

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

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

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

SELECT DISTINCT ГОРОД

FROM ЛИЧНЫЕ_ДАННЫЕ;

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

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

Задание №4. Создать запрос на выборку в режиме SQL, выполняющий выборку имен всех студентов с фамилией Воробьёв, сведения о которых находятся в таблице СПИСОК.

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

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

SELECT ФАМИЛИЯ, ИМЯ

FROM СПИСОК

WHERE ФАМИЛИЯ=’Воробьёв;

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

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

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

SELECT ИМЯ, ФАМИЛИЯ

FROM СПИСОК

WHERE ГРУППА =’УИТ-41’ AND СТИПЕНДИЯ> 0;

Задание №6. Создать запрос в режиме SQL. на выборку из таблицы ЛИЧНЫЕ_ДАННЫЕ сведении о студентах, имеющих оценки по физике только 4 и 5.

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

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

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

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

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

SELECT *

FROM ЛИЧНЫЕ_ДАННЫЕ

WHERE ФИЗИКА IN (4, 5);

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

SELECT *

FROM ЛИЧНЫЕ_ДАННЫЕ

WHERE ФИЗИКА NOT IN (4, 5) AND МАТЕМАТИКА NOT IN (4, 5);

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

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

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

Зanpoc будет иметь вид:

SELECT *

FROM ГРУППЫ

WHERE ЧАСЫ BETWEEN 30 AND 40;

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

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

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

Заданная в операторе LIKE подстрока (образец поиска) в символьную строку-значение проверяемого поля.

SELECT*

FROM СПИСОК

WHERE ФАМИЛИЯ LIKE 'В*';

8