Цель занятия: Изучить команды формирования запросов к базе данных (SELECT) .
Команда SELECT позволяет реализовывать все операторы реляционной алгебры над отношениями (таблицами) базы данных. Обязательными предложениями команды SELECT являются предложения SELECT и FROM. В самой простой форме, команда SELECT используется для того, чтобы извлечь информацию из таблицы. Не обязательно использовать все предложения команды, но обязательно соблюдать их порядок следования, то есть предложение ORDER BY всегда завершает команду SELECT, а предложение HAVING всегда стоит после GROUP BY, которое в свою очередь не может предшествовать предложению WHERE и т.п.
Команда SELECT позволяет извлечь определенную информацию из таблицы. Например, просмотреть содержимое одного или нескольких столбцов, присвоив столбцам вывода имена отличные от имен атрибутов в таблице, но более информативные. Чтобы вывести содержание всех столбцов, можно заменить их перечисление знаком *. В этом случае столбцы будут выведены в том порядке, в котором они следуют в таблице. Если вы хотите изменить порядок, то придется перечислить имена столбцов в нужном порядке.
Предложение FROM используется для указания перечня таблиц, используемых в запросе и условия их соединения.
Пример 39
Задача.
Вывести все записи из отношения Progress.
Решение.
1 вариант:
SELECT * FROM Progress;
Результат реализации запроса:
2 вариант:
SELECT IDReport, IDSubject, NRecordBook, NTerm, PIN, Mark
FROM Progress;
Результат реализации запроса:
Пример 40
Задача.
Вывести названия предметов из таблицы Subject.
Решение.
SELECT NameSubject
FROM Subject ;
Результат реализации запроса:
Пример 41
Задача.
Вывести список студентов из таблицы Student, присвоив столбцу вывода имя ФИО.
Решение.
SELECT StName ФИО
FROM Student;
Результат реализации запроса:
Отдельно следует остановиться на предложении DISTINCT, которое позволяет вывести уникальные значения на множестве атрибутов, заданном в предложении SELECT.
Пример 42
Задача.
Вывести значения оценок, которые когда-либо выставлялись студентам.
Решение.
SELECT Mark Оценка
FROM Progress;
Результат реализации запроса:
Результатом этого запроса будет множество повторяющихся значений оценок, в то время как нас интересует только их присутствие в исходном множестве, поэтому целесообразно этот запрос выполнить следующим образом: