КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Простейшие SELECT-запросыОператор SELECT (ВЫБРАТЬ) языка SQL является самым важным и наиболее часто используемым оператором. Он предназначен для выборки информации из таблиц базы данных. Упрощенный синтаксис оператора SELECT выглядит следующим образом. SELECT [DISTINCT] <список выражений над атрибутами и константами> [WHERE <условие выборки ] [GROUP BY <скисок итрибутов>] [HAVING <условие>] [UNION <выражение с оператором SELECT>] [ORDER BY <список атрибутов>]; В квадратных скобках указаны элементы, которые могут отсутствовать в запросе. Ключевое слово SELECT сообщает базе данных, что данное предложение является запросом на выборку информации. После слова SELECT через запятую перечисляются наименования полей (список атрибутов), содержимое которых запрашивается. Обязательным ключевым словом в предложении-запросе SELECT является слово FROM (ИЗ). За ключевым словом FROM указывается список разделенных запятыми имен таблиц, из которых извлекается информация. Например, SELECT NAME, SURNAME FROM STUDENT; Любой SQL-запрос должен заканчиваться символом ";" (точка с запятой). Приведенный запрос осуществляет выборку всех значений полей NAME и SURNAME из таблицы STUDENT. Его результатом является таблица: Порядок следования столбцов в этой таблице соответствует порядку полей NAME и SURNAME, указанному в запросе; а не их порядку во входной таблице STUDENT. Если необходимо вывести значения всех столбцов таблицы, то можно вместо перечисления их имен использовать символ "*" (звездочка).
SELECT * FROM STUDENT;
В данном случае в результате выполнения запроса будет получена вся таблица STUDENT. Еще раз обратим внимание на то, что получаемые в результате SQL-запроса таблицы не в полной мере отвечают определению реляционного отношения. В частности, в них могут оказаться кортежи с одинаковыми значениями атрибутов. Например, запрос "Получить список названий городов, где проживают студенты, сведения о которых находятся в таблице STUDENT", можно записать в следующем виде:
SELECT ClTY FROM STUDENT;
Его результатом будет таблица Видно, что в таблице встречаются одинаковые строки (выделены жирным шрифтом). Для исключения из результата SELECT-запроса повторяющихся записей используется ключевое слово DISTINCT (ОТЛИЧНЫЙ). Если запрос SELECT извлекает множество полей, то DISTINCT исключает дубликаты строк, в которых значения всех выбранных полей идентичны. Запрос "Определить список названий различных-roponoa, где проживают студенты, сведения о которых находятся в таблице STUDENT" можно записать в следующем виде. SELECT DISTINCTCITY FROM STUDENT;
В результате получим таблицу, в которой дубликаты строк исключены: Ключевое слово ALL (ВСЕ), в отличие от DISTINCT, оказывает противоположное действие, т. е. при его использовании повторяющиеся строки включаются в состав выходных данных. Режим, задаваемый ключевым словом ALL, действует по умолчанию, поэтому в реальных запросах для этих целей оно практически не используется. Использование в операторе SELECT предложения, определяемого ключевым словом WHERE (ГДЕ), позволяет задавать выражение- условия (предикат), принимающее значение истина или ложь (а также неизвестно при использовании NULL) для значений полей строк таблиц, к которым обращается оператор SELECT. Предложение WHERE определяет, какие строки указанных таблиц должны быть выбраны. В таблицу, являющуюся результатом запроса, включаются только те строки, для которых условие (предикат); указанное в предложении WHERE, принимает значение истина. Пример. Написать запрос, выполняющий выборку имен (NAME) всех студентов с фамилией (SURNAME) Петров, сведения о которых находятся в таблице STUDENT.
SELECT SURNAME, NAME FROM STUDENT WHERE SURNAME = 'Петров'
Результатом этого запроса будет таблица
В задаваемых в предложении WHERE условиях могут использоваться операции сравнения, определяемые следующими операторами: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно), а также логические операторы AND, ORи NOT. Например, запрос для получения имен и фамилий студентов, обучающихся на третьем курсе и получающих стипендию (размер стипендии больше нуля) будет выглядеть таким образом:
SELECT NAME, SURNAME FROM STUDENT WHERE (KURS = 3 AND STIPEND > 0);
Результат выполнения этого запроса имеет вид:
|