Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
delete [2021/01/31 11:25] dja |
delete [2021/01/31 11:34] (текущий) dja [Оператор TRUNCATE TABLE] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Оператор | + | ===== Оператор DELETE |
+ | удаляет строки из временных или постоянных базовых таблиц, | ||
< | < | ||
1. DELETE FROM <имя таблицы> | 1. DELETE FROM <имя таблицы> | ||
Строка 49: | Строка 50: | ||
При помощи этого предложения можно выполнять соединения таблиц, | При помощи этого предложения можно выполнять соединения таблиц, | ||
+ | **Пример** | ||
<color # | <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 | ||
+ | </ |