1. SELF JOIN
예시: 의사가 의사를 참조하는 경우
병원 데이터베이스에서 Doctors 테이블에는 의사와 그들의 Supervisor 의 정보가 들어 있을때,
의사가 자신의 상급 의사 정보를 조회하기 위해 SELF JOIN을 사용
Doctors 테이블
DoctorID | DoctorName | SupervisorID |
1 | Dr. Kim | NULL |
2 | Dr. Lee | 1 |
3 | Dr. Park | 1 |
4 | Dr. Choi | 2 |
SELF JOIN 예시 쿼리
코드 예시 :
SELECT d1.DoctorName AS Doctor, d2.DoctorName AS Supervisor
FROM Doctors d1
LEFT JOIN Doctors d2 ON d1.SupervisorID = d2.DoctorID;
결과
Doctor | Supervisor |
Dr. Kim | NULL |
Dr. Lee | Dr. Kim |
Dr. Park | Dr. Kim |
Dr. Choi | Dr. Lee |
2. UNION
예시: 병원에서 의사와 간호사 목록을 하나의 리스트로 조회
의사와 간호사를 각각 저장하는 테이블에서
모든 의료진의 이름과 역할을 확인하고 싶을 때
UNION을 사용하여 Doctors와 Nurses 테이블을 결합
Doctors 테이블
DoctorID | Name |
1 | Dr. Kim |
2 | Dr. Lee |
Nurses 테이블
NurseID | Name |
1 | Nurse Park |
2 | Nurse Choi |
코드 예시 :
SELECT Name, 'Doctor' AS Role FROM Doctors
UNION
SELECT Name, 'Nurse' AS Role FROM Nurses;
결과
Name | Role |
Dr. Kim | Doctor |
Dr. Lee | Doctor |
Nurse Park | Nurse |
Nurse Choi | Nurse |
모든 의사와 간호사의 이름과 역할 반환
3. GROUP BY
예시: 환자 방문 내역을 각 진료 과목별로 그룹화하여 방문 수를 확인
병원의 Visits 테이블에 환자들이 방문한 진료 과목별 기록이 있습니다. 각 과목별로 방문 횟수를 파악하기 위해 GROUP BY를 사용할 수 있습니다.
Visits 테이블
VisitID | PatientID | Department |
1 | 101 | Cardiology |
2 | 102 | Orthopedics |
3 | 103 | Cardiology |
4 | 104 | Pediatrics |
5 | 105 | Cardiology |
코드 예시 :
SELECT Department, COUNT(*) AS VisitCount
FROM Visits
GROUP BY Department;
결과
Department | VisitCount |
Cardiology | 3 |
Orthopedics | 1 |
Pediatrics | 1 |
각 진료 과목에 대한 방문 횟수 반환
'[프로그래밍] DataBase' 카테고리의 다른 글
[DATABASE] SQL 작성 순 (1) | 2024.11.14 |
---|---|
[DATABASE] ORACLE JOIN (0) | 2024.11.11 |
[DATABASE] ORACLE 함수와 표현식 (0) | 2024.11.11 |
[DATABASE] ORACLE 연산자 (0) | 2024.11.11 |
[DATABASE] ORACLE SQL (3) | 2024.11.11 |