Delete sql ms: DELETE | SQL | SQL-tutorial.ru

Содержание

SQL DELETE « Язык запросов SQL

Команда DELETE

Команда DELETE удаляет строки из таблицы или представления основной таблицы базы данных, например, в MySQL, Oracle.

Команда DELETE. Синтаксис команды DELETE

Синтаксис команды DELETE

Команда DELETE. Основные ключевые слова и параметры команды DELETE

  • schema — идентификатор полномочий, обычно совпадающий с именем некоторого пользователя
  • table view — имя таблицы, из которой удаляются строки; если определяется представление, сервер удаляет строки из основной таблицы представления
  • subqueryподзапрос, с помощью которого выбираются строки для удаления; сервер выполняет подзапрос и использует строки его результата как таблицу фразы FROM
  • WHERE — удаляет только строки, которые удовлетворяют условию; условие может ссылаться на таблицу и содержать подзапрос.

При выдаче утверждения DELETE включается любой DELETE-триггер, определенный на таблице.

Команда DELETE Пример №1
Удаление всех строк из таблицы:

DELETE FROM temp_assign;

В данном примере команда DELETE удаляет все строки без исключения.
Команда DELETE Пример №2.
Удаляет из таблицы всех продавцов, у которых комиссионные меньше 100 у.е. в месяц:

DELETE FROM emp WHERE JOB = ‘SALESMAN’ AND COMM < 100;

В данном примере команда DELETE удаляет все строки, которые попадают под условие JOB = ‘SALESMAN’ AND COMM < 100;
Команда DELETE Пример №3
Предыдущий пример можно записать по-другому:

DELETE FROM (select * from emp) WHERE job = ‘SALESMAN’ AND comm < 100;

Для удаления всех записей в MySQL можно использовать следующую команду

DELETE:

DELETE * FROM table_nam;

SQL Инструкция DELETE



SQL DELETE

Инструкция DELETE используется для удаления существующих записей в таблице.

Синтаксис DELETE

DELETE FROM table_name WHERE condition;

Примечание: Будьте осторожны при удалении записей в таблице! Обратите внимание на предложение WHERE в инструкции DELETE. Предложение WHERE указывает, какие записи должны быть удалены. Если вы опустите предложение WHERE, то все записи в таблице будут удалены!


Демо база данных

Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


Пример SQL DELETE

Следующая инструкция SQL удаляет клиента «Alfreds Futterkiste» из таблицы «Customers»:

Таблица «Customers» теперь будет выглядеть так:

CustomerID CustomerName ContactName Address City PostalCode Country
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Удалить все записи

Можно удалить все строки в таблице, не удаляя саму таблицу. Это означает, что структура таблицы, атрибуты и индексы останутся нетронутыми:

Следующая инструкция SQL удаляет все строки в таблице «Customers», не удаляя таблицу:



SQL DELETE — удаление данных из таблицы базы данных

Оператор SQL DELETE предназначен для удаления данных из таблицы. Он имеет следующий синтаксис:

DELETE FROM ИМЯ_ТАБЛИЦЫ WHERE УСЛОВИЕ

Если не указывать условие, из таблицы будут удалены все строки. Кроме того, следует помнить, что могут быть удалены лишь строки с первичными ключами, на которые не ссылаются внешние ключи в других таблицах (более подробно об ограничениях удаления — в уроке Реляционная модель данных).

Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке

.

А скрипт для создания базы данных «Портал объявлений 1», её таблицы и заполения таблицы данных — в файле по этой ссылке.

Пример 1. Итак, есть база портала объявлений. В ней есть таблица Ads, содержащая данные о объявлениях, поданных за неделю (более подробно — в уроке об агрегатных функциях SQL, пример 7). Таблица выглядит так:

IdCategoryPartUnitsMoney
1ТранспортАвтомашины11017600
2НедвижимостьКвартиры8918690
3НедвижимостьДачи57
11970
4ТранспортМотоциклы13120960
5СтройматериалыДоски687140
6ЭлектротехникаТелевизоры1278255
7ЭлектротехникаХолодильники1378905
8СтройматериалыРегипс11211760
9ДосугКниги966240
10НедвижимостьДома479870
11ДосугМузыка1177605
12ДосугИгры412665

Требуется удалить из таблицы строку, имеющую идентификатор 4. Для этого пишем следующий запрос (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ADS WHERE Id=4

Пример 2. Можно удалить и несколько строк, если в условии применить оператор сравнения «больше» или «меньше» (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ADS WHERE Id>4

В результате в таблице останутся лишь следующие строки:

IdCategoryPartUnitsMoney
5СтройматериалыДоски687140
6ЭлектротехникаТелевизоры1278255
7ЭлектротехникаХолодильники1378905
8СтройматериалыРегипс11211760
9ДосугКниги966240
10НедвижимостьДома479870
11ДосугМузыка1177605
12ДосугИгры412665

Пример 3. Аналогично можно удалять строки с заданными значениями любого столбца. Удалим, например, строки об объявлениях, за которые выручено менее 10000 денежных единиц (запрос на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ADS WHERE Money

В результате в таблице останутся лишь следующие строки:

IdCategoryPartUnitsMoney
1ТранспортАвтомашины11017600
2НедвижимостьКвартиры8918690
3НедвижимостьДачи5711970
4ТранспортМотоциклы13120960
8СтройматериалыРегипс11211760

Для удаления всех строк из таблицы применяется оператор SQL DELETE без условий, заданных в секции WHERE и без любых других ограничей и условий, например, диапазона удаляемых строк. Таким образом, для удаления всех строк синтаксис оператора DELETE будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

DELETE FROM ИМЯ_ТАБЛИЦЫ

Пример 4.

Чтобы удалить все данные из таблицы ADS, достаточно написать следующий запрос:

DELETE FROM ADS

Если после выполнения этого запроса обратиться к таблице ADS при помощи оператора SELECT, применяемого для получения выборки данных, то будет выведено сообщение о том, что эта таблица не содержит данных.

Оператору DELETE без условий и ограничений аналогичен оператор TRUNCATE TABLE. Он также удаляет из таблицы все строки, но выполняется намного быстрее.

Пример 5. Запрос на удаление всех данных из таблицы ADS при помощи оператора TRUNCATE TABLE будет следующим (на MS SQL Server — с предваряющей конструкцией USE adportal1;):

TRUNCATE TABLE ADS

Примеры запросов к базе данных «Портал объявлений-1» есть также в уроках об операторах

INSERT, UPDATE, HAVING и UNION.

Поделиться с друзьями

Реляционные базы данных и язык SQL

База Данных MySQL Инструкция DELETE удаления



Инструкция SQL DELETE

Инструкция DELETE используется для удаления существующих записей в таблице.

DELETE Синтаксис

DELETE FROM table_name
WHERE condition;

Примечание: Будьте внимательны при удалении записей в таблице! Обратите внимание на предложение WHERE в инструкции DELETE. Предложение WHERE указывает, какие записи должны быть удалены. Если опустить предложение WHERE, все записи в таблице будут удалены!


Демонстрационная база данных

Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


Пример удаления SQL

Следующая инструкция SQL удаляет клиента «альфредс футтеркисте» из таблицы «клиенты»:

Пример

DELETE FROM Customers
WHERE CustomerName=’Alfreds Futterkiste’;

Таблица «Customers» теперь будет выглядеть так:

CustomerID CustomerName ContactName Address City PostalCode Country
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Удалить все записи

Можно удалить все строки в таблице без удаления таблицы. Это означает, что структура таблицы, атрибуты и индексы будут нетронутыми:

Или:

DELETE * FROM table_name;


Команда SQL для удаления и обновление данных в базе (DELETE, UPDATE)

В базу данных можно не только добавлять данные, но и удалять их оттуда. Ещё существует возможность обновить данные в базе. Рассмотрим оба случая.

Удаление данных из базы (DELETE)

Удаление из базы данных происходит с помощью команды «DELETE» (переводится с английского как «УДАЛИТЬ»). Функция удаляет не одну строку, а несколько, при этом выбирает для удаления строки по логике функции «SELECT». То есть чтобы удалить данные из базы, необходимо точно определить их. Приведём пример SQL команды для удаления одной строчки:
DELETE FROM `USERS` WHERE `ID` = 2 LIMIT 1;
Благодаря этому запросу из таблицы «USERS» будет удалена одна запись, у которой в столбце «ID» стоит значение «2».

Обратите внимание, что в конце запроса стоит лимит на выборку «LIMIT 1;» размером в 1 строку. Его можно было не ставить, если поле «ID» является «PRIMARY KEY» (первичный ключ, то есть содержит только уникальные значения). Но всё-таки рекомендуем ставить ограничение «LIMIT 1;» в любом случае, если вы намерены удалить только одну строчку.

Теперь попробуем удалить сразу диапазон данных. Для этого достаточно составить запрос, в результате выполнения которого вернётся несколько строк. Все эти строки будут удалены:
DELETE FROM `USERS` WHERE `ID` >= 5;
Этот запрос удалит все строки в таблицы, у которых в столбце «ID» стоит значение меньше 5. Если не поставить никакого условия «WHERE» и лимита «LIMIT», то будут удалены абсолютно все строки в таблице:
DELETE FROM `USERS`;

На некоторых версиях MySQL способ удаления всех строк через «DELETE FROM _;» может работать медленнее, чем «TRUNCATE _;«; Поэтому для очистки всей таблицы лучше всё-таки использовать «TRUNCATE».

Обновление данных в базе (UPDATE)

Функция обновления «UPDATE» (переводится с английского как «ОБНОВИТЬ») довольно часто используется в проектах сайтов. Как и в случае с функцией «DELETE», фкнция обновления не успокоится до тех пор, пока не обновит все поля, которые подходят под условия, если нет лимита на выборку. Поэтому необходимо задавать однозначные условия, чтобы вместо одной строки нечаянно не обновить половину таблицы. Приведём пример использования команды «UPDATE»:
UPDATE `USERS` SET `NAME` = 'Мышь' WHERE `ID` = 3 LIMIT 1;
В этом примере, в таблие «USERS» будет установлено значение «Мышь» в столбец «NAME» у строки, в столбце «ID» которой стоит значение «3». Можно обновить сразу несколько столбцов у одной записи, передав значения через запятую. Попробуем обновить не только значение с толбце «NAME», но и значение в столбце «FOOD» используя один запрос:
UPDATE `USERS` SET `NAME` = 'Мышь', `FOOD` = 'Сыр' WHERE `ID` = 3 LIMIT 1;
Если не поставить никаких лимитов LIMIT и условий WHERE, то все записи таблицы будут обновлены без исключений.

Заявление SQL DELETE


Оператор SQL DELETE

Оператор DELETE используется для удаления существующих записей в таблице.

УДАЛИТЬ Синтаксис

УДАЛИТЬ ИЗ имя_таблицы ГДЕ условие ;

Примечание: Будьте осторожны при удалении записей в таблице! Обратите внимание на предложение WHERE в Оператор DELETE. Предложение WHERE указывает, какие записи следует удалить. Если если вы опустите предложение WHERE, все записи в таблице будут удалены!


Демо-база данных

Ниже представлен выбор из таблицы «Клиенты» в примере Northwind. база данных:

Идентификатор клиента Имя клиента ContactName Адрес Город Почтовый индекс Страна
1 Альфредс Футтеркисте Мария Андерс Obere Str.57 Берлин 12209 Германия
2 Ana Trujillo Emparedados y helados Ана Трухильо Avda. de la Constitución 2222 México D.F. 05021 Мексика
3 Антонио Морено Такерия Антонио Морено Матадерос 2312 Мексика Д.F. 05023 Мексика
4 Вокруг Рога Томас Харди 120 Hanover Sq. Лондон WA1 1DP Великобритания
5 Berglunds snabbköp Кристина Берглунд Berguvsvägen 8 Лулео С-958 22 Швеция


Пример SQL DELETE

Следующий оператор SQL удаляет клиента «Alfreds Futterkiste» из Таблица «Покупатели»:

Пример

УДАЛИТЬ ОТ клиентов ГДЕ CustomerName = ‘Альфредс Футтеркисте’;

Попробуй сам »

Таблица «Клиенты» теперь будет выглядеть так:

Идентификатор клиента Имя клиента ContactName Адрес Город Почтовый индекс Страна
2 Ana Trujillo Emparedados y helados Ана Трухильо Avda.de la Constitución 2222 México D.F. 05021 Мексика
3 Антонио Морено Такерия Антонио Морено Матадерос 2312 México D.F. 05023 Мексика
4 Вокруг Рога Томас Харди 120 Hanover Sq. Лондон WA1 1DP Великобритания
5 Berglunds snabbköp Кристина Берглунд Berguvsvägen 8 Лулео С-958 22 Швеция

Удалить все записи

Можно удалить все строки в таблице, не удаляя таблицу. Эта означает, что структура таблицы, атрибуты и индексы останутся без изменений:

Следующий оператор SQL удаляет все строки в таблице «Клиенты», без удаления таблицы:




.

Обзор оператора SQL Delete

Эта статья об удалении SQL является частью серии статей, посвященных ключевым операторам, функциям и операциям SQL Server.

Удаление строки из таблицы выполняется с помощью языка обработки данных, также известного как оператор DML, с использованием ключевого слова delete. Операция удаления SQL — безусловно, самая простая из всех команд DML. При выполнении команды удаления нам не нужно беспокоиться о получении каких-либо данных из таблицы, и нам не нужно беспокоиться о работе с любыми данными, которые мы получаем обратно из таблицы (таблиц).Мы просто говорим базе данных удалить конкретную запись, и она либо удаляет, либо нет. Это так просто.

Во-первых, давайте быстро рассмотрим, как выглядит оператор удаления SQL. Нам нужно указать базе данных и таблице, откуда следует удалять данные. Рекомендуется добавить предложение условия, чтобы установить объем удаления данных. В противном случае он удалит все в таблице.

Давайте взглянем на нашу таблицу и удалим несколько записей.

Как удалить строки без пункта

В следующем примере удаляются все строки из таблицы Person.Person в базе данных AdventureWorks2014. Для инструкции удаления SQL с использованием предложения WHERE нет никаких ограничений.

ЕГЭ Adventureworks2014;

GO

УДАЛИТЬ ОТ [Лицо]. [Лицо];

Как удалить строки с предложением where

В следующем примере удаляются строки из [Person].[Person] таблица в базе данных AdventureWorks2014, в которой значение в столбце businessEntityID больше 30 000

ЕГЭ Adventureworks2014;

GO

УДАЛИТЬ ОТ [Человек]. [Человек]

ГДЕ businessEntityID> 30000;

Примечание. Прискорбная ошибка, которая может произойти, заключается в случайном запуске SQL Delete без предложения Where и непреднамеренном удалении всех ваших данных.Чтобы этого не произошло, рассмотрите возможность использования функции защиты выполнения в ApexSQL Complete, чтобы предупредить о таких потенциально опасных действиях, прежде чем выполнять их. Подробнее: Предупреждения о выполнении

Как удалить строки с помощью Top с предложением where

В следующем примере удаляется 50 случайных строк из таблицы Person.Person в базе данных AdventureWorks2014. Значение BusinessEntityID должно находиться в диапазоне от 30 000 до 40 000.

ЕГЭ Adventureworks2014;

GO

УДАЛИТЬ ВЕРХНЮЮ (50) ОТ [Человек].[Человек]

ГДЕ BusinessEntityID от 30000 до 40000

Примечание: когда предложение TOP (n) используется с оператором SQL Delete и любым оператором DML (например, Select, Insert, Delete и Update), операция выполняется на случайном выборе ряда строк, указанных в предложении Top. .

Как удалить повторяющиеся строки

В реальном мире мы обычно собираем данные из разных источников; нередко встречаются повторяющиеся записи.Один из подходов к проблеме дублирования — сначала определить, где возникли дубликаты. И запустите запрос выбора для этих столбцов.

EATE TABLE tb_spaceused

(имя_базы_данных NVARCHAR (128),

database_size VARCHAR (18),

[нераспределенное пространство] VARCHAR (18),

зарезервировано VARCHAR (18),

данных VARCHAR (18),

данных VARCHAR

index_size VARCHAR (18),

неиспользуемый VARCHAR (18)

);

INSERT INTO tb_spaceused

EXEC sp_msforeachdb

@ command1 = «использовать? Exec sp_spaceused @oneresultset = 1»;

ВЫБРАТЬ *

FROM tb_spaceused

упорядочить по имени_базы_данных

В следующем примере аргумент PARTITION BY используется для разделения набора результатов запроса по всем столбцам таблицы tb_spaceused .Row_Number (), оконная функция, что означает, что она работает с упорядоченным набором. Предложение ORDER BY, указанное в предложении OVER, упорядочивает строки в каждой секции по всем столбцам таблицы tb_spaceused.

WITH CTE

AS (SELECT *,

ROW_NUMBER () OVER (PARTITION BY имя_базы_данных,

размер_базы_данных,

[незанятое пространство],

зарезервировано,

данных,

9_size, неиспользуемый размер индекса

ORDER BY имя_базы_данных

) AS Row_Num

FROM tb_spaceused)

SELECT *

FROM CTE

WHERE Row_Num <> 1;

Замена оператора Select оператором Delete удаляет все дубликаты таблицы.

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

WITH CTE

AS (SELECT *,

ROW_NUMBER () OVER (PARTITION BY имя_базы_данных,

размер_базы_данных,

[незанятое пространство],

зарезервировано,

данных,

9_size, неиспользуемый размер индекса

ORDER BY имя_базы_данных

) AS Row_Num

FROM tb_spaceused)

—SELECT *

—FROM CTE

—WHERE Row_Num <> 1;

УДАЛИТЬ ИЗ CTE

WHERE Row_Num <> 1;

Как удалить строки с помощью подзапросов SQL

В следующем примере строки в одной таблице удаляются на основе данных в другой таблице.В примерах строки из таблицы SalesPersonQuotaHistory удаляются на основе столбца SalesYTD таблицы SalesPerson.

УДАЛИТЬ ИЗ Sales.SalesPersonQuotaHistory

ГДЕ BusinessEntityID IN

(

ВЫБРАТЬ BusinessEntityID

ОТ Sales.SalesPerson

ГДЕ SalesYTD> 4

0.00

);

ГО

Как удалить строки с помощью SQL-соединений

В этом разделе мы будем использовать оператор SQL Delete для удаления данных из базы данных Adeventureworks2014.Удаление данных, на первый взгляд, звучит тривиально, но как только мы перейдем к проектированию большой базы данных, все может стать не таким простым и простым.

Во многих случаях таблицы связаны через отношения первичного и внешнего ключей. В следующем примере мы видим использование объединений для удаления данных из Sales.SalesPersonQuotaHistory.

УДАЛИТЬ sq

ИЗ Sales.SalesPersonQuotaHistory sq

INNER JOIN Sales.SalesPerson sp ON sq.BusinessEntityID = sp.BusinessEntityID

WHERE sp.SalesYTD> 4500000.00;

ГО

Как удалить строки из удаленной таблицы с помощью связанных серверов и OpenQuery

В следующем примере оператор удаления SQL используется для удаления строк из удаленной таблицы с использованием связанного сервера с именем hqdbt01. Затем запросите удаленную таблицу, используя соглашение об именах объектов из четырех частей, чтобы удалить строки из удаленной таблицы.

УДАЛИТЬ

ИЗ [hqdbt01].AdventureWorks2014. [HumanResources]. [Shift]

ГДЕ ShiftID = 2;

В следующем примере удаленная таблица запрашивается путем указания функции набора строк OPENQUERY вместе с командой удаления.

DELETE OPENQUERY (hqdbt01, ‘SELECT *

FROM AdventureWorks2014.HumanResources.Department

WHERE DepartmentID = 18′);

Как удалить строки с помощью SSMS

Использование SQL Server Management Studio (SSMS) и графического интерфейса пользователя (GUI) для удаления строк включает ручной поиск.На самом деле удалить записи с помощью SQL-запроса будет намного проще и быстрее.

Давайте продолжим и найдем таблицу для использования оператора удаления SQL, в данном случае выбрана таблица dbo.cities . Теперь щелкните правой кнопкой мыши и выберите Изменить верхние 200 строк . Эта опция открывает окно конструктора запросов. Затем щелкните окно правой кнопкой мыши и выберите Execute SQL и напишите новый запрос, который удалит строки из таблицы dbo.cities.

В области результатов убедитесь, что оператор SELECT извлекает правильные целевые записи, прежде чем начинать удаление строк.Выберите строки, щелкните их правой кнопкой мыши и выберите Удалить , чтобы удалить строки из таблицы.

Сводка

До сих пор мы видели много разных способов использования SQL-оператора delete для удаления данных. Но есть список соображений, которые необходимо учитывать при использовании оператора удаления, и он выглядит следующим образом:

  1. Всегда рекомендуется начинать с оператора SELECT перед тем, как что-либо удалять, чтобы убедиться, что вы выбираете правильные записи.Таким образом, оператор delete используется для удаления строк из таблицы с использованием предложения where для выбора только удаляемых строк.
  2. Всегда используйте уникальный идентификатор, чтобы найти строки, которые нужно удалить.
  3. Чтобы удалить все строки в таблице, всегда используйте TRUNCATE TABLE. TRUNCATE TABLE, который работает быстрее, чем оператор удаления SQL, и использует меньше ресурсов системы и журнала транзакций.
  4. По умолчанию операторы DELETE вызывают исключительную (X) блокировку таблицы, и она удерживает блокировку до завершения транзакции.
  5. Исключительная блокировка предотвращает изменение данных другой транзакцией; операции чтения разрешены с использованием подсказки NOLOCK или уровня изоляции чтения незафиксированных
  6. Рекомендуется указывать подсказку TABLOCK в операторе удаления.Этот процесс позволяет освободить страницу и связанное с ней пространство, доступное для повторного использования другими объектами в базе данных.
  7. Перед выполнением оператора удаления рекомендуется создать кластерный индекс в таблице кучи.
  8. Хотя это очень просто и очень мощно, и результат оператора Delete разрушителен. Удаленные строки не могут быть легко восстановлены

Примечание. Чтобы восстановить удаленные строки, см. Раздел «Аварийное восстановление SQL Server» — «Как быстро восстановить данные, утерянные из-за операции непреднамеренного удаления»

На этом пока все … Надеюсь, вам понравится эта статья об операторе удаления SQL.Если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже.


Я технолог по базам данных, имеющий более 11 лет богатого практического опыта работы с технологиями баз данных. Я являюсь сертифицированным специалистом Microsoft и имею степень магистра компьютерных приложений.

Моя специальность заключается в разработке и внедрении решений высокой доступности и кроссплатформенной миграции БД. В настоящее время разрабатываются технологии SQL Server, PowerShell, Oracle и MongoDB.

Посмотреть все сообщения от Prashanth Jayaram

Последние сообщения от Prashanth Jayaram (посмотреть все) .

SQL Server DELETE — удаление одной или нескольких строк из таблицы

Сводка : в этом руководстве вы узнаете, как использовать оператор SQL Server DELETE для удаления одной или нескольких строк из таблицы.

Введение в SQL Server Оператор DELETE

Чтобы полностью удалить одну или несколько строк из таблицы, используйте оператор DELETE . Следующее иллюстрирует его синтаксис:

 

DELETE [TOP (выражение) [PERCENT]] FROM table_name [WHERE search_condition];

Сначала вы указываете имя таблицы, из которой должны быть удалены строки, в предложении FROM .

Например, следующий оператор удалит все строки из target_table :

 

DELETE FROM target_table;

Во-вторых, чтобы указать количество или процент случайных строк, которые будут удалены, вы используете предложение TOP .

Например, следующий оператор DELETE удаляет 10 случайных строк из target_table :

 

DELETE TOP 10 FROM target_table;

Поскольку таблица хранит свои строки в неопределенном порядке, мы не знаем, какие строки будут удалены, но мы точно знаем, что количество строк будет 10.

Точно так же вы можете удалить 10 процентов случайных строк, используя следующий оператор DELETE :

 

DELETE TOP 10 PERCENT FROM target_table;

В-третьих, практически говоря, вы редко удаляете все строки из таблицы, а только одну или несколько строк. В этом случае вам необходимо указать search_condition в предложении WHERE , чтобы ограничить количество удаляемых строк.

Строки, из-за которых search_condition оценивается как истинное, будут удалены.

Предложение WHERE является необязательным. Если вы его пропустите, оператор DELETE удалит все строки из таблицы.

SQL Server DELETE Примеры операторов

Давайте создадим новую таблицу для демонстрации.

Следующий оператор создает таблицу с именем production.product_history с данными, скопированными из таблицы production.products :

 

SELECT * INTO production.product_history ОТ производство.продукты;

Следующий запрос возвращает все строки из таблицы product_history :

 

SELECT * FROM production.product_history;

Как ясно видно из выходных данных, всего у нас 321 строка.

1) Удалить количество случайных строк, пример

Следующий оператор DELETE удаляет 21 случайную строку из таблицы product_history :

 

DELETE TOP (21) ОТ ПРОИЗВОДСТВА.product_history;

Вот сообщение, выданное SQL Server:

 

(затронута 21 строка)

Это означает, что 21 строка была удалена.

2) Удалить процент случайных строк, пример

Следующий оператор DELETE удаляет 5 процентов случайных строк из таблицы product_history :

 

DELETE TOP (5) PERCENT ИЗ production.product_history;

SQL Server выдал следующее сообщение, указывающее, что 15 строк (300 x 5% = 15) были удалены.

 

(затронуто 15 рядов)

3) Удалите несколько строк с примером условия

Следующий оператор DELETE удаляет все продукты с модельным годом 2017:

 

DELETE ОТ production.product_history ГДЕ model_year = 2017;

Вот выходное сообщение:

 

(затронуты 75 строк)

4) Удалить все строки из таблицы, пример

Следующий оператор DELETE удаляет все строки из таблицы product_history :

 

DELETE FROM production.product_history;

Обратите внимание, что если вы хотите удалить все строки из большой таблицы, вы должны использовать оператор TRUNCATE TABLE , который работает быстрее и эффективнее.

В этом руководстве вы узнали, как использовать оператор SQL Server DELETE для удаления одной или нескольких строк из таблицы.

.

sql — УДАЛИТЬ … ОТ … ГДЕ … В

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *