Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
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 | ||
| + | </ | ||