SQL-запросы на модификацию данных

Добавление новых записей в таблицу (INSERT)

Общий синтаксис:

а) вставка одной новой строки в таблицу:

INSERT [INTO] <таблица> [(столбцы)]

VALUES (значения)

б) вставка в таблицу одной или более строк из подзапроса:

INSERT [INTO] <таблица> [(столбцы)]

<SELECT запрос>.

Правила

1. Количество элементов в разделе «Столбцы» должно совпадать с количеством элементов в разделе «Значения»; типы данных должны совпадать либо допускать неявное преобразование.

2. Если раздел «Столбцы» отсутствует, раздел «Значения» должен содержать столько же значений, сколько всего столбцов в редактируемой таблице, кроме того, значения должны перечисляться в том же порядке, в каком объявлены столбцы таблицы.

3. В случае использования синтаксиса (б) подзапрос SELECT может быть адресован либо к этой же таблице, либо к другой таблице базы данных, либо к другой базе данных на сервере; структура и типы полей запроса должны соответствовать структуре и типам полей таблицы.

4. Если для некоторого столбца задано значение по умолчанию, в разделе «Значения» для этого столбца можно написать ключевое слово DEFAULT.

Примеры:

INSERT INTO detail (detail_name)

VALUES ('Подшипник')

INSERT INTO supply (supplier_id, supply_quantity, supply_cost,

supply_date, detail_id)

VALUES (4, 177, 453.45, '25.09.2009', 1)

INSERT supplier (supplier_type, supplier_name)

VALUES (DEFAULT, 'Смирнов С. С.')

Модификация существующих записей (UPDATE)

Общий синтаксис:

UPDATE <таблица>

SET <столбец> = <значение> {[, <столбец> = <значение>]}*

[FROM <таблица(ы) источников>]

[WHERE <условие>]

Примеры:

UPDATE detail

SET weight = 210

UPDATE material

SET material_name = 'Олово'

WHERE material_id = 2

UPDATE delivery

SET department_id = NULL,

delivery_date = delivery_date + 1 /*увеличение даты поставки на день

WHERE delivery_id = 1 OR department_id > 3

UPDATE detail

SET detail_name = detail_name + '!!!'

WHERE detail_name LIKE '_а%' AND weight BETWEEN 6 AND 10

Удаление записей из таблицы (DELETE)

Общий синтаксис:

DELETE <таблица>

[WHERE] <условие>

Примеры:

DELETE detail

WHERE detail_id IN (2, 5, 8)

DELETE detail

WHERE weight IS NULL

DELETE detail

Задание: заполните БД с помощью команды «Изменить первые 200 строк» контекстного меню таблицы (рис. 4.1).

Составьте 9 запросов на модификацию данных: три – на вставку записей (INSERT), три – на обновление (UPDATE), три – на удаление (DELETE).

 


Контрольные вопросы

1. Какие команды языка SQL используются для актуализации созданной базы данных?

2. Как определяется размер создаваемой базы данных?

3. Какова технология загрузки информации в базу данных, поддерживаемая средой Management Studio?

4. Что такое транзакция? Охарактеризуйте механизм управления транзакциями СУБД.

5. Когда на пользовательском уровне требуется пользоваться механизмом управления транзакциями?

6. Какая команда языка SQL используется для ввода информации в базу данных? Охарактеризуйте варианты использования этой команды.

7. Как работает многострочная конструкция команды INSERT?

8. Охарактеризуйте правило согласованности значений в команде INSERT.

9. Сформулируйте правила оформления значений различных типов данных в СУБД MS SQL Server.

10. Какая команда языка SQL используется для обновления записей таблиц базы данных?

11. Какие команды SQL используются для удаления строк таблицы и в целом всей таблицы?

12. Для чего используется команда ALTER TABLE? Как посредством среды Management Studio воспользоваться этой функцией?

13. Посредством какой опции прописываются вторичные ключи при создании таблицы?

14. Как можно добавить новое поле в ранее созданную таблицу?

15. Что такое индексы в базе данных? Как они создаются?

16. Как задаются права доступа к созданной базе данных?

17. Как в среде Management Studio удалить базу данных?