데이터베이스 쿼리에서 값을 조작하거나 비교하기 위해 사용
주요 연산자
1. 산술 연산자 : 수학적 계산 수행
종류 : + , - , * , /
2. 비교 연산자 : 두 값의 비교를 통해 조건을 평가
종류 : = , <> , != , > , < , >= , <=
3. 논리 연산자 : 여러 조건을 결합하거나 논리적 평가 수행
종류 : AND , OR , NOT
4. BETWEEN 연산자 : 특정 번위 내의 값을 확인
예시
SELECT * FROM Patients WHERE birth_date BETWEEN '1990-01-01' AND '2000-12-31';
5. IN 연산자 : 열 값이 지정된 값 목록 중 하나와 일치하는지 확인
예시
SELECT * FROM Patients WHERE gender IN ('M', 'F');
6. LIKE 연산자 : 특정 패턴과 일치하는지 확인
예시
SELECT * FROM Patients WHERE first_name LIKE 'J%';
-- 'J'로 시작하는 이름을 찾습니다.
7. IS NULL 연산자 : 열 값이 NULL 인지 확인
예시
SELECT * FROM Patients WHERE contact_number IS NULL;
8. 계층형 쿼리 연산자 : 계층 구조(트리 구조)를 표현할 때 사용되며, 조직도, 카테고리 트리 등의 계층적 데이터를 처리할 때 사용
주요 연산자 : CONNECT BY, START WITH
예시
-- 병원 조직에서 의사와 인턴의 계층 구조를 조회
SELECT doctor_id, name, supervisor_id, LEVEL
FROM Doctors
START WITH supervisor_id IS NULL -- 최고 책임자(예: 병원장)를 기준으로 시작
CONNECT BY PRIOR doctor_id = supervisor_id; -- 상사 ID를 기준으로 계층적 관계를 설정
- LEVEL : 현재 행의 계층 수준을 나타매는 가상 열
- PRIOR : 연결 조건에서 사용되며 부모와 자식 노드를 정의
8. SET 연산자 : 두 개 이상의 SQL 쿼리 결과를 합치거나 비교할 때 사용
주요 연산자 :
- UNION: 두 쿼리의 결과를 합집합으로 반환하며, 중복된 행은 제거
- UNION ALL: 두 쿼리의 결과를 합집합으로 반환하지만 중복된 행도 포함
- INTERSECT: 두 쿼리의 결과에 모두 존재하는 행을 반환
- MINUS (또는 EXCEPT): 첫 번째 쿼리 결과에서 두 번째 쿼리 결과에 포함되지 않은 행을 반환
사용예:
-- General 부서와 Cardiology 부서의 모든 환자 목록을 중복 없이 조회
SELECT patient_id, name FROM Patients WHERE department = 'General'
UNION
SELECT patient_id, name FROM Patients WHERE department = 'Cardiology';
-- General 부서와 Cardiology 부서의 모든 환자 목록을 중복 포함 조회
SELECT patient_id, name FROM Patients WHERE department = 'General'
UNION ALL
SELECT patient_id, name FROM Patients WHERE department = 'Cardiology';
-- General 부서와 Cardiology 부서에 모두 포함된 환자 조회
SELECT patient_id, name FROM Patients WHERE department = 'General'
INTERSECT
SELECT patient_id, name FROM Patients WHERE department = 'Cardiology';
-- General 부서에만 있고 Cardiology 부서에는 없는 환자 조회
SELECT patient_id, name FROM Patients WHERE department = 'General'
MINUS
SELECT patient_id, name FROM Patients WHERE department = 'Cardiology';
'[프로그래밍] DataBase' 카테고리의 다른 글
[DATABASE] ORACLE JOIN (0) | 2024.11.11 |
---|---|
[DATABASE] ORACLE 함수와 표현식 (0) | 2024.11.11 |
[DATABASE] ORACLE SQL (3) | 2024.11.11 |
[DataBase] SQL 구문 (0) | 2024.05.15 |
[DataBase] SQL (0) | 2024.05.15 |