- •Изменение существующей таблицы
- •Ограничение на множество допустимых значений
- •Уникальность как ограничение на столбец
- •Уникальность как ограничение таблицы
- •Присвоение имен ограничениям
- •Ограничение первичных ключей
- •Составные первичные ключи
- •Проверка значений полей check
- •Выборка данных. Оператор select
- •Операторы in, between, like, is null
- •Преобразование вывода и встроенные функции
- •Функции преобразования строк
Операторы in, between, like, is null
Данные операторы используются при задании логического выражения в предложении WHERE. Оператор IS NULL (является пустым) и IS NOT NULL (является не пустым) предназначены для проверки содержимого поля на наличие в нем пустого значения.
Запросы
Получить из таблицы EXAM_MARKS сведения о студентах, имеющих экзаменационные оценки 4 и 5:
SELECT *
FROM EXAM_MARKS
WHERE MARK IN (4, 5);
Получить из таблицы EXAM_MARKS сведения о студентах, не имеющих ни одной экзаменационной оценки, равной 4 и 5:
SELECT *
FROM EXAM_MARKS
WHERE MARK NOT IN (4, 5);
Получить список предметов, на изучение которых отводиться от 30 до 40 часов:
SELECT *
FROM SUBJECT
WHERE HOUR BETWEEN 30 AND 40;
Граничные значения (30 и 40) входят во множество значений.
Выбрать из таблицы сведения о студентах, фамилии которых начинаются на букву «Р»:
SELECT *
FROM STUDENT
WHERE SURNAME LIKE ‘P%’;
Оператор LIKE применим только к символьным полям.
Шаблоны:
Символ «_» определяет возможность наличия в указанном месте одного любого символа;
Символ «%» допускает присутствие в указанном месте последовательность любых символов произвольной длины.
В случае включения в шаблон самих символов «_» и «%» применяют escape-символ. Если escape-символ предшествует символу «_» и «%», то эти символы будут восприниматься буквально. Например, пусть задается образец поиска:
LIKE ‘_\_P’ ESCAPE ‘\’
В этом выражении символ ‘\’ с помощью ключевого слова ESCAPE объявляется escape-символом. Первый символ «_» в заданном шаблоне поиска ‘_\_P’ будет соответствовать, как и ранее, любому символу в проверяемой строке. Однако второй символ «_», следующий после символа ‘\’, объявленного escape-символом, уже будет интерпретироваться буквально как обычный символ.
Задание 4.
Вывести наименование предметов обучения, экзамены по которым сдавались между 10 и 20 января 1999 года.
Вывести наименование предметов обучения, экзамены по которым сданы студентами, имеющими идентификаторы 12 и 32.
Напишите запрос, который выполняет вывод названий предметов обучения, начинающихся на букву ‘И’.
Выбрать сведения о студентах, у которых имена начинаются на буквы «И» или «С».
Выбрать из таблицы EXAM_MARKS записи, в которых отсутствуют значения оценок (поле MARK).
Напишите запрос, выполняющий вывод из таблицы EXAM_MARKS записей, для которых в поле MARK проставлены значения оценок.
Преобразование вывода и встроенные функции
Арифметические операции для преобразования числовых данных: «+», «-», «*», «/»
Операция конкатенации строк: «||»
Синтаксис:
<значимое символьное выражение> {||} <значимое символьное выражение>
Функции преобразования символов в строке:
LOWER(<строка>) – перевод в строчные символы;
UPPER(<строка>) – перевод в прописные символы;
INITCAT - перевод первой буквы каждого слова строки в заглавную (прописную)
INITCAP(<строка >)
Например:
SELECT LOWER(SURNAME), UPPER(NAME)
FROM STUDENT
WHERE KURS = 4 AND STIPEND > 0;
Результат запроса будет выглядеть следующим образом:
SURNAME |
NAME |
Сидоров |
ВАДИМ |
Петров |
АНТОН |
|
|
Примеры запросов
Вывести список студентов 4 курса, получающих стипендию, и рассчитать для каждой записи выражение вида: -(стипендия*курс).2:
SELECT SURNAME, NAME, STIPEND, -(STIPEND*KURS)/2
FROM STUDENT
WHERE KURS=4 AND STIPEND>0;
Вывести фамилии и имена студентов 4 курса, получающих стипендию, в виде: ФАМИЛИЯ_ИМЯ:
SELECT SURNAME ||’_’|| NAME, STIPEND
FROM STUDENT
WHERE KURS=4 AND STIPEND>0;