T sql t удалить: Команда SQL для удаления и обновление данных в базе (DELETE, UPDATE)

Команда 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, то все записи таблицы будут обновлены без исключений.

Была ли эта статья полезна?

Есть вопрос?

Закажите недорогой хостинг

Заказать

всего от 290 руб

Учебник по T-SQL. Удаление объектов базы данных — SQL Server





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 2 мин

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAnalytics Platform System (PDW)

На этом коротком занятии рассматривается удаление объектов, созданных на занятиях 1 и 2, а затем удаление базы данных.

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

USE TestData;
GO

Отзыв разрешений на хранимые процедуры

С помощью инструкции REVOKE удаляется разрешение на выполнение, предоставленное Mary на хранимую процедуру:

REVOKE EXECUTE ON pr_Names FROM Mary;
GO

Удаление разрешений

  1. С помощью инструкции DROP удаляется разрешение, предоставленное Mary для доступа к базе данных TestData :

    DROP USER Mary;
    GO
    
  2. С помощью инструкции DROP удаляется разрешение, предоставленное Mary для доступа к экземпляру SQL Server 2005 (9.x):

    DROP LOGIN [<computer_name>\Mary];
    GO
    
  3. С помощью инструкции DROP удаляется хранимая процедура pr_Names:

    DROP PROC pr_Names;
    GO
    
  4. С помощью инструкции DROP удаляется представление vw_Names:

    DROP VIEW vw_Names;
    GO
    

Удалить таблицу

  1. С помощью инструкции DELETE удаляются все строки таблицы Products :

    DELETE FROM Products;
    GO
    
  2. С помощью инструкции DROP удаляется таблица Products :

    DROP TABLE Products;
    GO
    

Удаление базы данных

Вы не можете удалить TestData базу данных, находясь в ней. Поэтому сначала переключите контекст на другую базу данных, а затем используйте инструкцию DROP для удаления TestData базы данных:

USE MASTER;
GO
DROP DATABASE TestData;
GO

Это заключительный шаг учебника «Составление инструкций Transact-SQL». Помните, что это руководство представляет собой краткий обзор и не описывает все параметры используемых инструкций. Для проектирования и создания эффективной структуры базы данных и настройки безопасного доступа к данным требуется более сложная база данных, чем показанная в примерах данного учебника.

Дальнейшие действия

  • Резервное копирование и восстановление баз данных SQL Server
  • Планы обслуживания
  • sp_configure (Transact-SQL)






T-SQL DELETE Query — javatpoint

следующий →
← предыдущая

Запрос DELETE в T-SQL используется для удаления существующих записей, которые мы хотим удалить из таблицы. Мы используем предложение WHERE с командой DELETE для удаления строк, которые мы выбрали для удаления. В противном случае запись удаляется.

Синтаксис:-

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

Мы объединяем N число условий, используя операторы И или ИЛИ.

Пример:

Рассмотрим таблицу EMPLOYEES со следующими записями:

ID Имя ВОЗРАСТ АДРЕС Зарплата
001 Рахул 23 Кота 20000.00
002 Клинтон 22 Мумбаи 15000.00
003 Камаль 31 Дели 25000,00
004 Читра 28 Каньякумари 65000. 00
005 Сантану 26 Мадхья-Прадеш 38500.00
006 Савитри 24 Бхопал 4500.00
007 Мании 30 Индонезия 15000.00

Пример 1:

Ниже приведен пример команды УДАЛИТЬ запись СОТРУДНИКОВ, идентификатор которой равен 006

.

УДАЛИТЬ ИЗ СОТРУДНИКОВ
ГДЕ ID = 006;

Таблица

EMPLOYEES будет содержать следующие записи:

ID Имя ВОЗРАСТ АДРЕС Зарплата
001 Рахул 23 Кота 20000.00
002 Клинтон 22 Мумбаи 15000.00
003 Камаль 31 Дели 25000,00
004 Читра 28 Каньякумари 65000. 00
005 Сантану 26 Мадхья-Прадеш 38500.00
007 Мании 30 Индонезия 15000.00

Пример 2-

Ниже приведен пример команды УДАЛИТЬ запись СОТРУДНИКОВ, имя которой RAHUL-

УДАЛИТЬ ИЗ СОТРУДНИКОВ
ГДЕ ИМЯ = РАУЛ;

Вывод:

ID Имя ВОЗРАСТ АДРЕС Зарплата
002 Клинтон 22 Мумбаи 15000.00
003 Камаль 31 Дели 25000,00
004 Читра 28 Каньякумари 65000.00
005 Сантану 26 Мадхья-Прадеш 38500. 00
007 Мании 30 Индонезия 15000.00

Если мы УДАЛЯЕМ все записи из таблицы EMPLOYEES, нам не нужно использовать предложение WHERE. УДАЛИТЬ запрос будет следующим?

УДАЛИТЬ ИЗ СОТРУДНИКОВ;

В таблице EMPLOYEES теперь не будет ни одной записи.


Следующая темаT-SQL WHERE Пункт

← предыдущая
следующий →

SQL-сервер DELETE и предложение WITH

спросил

Изменено
5 лет, 9 месяцев назад

Просмотрено
44к раз

Мне нужно создать оператор SQL, чтобы удалить из определенной таблицы записи, соответствующие другому оператору выбора.

В Teradata мы используем

 удалить из таблицы1
где (col1, col2) в (
  выберите столбец1, столбец2
  из таблицы2
)
 

Хотя в SQL Server не разрешено иметь более 1 столбца в предложении WHERE. .IN. Я думал, что могу использовать предложение WITH:

 с tempTable(col1,col2) как (
выберите столбец1, столбец2
из таблицы2
)
удалить из таблицы1
где table1.col1 = tempTable.col1
и table1.col2 = tempTable.col2
 

Как использовать предложение WITH..DELETE? Есть ли другой способ?

  • sql-server

Это должно сделать это:

 УДАЛИТЬ Table1
 из таблицы 1 t1
  внутреннее соединение tempTable t2
   на t2.Col1 = t1.Col1
    и t2.Col2 = t1.Col2
 

4

Сначала создайте запрос, который выбирает нужные вам строки:

 SELECT t1.*
ИЗ [Таблица1] t1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ [Таблица 2] t2 ON t1.[col1] = t2.[col1] AND t1.[Col2]=t2.[Col2]
 

Протестируйте , чтобы убедиться, что он возвращает именно те строки, которые вы хотите удалить. Затем превратите его в оператор удаления, изменив «SELECT» на «DELETE» и удалив список столбцов:

 УДАЛИТЬ t1
ИЗ [Таблица1] t1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ [Таблица 2] t2 ON t1.