Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
57
Добавлен:
23.05.2015
Размер:
102.4 Кб
Скачать
    • In ( x1, x2, x3, …) – равен любому элементу из списка

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

    • Between (X1, X2) – значение между X1 и X2

Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and B, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы.

    • Like (“XXX”) – символьное значение включает указанную последовательность

Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл.

    • Is Null – заданное поле не определено

Поиск неопределенных значений IS NULL (не определено)

ПРИМЕРЫ:

SELECT * From Сотрудники Where Подразделение = ‘Кафедра ТОИ’

SELECT Фамилия, имя, отчество From Сотрудники Where Подразделение = ‘Кафедра ТОИ’ AND Должность = ‘Профессор’

Получить сведения о студентах, получивших оценки только 4 и 5.

SELECT USP.SNUM, USP.UDATE, USP.MARK, STUDENTS.SFAM

FROM USP, STUDENTS

WHERE USP.SNUM=STUDENTS.SNUM AND (USP.MARK) IN (4,5)

Показать список студентов, которые получают стипендию в диапазоне 1500-2500 рублей.

SELECT STUDENTS.SNUM, STUDENTS.SFAM, STUDENTS.STIP

FROM STUDENTS

WHERE STUDENTS.STIP BETWEEN 1500 AND 2000

Показать списки студентов с отчеством, начинающимся на «Ни*».

SELECT SNUM, SFAM, SNAME, SFATH

FROM STUDENTS

WHERE STUDENTS.SFATH LIKE "Ни*"

(5) Order by - порядок вывода найденных записей (ASC/DESC – возрастание или убывание, по умолчанию по убыванию)

В части ORDER BY задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующем отношении.

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

SELECT Фамилия, имя, отчество, должность From Сотрудники Order by Фамилия

SELECT TOP 3 Название, Руководитель FROM Отделы Order by Численность

SELECT Фамилия, должность FROM Сотрудники Where Год рождения>1970 Order by Дата рождения

Агрегирование данных – SUM, MAX, MIN, AVG, COUNT

ПРИМЕРЫ:

SELECT SUM(Зарплата) AS Суммарная зарплата From Сотрудники

SELECT AVG(DATA() – Дата_рождения) AS Средний_возраст From Сотрудники

SELECT COUNT(*) AS Общее_число_сотрудников FROM Сотрудники

SELECT MAX(ВЫПЛАТЫ) AS Максимальный_доход_сотрудника From Сотрудники

SELECT MIN(Дата_рождения), MAX(Дата_рождения) From Сотрудники WHERE Должность = ‘Профессор’

(6) GROUP – объединение повторяющихся значений в группы (необязательное поле).

        • GROUP BY [таблица.]столбец [,[таблица.]столбец]...

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

Например, сведения о выплатах сотрудникам кафедры ТОИ

SELECT Фамилия, имя, отчество, Count(*), MAX(Сумма), MIN(Сумма), SUM(Сумма) From Список выплат Where Подразделение = ‘Кафедра ТОИ’ GROUP BY Фамилия, имя, отчество (или GROUP BY Табельный номер)

(7) Having – наложение дополнительных условий на уже выбранные (вычисленные) данные (внутри Group By) (необязательное поле)

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

ПРИМЕРЫ:

SELECT Фамилия, имя, отчество, Count(*), MAX(Сумма), MIN(Сумма), SUM(Сумма) From Список выплат Where Подразделение = ‘Кафедра ТОИ’ GROUP BY Фамилия, имя, отчество (или GROUP BY Табельный номер) Having COUNT(*) > 10