SQL. Выборка данных. Простейшие selectзапросыselect distinct
Скачать 0.51 Mb.
|
ВЫБОРКА ДАННЫХ (ОПЕРАТОР SELECT). Простейшие SELECT-запросы SELECT [DISTINCT] <список атрибутов> - % Ключевое слово SELECT -запрос на извлечение информации. FROM <список таблиц> - % указывается список таблиц через запятую, из которых извлекается информация [ WHERE <условие выборки >] - % задает выражение условий [ ORDER BY <список атрибутов>] - % упорядочивает выводимые записи в соответствии со значениями столбцов [ GROUP BY < список атрибутов >] - % группирует записи в подмножества [ HAVING <условие>] - % осуществляет фильтрацию групп [ UNION <выражение с оператором SELECT>]; - % объединение данных двух и более SQL-запросов После слова SELECT через запятую перечисляются наименования полей (список атрибутов), содержимое которых запрашивается. ПРИМЕР: SELECT NAME, SURNAME FROM STUDENT; Если необходимо вывести все поля таблицы, то используем * ПРИМЕР: SELECT * FROM STUDENT; DISTINCT запрос «Получить список названий городов, где проживают студенты, сведения о которых находятся в таблице STUDENT», можно записать в следующем виде. ПРИМЕР 1 SELECT CITY FROM STUDENT; DISTINCT исключает дубликаты строк, в которых значения всех выбранных полей идентичны. ПРИМЕР 2 SELECT DISTINCT CITY FROM STUDENT; ALL (все), в отличие от DISTINCT, оказывает противоположное действие, используется по умолчанию Использование ключевого слова WHERE WHERE (где ), позволяет задавать выражение условия (предикат), принимающее значение истина или ложь для значений полей строк таблиц, к которым обращается оператор 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; Операторы IN, BETWEEN, LIKE, is NULL Используются в предложении WHERE операторы сравнения «=, <, >, <=, >=, <>» и операторы IN, BETWEEN и LIKE ни в коем случае нельзя использовать для проверки содержимого поля на наличие в нем пустого значения NULL Оператор IN (равен любому из списка) используются для сравнения проверяемого значения поля с заданным списком Построенный с использованием IN предикат (условие) счи- тается истинным , если значение поля, имя которого указано слева от IN , совпадает (подразумевается точное совпадение) с одним из значений, перечисленных в списке, указанном в скобках справа от IN Пример 1 . Получить из таблицы EXAM_MARKS сведения о студентах, имеющих экзаменационные оценки только 4 и 5. SELECT * FROM EXAM_MARKS WHERE MARK IN (4, 5 ) ; Оператор NOT IN (не равен ни одному из списка) Предикат, построенный с использованием NOT IN , считается истинным, если значение поля, имя которого указано слева от NOT IN , не совпадает ни с одним из значений, перечисленных в списке, указанном в скобках справа от NOT IN ПРИМЕР 2. Получить сведения о студентах, не имеющих ни одной экзаменационной оценки, равной 4 и 5. SELECT * FROM EXAM_MARKS WHERE MARK NOT IN (4, 5 ) ; Оператор BETWEEN используется для проверки условия вхождения значения поля в заданный интервал, то есть вместо списка значений атрибута этот оператор задает границы его изменения ПРИМЕР: запрос на вывод записей о предметах, на изучение которых отводится количество часов, находящееся в пределах между 30 и 40, имеет вид: SELECT * FROM SUBJECT WHERE HOUR BETWEEN 30 AND 40; !!! значения 30 и 40, входят во множество значений !!! оператор BETWEEN может использоваться как для числовых, так и для символьных типов полей. Оператор LIKE применим только к символьным полям типа CHAR или VARCHAR. Этот оператор просматривает строковые значения полей с целью определения, входит ли заданная в операторе LIKE подстрока ( образец поиска ) в символьную строку-значение проверяемого поля: • символ подчеркивания «_» , указанный в шаблоне, определяет возможность наличия в указанном месте одного любого символа ; • символ «%» допускает присутствие в указанном месте проверяемой строки последовательности любых символов произвольной длины Оператор LIKE Пример Написать запрос, выбирающий из таблицы STUDENT сведения о студентах, фамилии которых начинаются на букву «Р» SELECT * FROM STUDENT WHERE SURNAME LIKE 'P%'; Числовые, символьные и строковые константы SELECT ‘Фамилия’, SURNAME, ‘Имя’, NAME, 100 FROM STUDENT; Арифметические операции для преобразования числовых данных • Унарный (одиночный) оператор «—» (знак минус) изменяет знак числового значения, перед которым он указан, на противоположный. • Бинарные операторы «+», «—», «*» и «/» предоставляют возможность выполнения арифметических операций сложения, вычитания, умножения и деления. ПРИМЕР: SELECT SURNAME, NAME, STIPEND, - (STIPEND*KURS)/2 FROM STUDENT WHERE KURS = 4 AND STIPEND > 0; Операция конкатенации строк Операция конкатенации «||» позволяет соединять значения двух или более столбцов символьного типа или символьных констант в одну строку. синтаксис <значимое символьное выражение > {||} <значимое символьное выражение> . ПРИМЕР: SELECT SURNAME ||_|| NAME AS ‘ ФИ’ , STIPEND FROM STUDENT WHERE KURS = 4 AND STIPEND > 0; ФИ УПРАЖНЕНИЯ ЧАСТЬ 1 УПРАЖНЕНИЯ ЧАСТЬ 1 (продолжение) УПРАЖНЕНИЯ ЧАСТЬ 2 |