SQL로 데이터 조회하기 - 1

Organ·2023년 10월 29일

데이터베이스

목록 보기
5/5

조회

SELECT STATEMENT - 1

ID가 9인 임직원의 이름과 직군을 알고 싶다


ID = 9 이 부분을 SELECTION CONDITION 이라고 한다.
NAME, POSITION 우리가 알고 싶어하는 부분을 PROJECTION ATTRIBUTES라고 한다.

SELECT 정리

SELECT STATEMENT - 2

PROJECT 2002를 리딩(LEADING)하고 있는 임직원의 ID와 이름과 직군을 알고 싶다

임직원 ID, 이름, 직군은 EMPLOYEE 테이블과 관련이 있고 앞에 있는 PROJECT 2002를 리딩하고 있는지의 여부는 PROJECT 테이블과 관련이 있다.

이런식으로 별칭을 이용해서도 표현 가능

DISTINCT 사용하기

디자이너들이 참여하고 있는 프로젝트들의 ID와 이름을 알고 싶다

이 경우에 어떤 TABLE이 관련이 있는지 개념적으로 접근해 보면

1. 우리는 디자이너들이 어떤 프로젝트에 참여하고 있는지 알아야 하기 때문에 EMPLOYEE 테이블의 POSITION이 필요하고
2. PROJECT 테이블의 ID와 NAME이 필요하다.
3.그 두개의 테이블을 연결시켜 줘야 하는데 연결시켜 주는 고리역할을 하는 것이 WORKS_ON 테이블이다. 왜냐하면 WORKS_ON 테이블은 어떤 임직원이 어떤 프로젝트에서 일하고 있는지 정보를 담고 있기 때문

이를 바탕으로 SQL문을 작성해 보면

결과로는

이렇게 나오는데 결과에 중복된 TUPLE들이 있다. 중복되는 TUPLE을 없애고자 DISTINCT를 활용하면


중복된 결과가 사라지는 것을 확인할 수 있다.

정리

DISTINCT 는 SELECT 결과에서 중복되는 TUPLES을 제외하고 싶을 때 사용한다.

LIKE 사용하기

이름이 N으로 시작하거나 끝나는 임직원들의 이름을 알고 싶다


%기호가 의미하는 것은 0개이상의 임의의 갯수를 가지는 문자를 의미한다.

이름에 NG가 들어가는 임직원들의 이름을 알고 싶다

이름이 J로 시작하는, 총 네 글자의 이름을 가지는 임직원들의 이름을 알고 싶다


_는 각각의 한 문자를 의미한다.

ESCAPE 문자와 함께 LIKE 사용하기


%_를 문자 본연의 의미로 사용하고 싶을 때 %의 경우에는 \%로, _의 경우에는 %\_ 이렇게 해주면 된다.

LIKE 정리

주의 사항

SELECT로 조회할 때 조건들을 포함해서 조회를 한다면 이 조건과 관련된 ATTRIBUTES 에 INDEX가 걸려있어야 한다. 그렇지 않다면 데이터가 많아질수록 조회 속도가 느려진다.

0개의 댓글