검색 조건 지정하기

유석현(SeokHyun Yu)·2022년 8월 7일
0

SQL

목록 보기
6/45
post-thumbnail

서론

통상적인 데이터베이스(테이블)에는 많은 행과 열이 있다.

화면에 표시하여 데이터를 확인할 수 있는데, 한번에 볼 수 있는 데이터양은 한정되어 있다.

따라서 화면에 표시할 때는 특정 행이나 열을 선택하여 데이터베이스에서 데이터를 읽어오는, 다시 말해 '검색'이 빈번하게 일어난다.

이 검색에는 을 선택하는 방법과 을 선택하는 방법이 있다.

행을 선택할 때는 WHERE 구를 사용하며, 열을 선택할 때는 SELECT 구를 사용한다.

먼저 SELECT 구를 살펴보자.


1. SELECT 구에서 열 지정하기

SELECT column_1, column_2 FROM sample_table;

열을 한정하기 위해서는 위와 같이 열명을 지정해주면 된다.

콤마(,)를 이용하여 구분지으며 여러 개를 지정할 수 있다.

열을 전혀 지정하지 않거나 테이블에 존재하지 않는 열을 지정하면 구문 에러가 발생한다.

열 지정 순서는 임의로 정할 수 있다.

동일한 열을 중복해서 지정해도 무관하다.


2. WHERE 구에서 행 지정하기

테이블의 열은 많아야 몇십 개 정도지만 은 열에 비해 훨씬 많을 수 있다.

데이터베이스의 규모에 따라 다르지만 일반적으로 수백 건에서 대규모의 경우 수천만 건의 행에 달하는 경우도 있다.

이처럼 많은 행 속에서 필요한 데이터만 검색하기 위해서는 WHERE 구를 사용한다.

WHERE 구는 FROM 구의 뒤에 표기한다.

예약어 'WHERE' 뒤에는 검색 조건을 표기하며 이 조건에 일치하는 행만 SELECT의 결과로 반환된다.

SELECT * FROM sample_table WHERE id=1;

조건식은 연산자, 상수로 구성되는 식이다.

위 명령에서 'id=1'이 이에 해당한다.

'id=1'은 id 값이 1인 행만 추출하겠다는 의미이다.

id가 1이 아닌 값을 찾고 싶다면 '<>'연산자를 사용하면 된다.

SELECT * FROM sample_table WHERE id<>1;

참고로 SQL에서는 구의 순서가 정해져 있어 바꿔적을 수 없다.

'SELECT 구 => WHERE 구 => FROM 구'의 순으로 적으면 에러가 발생한다.


3. 문자열형의 상수

수치형 조건식의 경우 비교할 숫자를 그대로 조건식에 표기한다.

하지만 문자열형을 비교할 경우는 싱글쿼트(' ')로 둘러싸 표기해야 한다.

SELECT * FROM sample_table WHERE name='홍길동';

날짜시간형의 경우에도 싱글쿼트로 둘러싸 표기한다.

이때 연원일을 하이픈(-)으로 구분한다.

SELECT * FROM sample_table WHERE dates='2022-01-01';

시각은 시분초를 콜론(:)으로 구분하여 표기한다.

SELECT * FROM sample_table WHERE dates='2022-01-01 12:00:00';

한편 자료형에 맞게 표기한 상수값을 '리터럴'이라 부른다.


4. NULL값 검색

'검색'이라고는 해도 조건식을 표기하는 것뿐이므로 간단하다.

하지만 NULL값을 검색할 경우에는 조금 주의해야 한다.

왜냐하면 NULL값은 = 연산자로 검색할 수 없기 때문이다.

NULL값을 검색할 때는 'IS NULL'을 사용한다.

IS NULL은 술어로 연산자의 한 종류로 생각하면 된다.

SELECT * FROM sample_table WHERE id IS NULL;

반대로 NULL값이 아닌 행을 검색하고 싶다면 'IS NOT NULL'을 사용하면 된다.

SELECT * FROM sample_table WHERE id IS NOT NULL;
profile
Backend Engineer

0개의 댓글