Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL Server

SQL Server의 DELETE 명령

SQL Server(Transact-SQL)의 DELETE 문은 SQL Server의 테이블에서 하나 이상의 레코드를 삭제하는 데 사용됩니다.

SQL Server의 DELETE 명령 구문

DELETE 명령의 간단한 구문은 다음과 같습니다.

  DELETE FRO M bang 
[WHERE dieu_kien];

DELETE 명령의 전체 구문은 다음과 같습니다.

  DELETE [TOP (g iatri_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 nh anvien 
WHERE ten = 'Sarah';

이 명령은 직원 이름이 Sarah인 테이블의 모든 레코드를 삭제합니다.

삭제된 항목의 수를 확인하려면 삭제 명령을 실행하기 전에 SELECT 명령을 실행하세요.

  SELECT has un (*) 
FROM nhanvien
WHERE ten = 'Sar ah';

예:2가지 조건 사용

  DELETE FROM  nhanvien 
WHERE ho = 'Johnson'
AND nhanvien_id > = 80;

이 명령은 직원 이름이 Johnson이고 nhanvien_id가 80보다 크거나 같은 경우 테이블의 모든 레코드를 삭제합니다.

삭제된 행 수를 확인하려면 DELETE 명령을 실행하기 전에 아래 SELECT 문을 실행하세요.

  SELECT coun t (*) 
FROM nhanvien
WHERE ho = 'Johnson'
AND nhanvien_id > = 80;

예:TOP 키워드 사용

  DELETE  TOP(3) 
FROM nhanvien
WHERE ho = 'Johnson';

이는 직원의 성이 Johnson인 경우 테이블의 처음 3개 레코드를 삭제합니다. Johnson이라는 성을 가진 다른 레코드가 이 테이블에 있는 경우 이 DELETE의 영향을 받지 않습니다.

예:EXISTS 절 사용

예를 들어, 다른 테이블의 값을 기반으로 테이블의 레코드를 삭제하는 것과 같이 더 복잡한 삭제 명령을 수행할 수 있습니다. DELETE 문의 FROM 절에는 두 개 이상의 테이블을 렌더링할 수 없으므로 EXISTS 절은 다음과 같이 사용할 수 있습니다.

  DELETE FROM nhanvien 
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 명령을 실행하세요.

  SELECT count (*) 
FROM nhanvien
WHERE EXITS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.da nhba_id <100);