[SQL 첫걸음] 2장. 테이블에서 데이터 검색

@장태근· April 18, 2024 · 5 min read

SELECT * FROM 테이블명;

프로그래밍 언어를 배울 때 Hello, World! 출력으로 시작하듯이 데이터 조회는 SQL 명령의 기본이다. 명령을 작성할 때는 마지막에 꼭 세미콜론(;)을 붙여주자.

SELECT

SELECT는 DML에 해당되고 데이터를 조회할 때 자주 사용한다. SELECT 명령을 '질의' 또는 '쿼리'라고 부른다. SQL 명령은 키워드를 기준으로 '구'로 구분할 수 있다.

예를 들어 다음 쿼리의 경우 SELECT 구, FROM 구를 가진다.

SELECT * FROM blog;

SELECT 명령은 여러 구로 구성된다. 명령을 작성할 때는 예약어는 대문자로, 객체명은 소문자로 작성하는 방법이 가독성에 좋다.

값이 없는 데이터 = NULL

NULL은 값이 저장되지 않은 상태를 의미한다. NULL을 이해하는 것은 SQL에서 중요하다.

테이블 구조 참조하기

DESC 테이블명;

테이블의 구조를 참조할 때 DESC 명령을 사용한다.

검색 조건 지정하기

SELECT1,2 FROM 테이블명 WHERE 조건식;

조건을 지정하여 데이터를 조회할 때 WHERE구를 사용한다. 조건식에 일치하는 행이 전혀 없을 경우 아무것도 반환하지 않는다.

  • WHERE 구로 행을, SELECT 구로 열을 선택한다.

앞서 별표를 사용하여 전체열을 지정했다. 특정열을 지정할 때는 열명을 지정한다.

NULL값 검색

SELECTFROM 테이블명 WHEREIS NULL; 

조건식을 작성할 때 =, <>와 같은 비교 연산자를 사용했다. 하지만 NULL 값을 다룰 때는 주의가 필요하다. NULL 값을 조회할 때는 IS NULL을 사용한다.

조건 조합하기

논리 연산자 AND, OR, NOT를 사용해서 복잡한 조건 조합이 가능하다.

AND로 조합하기

조건식1 AND 조건식2 

AND는 여러 조건을 만족해야 한다. 집합으로 표현하면 '교집합'이다.

OR로 조합하기

조건식1 OR 조건식2

OR은 어느 쪽이든 조건을 만족하는 행을 모두 검색한다. 집합으로 표현하면 '합집합'이다.

연산자의 우선 순위

ANDOR에 비해 우선순위가 높다. 원하는 결과를 조회하기 위해서는 괄호를 사용한다.

NOT으로 조합

NOT 조건식

조건식의 반대 값을 반환한다.

패턴 매칭에 의한 검색

LIKE 술어는 문자열의 일부분을 비교하는 '부분 검색'을 할 수 있다. 특정 문자나 문자열을 조회하는 방법을 '패턴매칭' 또는 '부분검색'이라 한다.

LIKE로 패턴 매칭하기

열명 LIKE '패턴'

패턴을 정의할 때는 메타문자(와일드카드)를 사용한다. 메타문자는 다음과 같다.

  • 퍼센트(%): 임의의 문자열
  • 언더스코어(_): 임의의 문자 하나
  • 와일드카드로 자주 쓰이는 *는 LIKE에서 사용할 수 없다.
WHERE 열명 LIKE '%\%%'

메타문자 자체를 검색할 때는 '이스케이프' 문자 역슬래시(\)를 사용한다. 간단한 패턴 매칭은 LIKE로 충분하지만 복잡한 패턴을 매칭하는 경우 정규 표현식(Regular Expression)을 사용한다. 정규표현식에서 더 많은 메타문자를 사용해서 폭넓게 패턴을 지정할 수 있다.

@장태근
개발자. 명료한 생각이 명료한 글이 된다.