Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server AND 조건 완전 정복: 기본 문법부터 실전 예제까지

SQL Server에서 AND 조건(AND 연산자)은 SELECT, INSERT, UPDATE 또는 DELETE 문에서 두 개 이상의 조건을 동시에 검사할 때 사용합니다. AND로 연결된 모든 조건이 참(true)일 때만 해당 레코드가 결과 집합에 포함됩니다.

AND 조건 기본 구문

WHERE 조건1
AND 조건2
...
AND 조건n;

매개변수 설명

조건1, 조건2 ... 조건n : 레코드가 결과 집합에 포함되기 위해 반드시 만족해야 하는 조건들을 의미합니다.

참고 사항

  1. SQL Server의 AND 조건은 두 개 이상의 조건을 함께 검사할 수 있습니다.
  2. 모든 조건이 충족되어야만 해당 레코드가 결과 집합에 포함됩니다. 단 하나의 조건이라도 거짓이면 그 레코드는 제외됩니다.

예제 1 - SELECT 문에서 AND 조건 활용

SELECT *
FROM nhanvien
WHERE ho = 'Smith'
AND nhanvien_id < 499;

위 예제는 성(ho)이 'Smith'이면서 직원 ID(nhanvien_id)가 499 미만인 모든 직원을 조회합니다. SELECT 절에서 *를 사용했기 때문에 테이블의 모든 필드가 결과 집합에 포함됩니다.

예제 2 - 여러 테이블 조합하기

SELECT nhanvien.nhanvien_id, danhba.ho
FROM nhanvien, danhba
WHERE nhanvien.nhanvien_id = danhba.danhba_id
AND nhanvien.ten = 'Sarah';

위와 같은 방식으로도 쿼리가 동작하지만, 일반적으로는 INNER JOIN을 사용하는 것이 가독성과 성능 면에서 권장됩니다.

SELECT nhanvien.nhanvien_id, danhba.ho
FROM nhanvien
INNER JOIN danhba
ON nhanvien.nhanvien_id = danhba.danhba_id
WHERE nhanvien.ten = 'Sarah';

이 예제에서는 이름(ten)이 'Sarah'인 직원 행을, nhanvien 테이블과 danhba 테이블을 nhanvien_id와 danhba_id로 연결하여 조회합니다.

여러 테이블을 조인할 때는 모든 필드를 테이블 이름으로 한정하는 것이 좋습니다(예: danhba.ten). 두 테이블에 같은 이름의 필드가 존재할 경우, 어느 테이블의 필드를 참조하는지 명확히 하지 않으면 모호성 오류가 발생할 수 있습니다.

이 경우 결과 집합에는 nhanvien_id와 ho(성) 필드만 표시됩니다.

예제 3 - INSERT 문에서 AND 조건 활용

INSERT INTO danhba
(danhba_id, ho, ten)
SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE ten = 'Joanne'
AND nhanvien_id >= 800;

이 예제의 AND 조건은 이름(ten)이 'Joanne'이고 직원 ID(nhanvien_id)가 800 이상인 직원들의 데이터를 조회하여 danhba 테이블의 danhba_id, ho, ten 필드에 삽입합니다.

예제 4 - UPDATE 문에서 AND 조건 활용

UPDATE nhanvien
SET ho = 'Johnson'
WHERE ho = 'TBD'
AND nhanvien_id < 300;

이 예제는 성(ho)이 'TBD'로 입력되어 있고 직원 ID(nhanvien_id)가 300 미만인 모든 직원의 성을 'Johnson'으로 업데이트합니다.

예제 5 - DELETE 문에서 AND 조건 활용

DELETE FROM nhanvien
WHERE ten = 'Darlene'
AND ho = 'Henderson';

이 명령은 이름이 'Darlene'이고 성이 'Henderson'인 직원의 레코드를 nhanvien 테이블에서 삭제합니다.

마무리 및 추가 팁

AND 조건은 OR 조건과 함께 사용할 때 평가 순서에 유의해야 합니다. SQL Server에서는 AND가 OR보다 먼저 평가되므로, 복잡한 조건을 다룰 때는 괄호를 사용해 의도한 논리를 명확히 하는 것이 좋습니다. 예를 들어 WHERE (조건1 OR 조건2) AND 조건3 형태로 작성하면 원하는 결과를 정확하게 제어할 수 있습니다.