Tech

Diary

Lecture

About Me

개발중

SQL 데이터 조회

JeongSeulho

2025년 01월 05일

준비중...
클립보드로 복사

데이터 조회

연관된 2개의 테이블에서 데이터 조회

  • 프로젝트 2002의 리더인 직원의 id, 이름, 직군 조회

Image

copy
SELECT employee.id, employee.name, position -- projection attribute
FROM employee, project -- 관련된 테이블
WHERE project.id = 2002 AND project.leader_id = employee.id; -- selection condition AND join condition
  • 얻고자 하는 데이터의 attribute를 rojection attribute
  • 여러 tuple에서 선택하고자 하는 tuple의 조건을 selection condition 위에서의 (project.id = 2002)
  • 두 테이블을 연관시키는 조건을 join condition 위에서의 (project.leader_id = employee.id)

Image

연관된 3개의 테이블, 중복 제거 조회

  • 디자이너들이 참여하고 있는 프로젝트들의 id와 이름 조회

Image

copy
SELECT DISTINCT P.id, P.name -- DISTINCT는 해당 attribute 조합이 중복되는 경우 제거
FROM employee as E, works_on as W, project as P
WHERE E.position = 'DSGN' AND E.id = W.empl_id AND W.proj_id = P.id; -- join condition이 2개
  • 중복된 tuple을 제거하기 위해 DISTINCT 사용

문자열 조건으로 조회

  • 이름이 N으로 시작 또는 끝나는 직원의 이름 조회
copy
SELECT name
FROM employee
WHERE name LIKE 'N%' OR name LIKE '%N';
  • 이름에 NG가 포함된 직원의 이름 조회
copy
SELECT name
FROM employee
WHERE name LIKE '%NG%';
  • 이름이 J로 시작하면서 4글자인 직원의 이름 조회
copy
SELECT name
FROM employee
WHERE name LIKE 'J____';
  • %, _를 reserved character라 함
  • \(escape character)를 사용하여 이스케이프 가능