SQL에서의 '검색'
DB를 사용할때 가장 중요한 것이 바로 '검색'이다. 검색은 데이터가 저장되어 있는 테이블에서 필요한 데이터를 뽑아내는 것을 의미한다. 이를 다른말로 질의(Query쿼리) 또는 추출(Retrieve)라고도 한다.
- SELECT 구
검색을 위해 사용하는 SQL구문을 SELECT구문이라 표현하며, DB에 등록되어 있는 스키마와 내부 데이터를 불러올 수 있다.
+ Table 만들기
첫째로, 우선 SELECT 구문을 사용해 볼 테이블이 필요로 하므로 테이블을 만들고 시작한다.
아래와 같이 DML 명령어인 CREATE TABLE 과 INSERT INTO 명령어로 테이블 스키마를 지정하고 데이터를 넣어준다.
아래 쿼리를 통해 테이블이 생성되었다.
본격적으로 SELECT 구문을 실행해본다.
SELECT구를 이용하면 FROM구에서 제시된 테이블(예시에서는 ADDRESS 테이블)에서 불러오고 싶은 컬럼을 선택하여 검색할 수 있다. * 은 테이블 전체 컬럼을 불러오며, 아래예시의 주석 부분과 같은 역할을 한다.
- WHERE구
SELECT구는 테이블의 컬럼(속성)을 지정하여 검색한다고 설명한다면, WHERE은 더 세부단위의 행(레코드)을 지정하여 검색한다고 설명할 수 있겠다. (+ NULL값도 검색 가능하다)
아래 예시에서는 ADDRESS 테이블에서 주소(address) 레코드가 '서울시'일 때의 경우를 뽑아온 것이다.
- WHERE구의 다양한 조건 지정1 (연산자)
WHERE구에서 레코드의 조건을 지정할 때 연산자를 사용하는데, 동일 조건뿐 아니라 아래 표와 같이 다양한 조건을 사용할 수 있다.
연산자 | 의미 |
= | ~와 같음 |
<> | ~와 같지 않음 |
>= | ~이상 |
> | ~초과 |
<= | ~이하 |
< | ~미만 |
위의 연산자를 이용해 나이(age)가 35세 이상인 경우를 검색해보았다.
- WHERE구의 다양한 조건 지정2 (AND / OR / IN)
WHERE구의 AND / OR / IN 옵션을 사용하면, 복합적인 조건을 적용하여 검색할 수 있다.
AND 조건은 제시한 조건을 모두 만족하는 레코드를 검색할 때 사용하는 옵션이다.
OR 조건은 제시한 조건 중 하나라도 만족하는 레코드를 검색할 때 사용하는 옵션이다.
위의 조건들은 다음의 예시와 같이 사용해볼 수 있다.
IN 조건은 OR 조건과 비교하여 설명할 수 있겠다.
한 컬럼(속성) 내에서 다양한 레코드를 뽑아내고 싶을때 OR 조건을 사용해도 되지만, IN 조건을 사용하면 보다 깔끔한 쿼리로 완성시킬 수 있다.
'Data Analysis > SQL' 카테고리의 다른 글
[SQL] 06. 조건 분기 응용1 (CASE 식과 WHERE 구의 비교) (0) | 2019.07.17 |
---|---|
[SQL] 05. 조건 분기(CASE),집합 연산, 윈도우 함수(WINDOW) (0) | 2019.07.17 |
[SQL] 04. SQL 기초 쿼리2 (GROUP BY&HAVING/ORDER BY/서브쿼리) (0) | 2019.07.15 |
[SQL] 02. SQL 실습환경 찾기 (feat. Oracle Live SQL) (0) | 2019.07.14 |
[SQL] 01. SQL 시작하기 (feat. 한빛출판사 - SQL 레벨업) (0) | 2019.07.14 |
댓글