- •«Операторы модификации данных языка t-sql»
- •230104, 230201 И направления 230200
- •1 Общие методические указания по выполнению лабораторной работы
- •2 Теоретический материал для домашнего изучения
- •3 Домашнее задание
- •4 Методические указания по выполнению лабораторной работы
- •5 Контрольные вопросы
- •6 Варианты заданий
- •7 Список литературы
- •Методические указания
- •394026 Воронеж, Московский просп., 14
2 Теоретический материал для домашнего изучения
2.1 Команды манипулирования данными.
Команды применяются для манипулирования данными, содержащимися в объектах базы данных, для чего используются такие операторы, как SELECT, INSERT, UPDATE и DELETE. При помощи этих операторов можно соответственно выбирать строки с данными, объединять столбцы, вставлять новые строки, изменять имеющиеся строки и удалять ненужные строки.
2.1.1 Оператор INSERT
Оператор INSERT используется для добавления новой строки или строк в таблицу или представление.
Вставка строк. Структура запроса:
INSERT [INTO] имя_таблицы_получателя [(список_колонок)]
VALUES (список_значений)
Примечание: текстовые значения заключаются в одинарные кавычках, числовые – без кавычек.
Если необходимо пропустить какое-то значение при вводе, то нужно не указывать название соответствующей колонки в команде INSERT.
Пример:
INSERT издательства (издательство, адрес, [дата основания])
VALUES ('ВГТУ', 'Московский пр.14',1959)
Запрос добавит в таблицу издательства значения «ВГТУ» , «Московский пр.14» , «1959» в поля «Издательство» , «Адрес» , «Дата основания» соответственно. Поле «Рейтинг» в запросе не упомянуто, значит будет добавлено пустое значение.
Добавление строк из другой таблицы. Структура запроса:
INSERT [INTO] имя_таблицы_получателя [(список_колонок)]
SELECT [ALL | DISTINCT] [TOP n [PERCENT] ] список_колонок
FROM таблица_источник
[WHERE условие]
[ORDER BY столбцы_сортировки [ASC | DESC] ]
Примечание: предварительно нужно создать таблицу, для перенесения значений из др. таблицы.
Ключевое слово INTO и параметр список_колонок не являются обязательным. Параметр список_колонок указывает, в какие колонки вы помещаете данные; эти значения имеют взаимно-однозначное соответствие (по порядку) со значениями, указанными в выражении (которое может быть просто списком значений).
Пример:
INSERT INTO [новые книги]
SELECT *
FROM книги
WHERE DATEPART(year, [год издания]) >= 1991
Запрос перемещает информацию о новых книгах (изданных после 1991 года) в таблицу «Новые книги». Функция DATEPART возвращает значение года из поля «Год издания».
2.1.2 Оператор UPDATE
Оператор UPDATE используется для модифицирования или обновления существующих данных.
Структура запроса.
UPDATE имя_ таблицы
SET имя_колонки = выражение
[FROM источник_для_таблицы]
[WHERE условие_отбора_значений]
Примечание: при заданном условии WHERE, обновляются только соответствующие строки, иначе обновляются все строки.
Использование предложения FROM
Оператор UPDATE позволяет использовать предложение FROM для указания таблицы, которая будет использоваться как источник данных при модифицировании. Иначе говоря, если при обновлении используются данные из нескольких таблиц, во FROM перечисляются все эти таблицы, а названия колонок содержат названия таблиц – таблица1.колонка1.
В список источников таблиц могут включаться имена таблиц, имена представлений, функции rowset, производные таблицы и связанные таблицы. Источником может быть даже таблица, находящаяся в процессе модифицирования.
Пример:
UPDATE авторы
SET [число произведений] = авторы.[число произведений] + книги.[количество страниц]
FROM авторы, книги
При выполнении запроса значения столбца число произведений таблицы авторы будут равны сумме текущих значений и значений столбца количество страниц таблицы книги.
2.1.3 Оператор DELETE
Оператор DELETE используется для удаления строки или строк из таблицы или представления. DELETE не влияет на определение таблицы; он просто удаляет из таблицы строки данных.
Структура запроса.
DELETE [FROM] имя_ таблицы | имя_представления
[FROM источники_для_таблицы]
WHERE условие_отбора
Первое ключевое слово FROM не является обязательным, как и второе предложение FROM. Строки не удаляются из источников для таблицы во втором предложении FROM; они удаляются только из таблицы или представления, указанного после DELETE.
Удаление отдельных строк
Используя предложение WHERE вместе с DELETE, вы можете указывать определенные строки для удаления из таблицы. Например, чтобы удалить из таблицы авторы все строки со значением английский в колонке язык, выполните следующий оператор:
DELETE FROM авторы
WHERE язык = 'английский'
Вы можете использовать второе предложение FROM с одним или несколькими источниками для таблицы, чтобы указать другие таблицы и представления, которые можно использовать в условии поиска WHERE. Например, чтобы удалить из таблицы авторы строки, соответствующие строкам в таблице new_table, выполните следующий оператор:
DELETE авторы
FROM new_table
WHERE авторы.язык = new_table.язык
Удаление всех строк
Чтобы удалить из таблицы все строки, используйте оператор DELETE без предложения WHERE. Следующий оператор DELETE удалит все строки в таблице авторы:
DELETE FROM авторы
Таблица авторы станет пустой.