Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
delete [2021/01/31 11:27] dja |
delete [2021/01/31 11:34] (текущий) dja [Оператор TRUNCATE TABLE] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | Оператор | + | ===== Оператор DELETE |
| + | удаляет строки из временных или постоянных базовых таблиц, | ||
| < | < | ||
| 1. DELETE FROM <имя таблицы> | 1. DELETE FROM <имя таблицы> | ||
| Строка 55: | Строка 56: | ||
| 1. DELETE FROM Product | 1. DELETE FROM Product | ||
| 2. WHERE type = ' | 2. WHERE type = ' | ||
| - | 3. | + | 3. model NOT IN (SELECT model |
| - | 4. | + | 4. FROM PC |
| - | 5. | + | 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 | ||
| </ | </ | ||