SELECT * FROM 테이블명;
프로그래밍 언어를 배울 때 Hello, World! 출력으로 시작하듯이 데이터 조회는 SQL 명령의 기본이다. 명령을 작성할 때는 마지막에 꼭 세미콜론(;)을 붙여주자.
SELECT
SELECT는 DML에 해당되고 데이터를 조회할 때 자주 사용한다. SELECT 명령을 '질의' 또는 '쿼리'라고 부른다. SQL 명령은 키워드를 기준으로 '구'로 구분할 수 있다.
예를 들어 다음 쿼리의 경우 SELECT 구, FROM 구를 가진다.
SELECT * FROM blog;
SELECT 명령은 여러 구로 구성된다. 명령을 작성할 때는 예약어는 대문자로, 객체명은 소문자로 작성하는 방법이 가독성에 좋다.
값이 없는 데이터 = NULL
NULL은 값이 저장되지 않은 상태를 의미한다. NULL을 이해하는 것은 SQL에서 중요하다.
테이블 구조 참조하기
DESC 테이블명;
테이블의 구조를 참조할 때 DESC
명령을 사용한다.
검색 조건 지정하기
SELECT 열1, 열2 FROM 테이블명 WHERE 조건식;
조건을 지정하여 데이터를 조회할 때 WHERE
구를 사용한다. 조건식에 일치하는 행이 전혀 없을 경우 아무것도 반환하지 않는다.
- WHERE 구로 행을, SELECT 구로 열을 선택한다.
앞서 별표를 사용하여 전체열을 지정했다. 특정열을 지정할 때는 열명을 지정한다.
NULL값 검색
SELECT 열 FROM 테이블명 WHERE 열 IS NULL;
조건식을 작성할 때 =
, <>
와 같은 비교 연산자를 사용했다. 하지만 NULL 값을 다룰 때는 주의가 필요하다. NULL 값을 조회할 때는 IS NULL
을 사용한다.
조건 조합하기
논리 연산자 AND
, OR
, NOT
를 사용해서 복잡한 조건 조합이 가능하다.
AND로 조합하기
조건식1 AND 조건식2
AND
는 여러 조건을 만족해야 한다. 집합으로 표현하면 '교집합'이다.
OR로 조합하기
조건식1 OR 조건식2
OR
은 어느 쪽이든 조건을 만족하는 행을 모두 검색한다. 집합으로 표현하면 '합집합'이다.
연산자의 우선 순위
AND
는 OR
에 비해 우선순위가 높다. 원하는 결과를 조회하기 위해서는 괄호를 사용한다.
NOT으로 조합
NOT 조건식
조건식의 반대 값을 반환한다.
패턴 매칭에 의한 검색
LIKE
술어는 문자열의 일부분을 비교하는 '부분 검색'을 할 수 있다. 특정 문자나 문자열을 조회하는 방법을 '패턴매칭' 또는 '부분검색'이라 한다.
LIKE로 패턴 매칭하기
열명 LIKE '패턴'
패턴을 정의할 때는 메타문자(와일드카드)를 사용한다. 메타문자는 다음과 같다.
- 퍼센트(%): 임의의 문자열
- 언더스코어(_): 임의의 문자 하나
- 와일드카드로 자주 쓰이는
*
는 LIKE에서 사용할 수 없다.
WHERE 열명 LIKE '%\%%'
메타문자 자체를 검색할 때는 '이스케이프' 문자 역슬래시(\)
를 사용한다. 간단한 패턴 매칭은 LIKE로 충분하지만 복잡한 패턴을 매칭하는 경우 정규 표현식(Regular Expression)
을
사용한다. 정규표현식에서 더 많은 메타문자를 사용해서 폭넓게 패턴을 지정할 수 있다.