SQL Server(Transact-SQL)의 DELETE 문은 SQL Server의 테이블에서 하나 이상의 레코드를 삭제하는 데 사용됩니다.
SQL Server의 DELETE 명령 구문
DELETE 명령의 간단한 구문은 다음과 같습니다.
DELETE FROM bang
[WHERE dieu_kien];
DELETE 명령의 전체 구문은 다음과 같습니다.
DELETE [TOP (giatri_dau) [PERCENT] ]
FROM bang
[WHERE dieu_kien
];
변수 이름 또는 변수 값
상태
테이블에서 레코드를 삭제해야 합니다.
dieu_kien 위치
옵션. 레코드가 삭제되기 위해 충족되어야 하는 조건입니다.
TOP(giatri_dau)
옵션. 구체적으로 말하면 giatri_dau를 기반으로 하는 행의 첫 번째 값을 삽입합니다. 예를 들어 TOP(10)은 결과 집합의 처음 10개 행을 삽입합니다.
PERCENT
옵션. 지정된 경우 첫 번째 행은 결과 집합의 giatri_dau 백분율을 기반으로 합니다. 예를 들어 TOP (10) PERCENT는 결과 집합에 첫 번째 값의 10%를 삽입합니다.
참고
테이블의 모든 행을 삭제하므로 DELETE 문에 필드를 나열할 필요가 없습니다.
예:조건 1개 사용
DELETE FROM nhanvien
WHERE ten = 'Sarah';
이 명령은 직원 이름이 Sarah인 테이블의 모든 레코드를 삭제합니다.
삭제된 항목의 수를 확인하려면 삭제 명령을 실행하기 전에 SELECT 명령을 실행하세요.
SELECT hasun (*)
FROM nhanvien
WHERE ten = 'Sar
ah';
예:2가지 조건 사용
DELETE FROMnhanvien
WHERE ho = 'Johnson'
AND nhanvien_id >
= 80;
이 명령은 직원 이름이 Johnson이고 nhanvien_id가 80보다 크거나 같은 경우 테이블의 모든 레코드를 삭제합니다.
삭제된 행 수를 확인하려면 DELETE 명령을 실행하기 전에 아래 SELECT 문을 실행하세요.
SELECT count (*)
FROM nhanvien
WHERE ho = 'Johnson'
AND nhanvien_id
> = 80;
예:TOP 키워드 사용
DELETETOP(3)
FROM nhanvien
WHERE ho =
'Johnson';
이는 직원의 성이 Johnson인 경우 테이블의 처음 3개 레코드를 삭제합니다. Johnson이라는 성을 가진 다른 레코드가 이 테이블에 있는 경우 이 DELETE의 영향을 받지 않습니다.
예:EXISTS 절 사용
예를 들어, 다른 테이블의 값을 기반으로 테이블의 레코드를 삭제하는 것과 같이 더 복잡한 삭제 명령을 수행할 수 있습니다. DELETE 문의 FROM 절에는 두 개 이상의 테이블을 렌더링할 수 없으므로 EXISTS 절은 다음과 같이 사용할 수 있습니다.
DELETE FROMnhanvien
WHERE EXISTS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.danhba_id
<100);
이 DELETE 문은 이름 목록에 listener_id가 100 미만이고 list_id가 nhanvien_id와 일치하는 레코드가 있는 경우 테이블의 모든 레코드를 삭제합니다.
삭제된 줄 수를 확인하려면 삭제하기 전에 SELECT 명령을 실행하세요.
SELECTcount (*)
FROM nhanvien
WHERE EXITS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.da
nhba_id <100);