Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_keys.doc
Скачиваний:
16
Добавлен:
22.09.2019
Размер:
628.74 Кб
Скачать

26 Sql: Выборка данных. Поиск

Оператор SELECT (ВЫБРАТЬ) языка SQL предназначен для выборки информации из таблиц базы данных. Синтаксис оператора SELECT выглядит следующим образом.

SELECT [DISTINCT] <список атрибутов>

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

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

[group by <список атрибутов>]

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

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

Получить сведения о студентах, не имеющих ни одной экзаменационной оценки, равной 4 и 5.

SELECT *

FROM EXAM_MARKS WHERE MARK NOT IN (4, 5);

ПОИСК.

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

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

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

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

Написать запрос, выбирающий из таблицы STUDENT сведения о студентах, у которых фамилии начинаются на букву "Р".

SELECT *

FROM STUDENT

WHERE SURNAME LIKE 'P%';

27 Sql: Выборка из нескольких таблиц.

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

Например, если необходимо получить фамилии студентов (таблица STUDENT) и для каждого студента - названия университетов (таблица UNIVERSITY), расположенных в городе, где живет студент, то необходимо получить все комбинации записей о студентах и университетах в обеих таблицах, в которых значение поля CITY совпадает. Это можно сделать с помощью следующего запроса.

SELECT STUDENT. SURNAME, UNIVERSITY.UNIV_NAME, STUDENT.CITY FROM STUDENT, UNIVERS ITY WHERE STUDENT.CITY= UNIVERSITY.CITY;

Приведенный выше запрос может быть записан иначе, с использованием ключевого слова JOIN.

SELECT STUDENT. SURNAME, UNIVERS ITY.UNIV_NAME, STUDENT.CITY FROM STUDENT INNER JOIN UNIVERSITY

ON STUDENT.CITY= UNIVERSITY.CITY;

запрос

SELECT * FROM STUDENT JOIN UNIVERSITY;

эквивалентен запросу

SELECT * FROM STUDENT, UNIVERSITY;

28 Sql:Агрегатные функции.

Агрегирующие функции позволяют получать из таблицы сводную (агрегированную) информацию, выполняя операции над группой строк таблицы

• COUNT определяет количество строк или значений поля, выбранных посредством запроса, и не являющихся NULL-значениями;

• SUM - вычисляет арифметическую сумму всех выбранных значений данного поля;

• AVG вычисляет среднее значение для всех выбранных значений данного поля;

• МАХ вычисляет наибольшее из всех выбранных значений данного поля;

• MIN вычисляет наименьшее из всех выбранных значений данного поля.

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

SELECT STUDENT_ID, MAX (MARK) FROM EXAM_MARKS GROUP BY STUDENT_ID;

Если команды модификации могут выполняться в представлении, то представление является обновляемым (модифицируемым); в противном случае оно предназначено только для чтения при запросе. Критерии обновляемости представления можно сформулировать следующим образом.

• Представление строится на основе одной и только одной базовой таблицы.

• Представление должно содержать первичный ключ базовой таблицы.

• Представление не должно иметь никаких полей, которые представляют собой агрегирующие функции.

• Представление не должно содержать DISTINCT в своем определении.

• Представление не должно использовать GROUP BY или HAVING в своем определении.

• Представление не должно использовать подзапросы.

• Представление может быть использовано в другом представлении, но это представление должно быть также модифицируемыми.

• Представление не должно использовать в качестве полей вывода константы или выражения значений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]