- •Вопросы для подготовки к экзамену
- •1) Бд и файловые системы
- •2) Субд определение, функции
- •3) Субд определение, классификация
- •4) Бд основные определения, классификация
- •5) Объекты базы данных
- •Пользователи – лица, обладающие доступом к бд Роли позволяют объединять пользователей в группы
- •6) Физическая структура базы данных
- •7) Структурная часть реляционной модели
- •8) Фундаментальные свойства отношений
- •9) Реляционная алгебра Кодда
- •1. Оператор соединения
- •11) Этапы разработки бд
- •12) Нормальные формы отношений
- •13) Модель сущность-связь
- •14) Технология "клиент-сервер"
- •15) Обзор ms sql Server, клиентские приложения, системные таблицы
- •3. Утилиты командной строки
- •16) Основы языка sql, типы команд
- •17) Основной синтаксис оператора select
- •18) Построение нетривиальных запросов с использованием оператора select
- •19) Операторы dml
- •20) Операторы ddl
- •21) Операторы ddl (определение структуры таблицы)
- •22) Индексы в среде ms sql Server
- •23) Представления
- •24) Сценарии
- •25) Хранимые процедуры
- •26) Понятие функции
- •27) Триггеры
- •28) Курсоры
19) Операторы dml
DML (Data Manipulation Language) - язык манипулирования данными, который используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT, UPDATE, DELETE.
Оператор вставки
Оператор INSERT вставляет новые строки в таблицу. При этом значения столбцов могут представлять собой константы либо являться результатом выполнения подзапроса.
INSERT INTO <имя_таблицы> [(имя_столбца [,...n])]
{VALUES (значение[,...n])
| <SELECT_оператор>}
При вставке строки в таблицу проверяются все ограничения, наложенные на данную таблицу. Это могут быть ограничения первичного ключа или уникального индекса, проверочные ограничения типа CHECK, ограничения ссылочной целостности. В случае нарушения какого-либо ограничения вставка строки будет отвергнута.
Первая форма оператора INSERT с параметром VALUES предназначена для вставки единственной строки в указанную таблицу.
Список столбцов указывает столбцы, которым будут присвоены значения в добавляемых записях.
Список может быть опущен, тогда подразумеваются все столбцы таблицы (кроме автоинкрементных), причем в определенном порядке, установленном при создании таблицы.
Если в операторе INSERT указывается конкретный список имен полей, то любые пропущенные в нем столбцы должны быть объявлены при создании таблицы как допускающие значение NULL, за исключением тех случаев, когда при описании столбца использовался параметр DEFAULT.
Список значений должен следующим образом соответствовать списку столбцов:
количество элементов в обоих списках должно быть одинаковым;
должно существовать прямое соответствие между позицией одного и то же элемента в обоих списках, поэтому первый элемент списка значений должен относиться к первому столбцу в списке столбцов, второй – ко второму столбцу и т.д.
типы данных элементов в списке значений должны быть совместимы с типами данных
Преодолеть ограничение на вставку одной строки в операторе INSERT при использовании VALUES позволяет искусственный прием использования подзапроса, формирующего строку с предложением UNION ALL. Так если нам требуется вставить несколько строк при помощи одного оператора INSERT, можно написать:
INSERT INTO Products
SELECT ‘Стул’, 1200
UNION ALL
SELECT ‘Стол', 3000
UNION ALL
SELECT ‘Шкаф', 5000
Вторая форма оператора INSERT с параметром SELECT позволяет скопировать множество строк из одной таблицы в другую.
Предложение SELECT может представлять собой любой допустимый оператор SELECT. Вставляемые в указанную таблицу строки в точности должны соответствовать строкам результирующей таблицы, созданной при выполнении вложенного запроса.
Все ограничения, указанные выше для первой формы оператора SELECT, применимы и в этом случае.
Поскольку оператор SELECT в общем случае возвращает множество записей, то оператор INSERT в такой форме приводит к добавлению в таблицу аналогичного числа новых записей.
Оператор удаления
Оператор DELETE предназначен для удаления группы записей из таблицы.
DELETE FROM <имя_таблицы>[WHERE <условие_отбора>]
Здесь параметр имя_таблицы представляет собой либо имя таблицы базы данных.
Если предложение WHERE присутствует, удаляются записи из таблицы, удовлетворяющие условию отбора. Если опустить предложение WHERE, из таблицы будут удалены все записи, однако сама таблица сохранится.
Для удаления всех записей из таблицы также может использоваться оператор TRUNCATE TABLE <имя_таблицы>
Оператор обновления
Оператор UPDATE применяется для изменения значений в группе записей или в одной записи указанной таблицы.
UPDATE имя_таблицы
SET имя_столбца=<выражение>[,...n]
[WHERE <условие_отбора>]
Параметр имя_таблицы – это либо имя таблицы базы данных.
В предложении SET указываются имена одного и более столбцов, данные в которых необходимо изменить.
Предложение WHERE является необязательным. Если оно опущено, значения указанных столбцов будут изменены во всех строках таблицы. Если предложение WHERE присутствует, то обновлены будут только те строки, которые удовлетворяют условию отбора.
Выражение представляет собой новое значение соответствующего столбца и должно быть совместимо с ним по типу данных.