
- •Язык запросов 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)
Итоги лекции
Усвоив материал этой лекции, студенты научились:
определять таблицы базы данных;
изменять определение таблицы;
удалять определение таблицы;
создавать индексы;
удалять индексы;
определять представления;
удалять представления.
Манипулирование данными (0-0)
Аннотация к лекции
В предыдущих уроках мы изучили возможности SQL по описанию структур таблиц базы данных. В этой лекции мы рассмотрим, каким образом осуществляется ведение данных в базе. Под ведением, или манипулированием, подразумевается ввод данных в базу данных, их редактирование и удаление. В теории баз данных эта составляющая называется языком манипулирования данными– ЯМД. В SQL имеются четыре предложения манипулирования данными:
INSERT– вставка данных;
UPDATE– обновление существующих данных;
MERGE– вставка или обновление данных таблицы на основе строк, отобранных из другой таблицы;
DELETE– удаление строк из таблиц.
Использование этих предложений по отношению к базовым таблицам является предметом данной лекции.
Добавление новых строк
Варианты добавления строк
Предложение INSERT вставляет строки в таблицу базы данных. Есть три разновидности этой команды:
INSERT VALUES
INSERT SELECT
INSERT DEFAULT VALUES
Первая из них производит вставку в таблицу явно заданной строки, вторая разновидность – вставку группы строк, выбранных в результате выполнения запроса, а третья – вставку значений по умолчанию.
Вставка отдельных строк
Предложение INSERT... VALUES выполняет вставку в таблицу одной строки. Его удобно использовать для небольших операций, когда в таблицу нужно вставить несколько строк. Синтаксис этого предложения следующий:
INSERT INTO имя_таблицы [(имя_столбца[, имя_столбца]...)]
VALUES (значение[, значение]...);
Этот формат предполагает указания имени таблицы, в которую производится вставка, списка имен столбцов, в которые будут вставляться значения, и списка собственно вставляемых в строку значений. При этом следует придерживаться следующих правил:
вставляемые данные должны согласовываться с типами данных указанных столбцов;
размеры данных должны соответствовать размерам столбцов;
порядок данных во фразе VALUESдолжен соответствовать порядку перечисления столбцов.
Ниже приводится пример вставки одной строки в таблицу FACULTY:
INSERT INTO FACULTY (FacPK, Name, Dean, Building, Fund)
VALUES(1, 'информатика', 'Сидоров'. '6', 25000);
В этом примере мы перечислили столбцы в том порядке, в каком они были определены при создании таблицы, однако это не обязательно. При желании порядок перечисления имен столбцов в команде INSERTможно изменить.
Список имен столбцов может быть не полным. Можно указывать только те из них, значения которых известны для вставляемой строки, Столбцы, отсутствующие в списке, будут принимать значения по умолчанию (или NULL) для вводимой строки.
В качестве вставляемых значений могут использоваться выражения. Например, можно ввести следующую строку в таблицу TEACHER:
INSERT INTO TEACHER (TchPK, DepFK, Name, Salary, Rise, HireDate)
VALUES(77, NULL, 'Коробов', 1271, 1271 / 3,GETDATE());
Здесь мы указали, что надбавка равна третьей части ставки (1271 / 3), а дата приема на работу – текущая дата.
Если в списке VALUES присутствуют значения всех столбцов таблицы и в том порядке, в котором они были определены, список имен столбцов может отсутствовать. Приведем пример:
INSERT INTO FACULTY
VALUES (33. 'Карпов1, 'лингвистика'. 27660. '3/7');