
- •Язык запросов sql
- •Введение в sql(0-0)
- •Аннотация к лекции
- •Краткая история развития sql
- •Возможности языка
- •Основы sql
- •Типы данных sql
- •Литералы
- •Операторы и выражения
- •Именование объектов
- •Комментарии
- •Итоги лекции
- •Простейшие запросы (0-0)
- •Аннотация к лекции
- •О предложении select
- •Основные фразы – select и from
- •Фраза select
- •Синтаксис фразы select
- •Указание выводимых столбцов
- •Исключение повторяющихся строк
- •Использование вычисляемых выражений
- •Переопределение имен результирующих столбцов
- •Включение литералов в результат запроса
- •Вывод результатов в файл
- •Фраза from
- •Синтаксис фразы from
- •Синонимы таблиц
- •Запрос в качестве имени таблицы
- •Итоги лекции
- •Отбор строк по условию (0-0)
- •Аннотация к лекции
- •Простейшие условия
- •Операторы сравнения
- •Логические операторы
- •Использование выражений над столбцами
- •Специальные операторы
- •Проверка на принадлежность множеству
- •Проверка на принадлежность диапазону значений
- •Проверка на соответствие шаблону
- •Проверка на неопределенное значение
- •Итоги лекции
- •Многотабличные запросы (0-0)
- •Аннотация к лекции
- •Декартово произведение таблиц
- •Условие соединения
- •Соединение таблиц по равенству
- •Соединение таблиц по неравенству
- •Самосоединение таблицы
- •Внешнее соединение таблиц
- •Соединение с использованием фразы from
- •Итоги лекции
- •Использование функций (0)
- •Аннотация к лекции
- •Агрегатные функции
- •Однострочныефункции
- •Строковые функции
- •Числовые функции
- •Временные функции
- •Функции преобразования
- •Итогилекции(урока)
- •Группировка и сортировка (0)
- •Аннотация к лекции
- •Запросы с группировкой строк
- •Понятие группировки строк
- •Группировка по одному столбцу
- •Группировка по нескольким столбцам
- •Использование выражений
- •Условиеотборагрупп
- •Сортировка строк
- •Сортировка по столбцу или выражению
- •Сортировка по нескольким столбцам или выражениям
- •Итоги лекции
- •Множественные операции над таблицами (0-0)
- •Аннотация к лекции
- •Множественные операции в стандарте sql
- •Объединение таблиц
- •Пересечение таблиц
- •Разность таблиц
- •Дополнительные аспекты использования множественных операций
- •Множественные операции и группировка
- •Множественные операции и сортировка
- •Итоги лекции
- •Определение таблиц и представлений (0-0)
- •Аннотация к лекции
- •Создание таблицы
- •Изменениетаблицы
- •Возможности изменения таблиц
- •Добавление столбца
- •Изменение определения столбца
- •Удаление столбца
- •Переименование таблицы
- •Удаление таблицы
- •Определение индексов
- •Представления
- •Итоги лекции
- •Манипулирование данными (0-0)
- •Аннотация к лекции
- •Добавление новых строк
- •Варианты добавления строк
- •Вставка отдельных строк
- •Использование запроса при вставке строк
- •Вставка значений по умолчанию
- •Обновление существующих данных
- •Удаление существующих строк
- •Импорт и экспорт данных
- •Итоги лекции
- •Определение ограничений целостности, ключей, задание прав доступа к данным (0-18)
- •Аннотация к лекции
- •Виды ограничений целостности
- •Ограничение на отсутствие значения
- •Ограничениеуникальности
- •Ограничение первичного ключа
- •Ограничение ссылочной целостности
- •Изменение ограничений целостности
- •Итоги лекции
- •Программирование бд (19)
Создание таблицы
Таблицы базы данных создаются в SQL с помощью предложения CREATE TABLE, которое позволяет определить имя таблицы, столбцы таблицы и ограничения целостности. Определение столбцов мы рассмотрим в этой лекции, а ограничение целостности в одной из следующих лекций.
В минимальном варианте при создании таблицы определяется имя таблицы и набор имен столбцов, указанных в определенном порядке и имеющих указанный тип.
Синтаксис предложения CREATE TABLE поддерживает следующую минимальную форму:
CREATE TABLE имя_таблицы (
имя_столбца тип_данных[,
имя_столбца тип_данных]...);
где тип данных должен принадлежать к одному из типов, поддерживаемых СУБД.
Описание таблицы FACULTY может быть представлено в следующем виде:
Запрос.
CREATE TABLE FACULTY (
FacPK INTEGER.
Name VARCHAR(300),
Dean VARCHAR(20),
Building CHAR(5),
Fund NUMBER(7, 2));
В результате создается пустая таблица FACULTY.
Когда вы вставляете строку в таблицу без указания в ней значений для столбца, SQL должен знать, что именно необходимо вставить вместо отсутствующего значения. Это так называемое значение по умолчанию. Общепринятым значением по умолчанию является NULL. Это – значение по умолчанию для любого столбца, которому не было дано ограничение NOT NULL.
Значение по умолчанию указывается фразой DEFAULT с использованием следующего синтаксиса:
имя_столбца тип_данных DEFAULT значение_по_умолчанию
где значение по умолчанию представляет собой константу, соответствующую типу данных определяемого столбца. Например, если мы хотим, чтобы значение по умолчанию при задании фонда факультета было равно 0, тогда определение этого столбца с учетом использования домена будет иметь следующий вид:
Fund NUMBER(7, 2) DEFAULT 0
Изменениетаблицы
Возможности изменения таблиц
SQL предоставляет возможность изменить определение таблицы. Это делается командой ALTER TABLE. Стандарт SQL позволяет производить следующие изменения в определении таблицы (об изменениях, связанных с описанием ограничений целостности см. следующие лекции):
добавлять в таблицу определение нового столбца;
изменять значение по умолчанию;
удалять столбец из таблицы.
Многие СУБД расширяют функции этого предложения, вводя, например, следующие возможности:
изменение имени таблицы;
изменение типа столбца.
Добавление столбца
Для добавления столбца существует следующий синтаксис:
ALTER TABLE имя_таблицы ADD (
определение_столбца[,
определение столбца]…);
Пример:
ALTER TABLE FACULTY ADD
DEPUTY_DEAN varchar(20) DEFAULT ‘’
Изменение определения столбца
Стандарт SQLпозволяет добавлять и удалять значения столбцов по умолчанию. Это делается с использованием следующих предложенийALTER:
ALTERTABLEимя_таблицыALTER[COLUMN]
SET DAFAULT значение
или
ALTER TABLE имя_таблицы ALTER [COLUMN]
DROPDEFAULT
Многие СУБД расширяют возможности по изменению определения столбцов, допуская дополнительно изменение их типов и/или размеров. Как правило, если таблица пустая, СУБД позволяет производить любые переопределения столбцов таблицы. Однако имеются существенные ограничения на изменения описания столбцов, например, если это относится к замене типов данных в том случае, когда таблица уже содержит строки данных. Каждая СУБД поддерживает свои правила допустимости преобразований типов данных, и они используются в том случае, когда такие изменения предполагаются командой ALTER TABLE по отношению к непустой таблице.
В Oracle синтаксис предложения для изменения определения столбцов следующий:
ALTER TABLE имя_таблицы MODIFY (
имя_столбца [тип_данных] [DEFAULT значение][,
имя_столбца [тип_данных] [DEFAULT значение]]...);
Приведем пример переопределения столбцов, в котором для столбца Deputy_Deanизменяется максимально допустимый его размер и вводится значение по умолчанию, а для столбца Floor меняется тип, длина и значение по умолчанию.
ALTER TABLE FACULTY MODIFY
(Deputy_Dean varchar(30) DEFAULT 'ЗНАЧЕНИЕ ОТСУТСТВУЕТ',
Floor varchar(3) DEFAULT '000');