Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
delete [2021/01/31 11:16] dja |
delete [2021/01/31 11:34] (текущий) dja [Оператор TRUNCATE TABLE] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Оператор | + | ===== Оператор DELETE |
+ | удаляет строки из временных или постоянных базовых таблиц, | ||
< | < | ||
1. DELETE FROM <имя таблицы> | 1. DELETE FROM <имя таблицы> | ||
Строка 27: | Строка 28: | ||
<font inherit/ | <font inherit/ | ||
+ | < | ||
+ | 1. DELETE FROM Laptop | ||
+ | 2. WHERE screen < 12; | ||
+ | </ | ||
+ | Все блокноты можно удалить с помощью оператора | ||
+ | |||
+ | < | ||
+ | 1. DELETE FROM Laptop; | ||
+ | </ | ||
+ | или | ||
+ | < | ||
+ | 1. TRUNCATE TABLE Laptop; | ||
+ | </ | ||
+ | Transact-SQL расширяет синтаксис оператора **DELETE**, вводя дополнительное предложение **FROM**: | ||
+ | < | ||
+ | FROM < | ||
+ | </ | ||
+ | При помощи источника табличного типа можно конкретизировать данные, | ||
+ | |||
+ | При помощи этого предложения можно выполнять соединения таблиц, | ||
+ | |||
+ | **Пример** | ||
+ | <color # | ||
+ | Используя стандартный синтаксис, | ||
+ | < | ||
+ | 1. DELETE FROM Product | ||
+ | 2. WHERE type = ' | ||
+ | 3. model NOT IN (SELECT model | ||
+ | 4. FROM PC | ||
+ | 5. ); | ||
+ | </ | ||
+ | Заметим, | ||
+ | |||
+ | Эту же задачу можно решить с помощью дополнительного предложения **FROM** следующим образом: | ||
+ | < | ||
+ | 1. DELETE FROM Product | ||
+ | 2. FROM Product pr LEFT JOIN | ||
+ | 3. PC ON pr.model = PC.model | ||
+ | 4. WHERE type = ' | ||
+ | 5. PC.model IS NULL; | ||
+ | </ | ||
+ | Здесь применяется внешнее соединение, | ||
+ | |||
+ | ===== Оператор TRUNCATE TABLE ===== | ||
+ | |||
+ | Как отмечалось выше, при выполнении этой команды значение счетчика (IDENTITY) сбрасывается в начальное значение. Давайте проверим это утверждение в MS SQL Server. Для начала создадим таблицу с автоинкрементируемым столбцом, | ||
+ | < | ||
+ | 1. CREATE TABLE Truncate_test (id INT IDENTITY(5, | ||
+ | 2. GO | ||
+ | 3. INSERT INTO Truncate_test(val) | ||
+ | 4. VALUES (1), | ||
+ | 5. SELECT * FROM Truncate_test; | ||
+ | 6. GO | ||
+ | </ |