
- •Конспект лекций
- •Часть 3 «Язык запросов sql»
- •5.080406 – «Эксплуатация систем обработки информации и принятия решения»
- •Введение
- •Лекция 1 «Введение в структурированный язык запросов sql»
- •2 Введение в технологию клиент-сервер
- •3 Типы команд sql
- •4 Преимущества языка sql
- •2 Строки
- •3 Числа
- •4 Логические данные
- •5 Дата и время
- •6 Интервалы
- •2 Изменение таблицы
- •3 Удаление таблицы
- •4 Индексы
- •1 Ограничения для таблиц
- •2 Внешние ключи
- •1 Ограничения для таблиц
- •2 Внешние ключи
- •2 Оператор from
- •3 Оператор where
- •3.1 Сравнение
- •3.2 Диапазон
- •3.3 Принадлежность множеству
- •3.4 Соответствие шаблону
- •3.5 Значение null
- •2 Использование итоговых функций
- •3 Предложение group by
- •4 Предложение having
- •2 Использование подзапросов, возвращающих единичное значение
- •3 Использование операций in и not in
- •4 Использование ключевых слов any и all
- •5 Использование операций exists и not exists
- •1 Определение представления
- •2 Обновление данных в представлениях
- •1 Определение представления
- •2 Обновление данных в представлениях
6 Интервалы
Интервал представляет собой разность между двумя значениями типа дата-время. SQL поддерживает два типа интервалов: год-месяц и день-время. Интервал типа год-месяц – это количество лет и месяцев между двумя датами, а интервал день-время – количество дней, часов, минут и секунд между двумя моментами в пределах одного месяца. Нельзя смешивать вычисления, использующие интервал год-день, с вычислениями, в которых используется интервал день-время.
Интервал времени можно задать двумя способами: в виде начального и конечного моментов или в виде начального момента и длительности, например:
– (TIME '12:25:30', TIME '14:30:00' ) – Интервал, заданный начальным и конечным моментами;
– (TIME '12:45:00', INTERVAL '5' HOUR) – Интервал, заданный начальным моментом и длительностью в часах.
Чтобы задать значение типа интервал, используется такой синтаксис:
INTERVAL 'длина' YEAR | MONTH | DAY | HOUR | MINUTE | SECOND
Здесь длина – длина интервала, после которой указывается единица измерения (возможные значения указаны через вертикальную черту):
– YEAR – ГОД;
– month – месяц;
– day – день;
– hour – час;
– minute – минута;
– second – секунда.
Например, для задания интервала длиной 15 дней следует использовать выражение interval '15' day.
Лекция 3 «Проектирование таблиц базы данных»
План
1 Создание таблицы
2 Изменение таблицы
3 Удаление таблицы
4 Индексы
1 Создание таблицы
После создания общей структуры базы данных можно приступить к созданию таблиц, которые представляет собой отношения, входящие в состав проекта базы данных.
Базовый синтаксис оператора создания таблицы имеет следующий вид:
CREATE TABLE имя_таблицы
(имя_столбца тип_данных [NULL | NOT NULL ] [,...n])
Главное в команде создания таблицы – определение имени таблицы и описание набора имен полей, которые указываются в соответствующем порядке. Кроме того, этой командой оговариваются типы данных и размеры полей таблицы.
Ключевое слово NULL используется для указания того, что в данном столбце могут содержаться значения NULL. Значение NULL отличается от пробела или нуля – к нему прибегают, когда необходимо указать, что данные недоступны, опущены или недопустимы. Если указано ключевое слово NOT NULL, то будут отклонены любые попытки поместить значение NULL в данный столбец. Если указан параметр NULL, помещение значений NULL в столбец разрешено. По умолчанию стандарт SQL предполагает наличие ключевого слова NULL.
Мы использовали упрощенную версию оператора CREATE TABLE стандарта SQL. Его полная версия приводится при обсуждении вопросов обеспечения целостности данных.
Пример 3.1. Создать таблицу для хранения данных о товарах, поступающих в продажу в некоторой торговой фирме. Необходимо учесть такие сведения, как название и тип товара, его цена, сорт и город, где товар производится.
CREATE TABLE Товар
(Название VARCHAR(50) NOT NULL,
Цена MONEY NOT NULL,
Тип VARCHAR(50) NOT NULL,
Сорт VARCHAR(50),
ГородТовара VARCHAR(50))
Пример 3.2. Создать таблицу для сохранения сведений о постоянных клиентах с указанием названий города и фирмы, фамилии, имени и отчества клиента, номера его телефона.
CREATE TABLE Клиент
(Фирма VARCHAR(50) NOT NULL,
Фамилия VARCHAR(50) NOT NULL,
Имя VARCHAR(50) NOT NULL,
Отчество VARCHAR(50)
ГородКлиента VARCHAR(50)
Телефон CHAR(10) NOT NULL)