Files
2021-12-13 21:23:43 +09:00

6.4 KiB

06강. 검색 조건 지정하기

  • 데이터 검색에는 열을 지정하는 방법과 행을 지정하는 방법이 있다.

SELECT 구와 WHERE 구

SELECT 열1, 열2 FROM 테이블명 WHERE 조건식
  • 행을 선택할 때는 WHERE 구를 사용하며, 열을 선택할 때는 SELECT 구를 사용한다.

1. SELECT 구에서 열 지정하기

  • 데이터를 선택할 때는 열이나 행을 한정한다.

SELECT 구에서 열 지정

SELECT 열1, 열2 ... FROM 테이블명
  • 열은 위의 구문처럼 콤마(,)를 이용하여 구분 지으며 여러 개를 지정할 수 있고 지정한 열만 결괏값으로 표시된다.
  • 만약 열을 전혀 지정하지 않으면 구문 에러가 발생하며, 또한 테이블에 존재하지 않는 열을 지정해도 에러가 발생한다.
  • 열 지정 순서는 임의로 정할 수 있다.
  • 결과는 지정한 열의 순서대로 표시되며, 동일한 열을 중복해서 지정해도 무관하다.
SELECT 구에서 결과로 표시하고 싶은 열을 지정할 수 있다!

2. WHERE 구에서 행 지정하기

  • 행 속에서 필요한 데이터만 검색하기 위해서는 WHERE 구를 사용한다.
  • WHERE 구는 FROM 구의 뒤에 표기하며, 예약어 WHERE 뒤에 검색 조건을 표기한다.
  • 조건에 일치하는 행만 SELECT의 결과로 반환된다.

WHERE 구로 행 추출

SELECT 열 FROM 테이블명 WHERE 조건식

구의 순서와 생략

  • SQL에서는 구의 순서가 정해져 있어 바꿔적을 수 없다.
  • FROM 구 뒤에 WHERE 구를 표기한다.
  • 구에는 WHERE 구처럼 생략 가능한 것도 있다.
  • 만약 WHERE 구를 생략한 경우는 테이블 내의 모든 행이 검색 대상이 된다.

WHERE 구

  • 조건식은 열과 연산자, 상수로 구성되는 식이다.
  • 예를 들면 no = 2는 올바른 조건식이며, 이 조건식에 일치하는 행만 SELECT의 결과로 반환된다.
  • WHERE 구로 행을 추출하면서 SELECT 구로 열 지정을 동시에 할 수도 있다.
WHERE 구의 조건에 일치하는 행만 결과로 반환된다!

조건식

  • 조건식 no = 2no 열 값이 2일 경우에 참이 되는 조건이다.
  • no = 2no = 2의 세 개 항목으로 나눌 수 있다. 첫 번째 항목인 no는 열 이름이고 두 번째 항목 =는 연산자이다.
  • 연산자란 어떤 계산을 할지 지정하는 것으로 보통 기호로 표기한다.
  • =의 경우, 좌우로 2개 항목이 필요한 이항 연산자에 해당하며 일반적으로 많이 쓰이는 기호이다.
  • = 연산자를 기준으로 좌변과 우변의 항목을 비교하고, 서로 같은 값이면 참을, 같지 않으면 거짓을 반환한다.
  • 조건식을 만족한(참) 행만 결괏값으로 반환된다.
  • = 연산자는 비교한 결괏값이 참인지 거짓인지를 반환하므로 비교 연산자라 부른다.
조건식은 참 또는 거짓의 진리값을 반환하는 식으로 비교 연산자를 사용해 표현한다!

값이 서로 다른 경우 '<>'

  • 비교 연산자는 = 외에도 존재한다.
  • 조건식에 사용하는 연산자를 바꾸거나 복수의 연산자를 조합하면 복잡한 조건식을 만들 수 있다.
  • = 연산자가 서로 같은 값인지를 비교하는 연산자인 데 반해, <> 연산자는 서로 다른 값인지를 비교하는 연산자이다.
<> 연산자를 통해 '값이 서로 다른 경우' 참이 되는 조건식으로 변경할 수 있다!
  • WHERE 구에서 지정한 조건식에 따라 반환되는 행의 갯수는 달라지며, 반드시 하나의 행만 반환되는 것은 아니다.
  • 조건식에 일치하는 행이 전혀 없는 경우에는 아무것도 반환되지 않을 수도 있다.

3. 문자열형의 상수

  • 수치형 조건식의 경우 비교할 숫자를 그대로 조건식에 표기한다.
  • 하지만 문자열형을 비교할 경우는 'banjjoknim'처럼 싱글쿼트(' ')로 둘러싸 표기해야 한다.
  • 날짜시간형의 경우에도 싱글쿼트로 둘러싸 표기하며, 이때 연월일을 하이픈(-)으로 구분한다.
  • 시각은 시분초콜론(:)으로 구분하여 표기한다.
  • 문자열형의 열과 비교하기 위해서는 조건으로 지정할 값도 그 자료형에 맞춰 지정해야 한다.
  • 자료형에 맞게 표기한 상수값을 리터럴(literal)이라 부른다.
  • 문자열 리터럴은 싱글쿼트로 둘러싸 표기한다.
수치형 상수 -> 1 100 -3.8
문자열형 상수 -> 'ABC' 'banjjoknim'
날짜시간형 상수 -> '2013-01-25' '2013-03-03 10:21:00'

4. NULL값 검색

  • = 연산자로 NULL을 검색할 수는 없다.

IS NULL

NULL 값을 검색할 때는 = 연산자가 아닌 IS NULL을 사용한다.

  • IS NULL은 술어로 연산자의 한 종류로 생각하면 된다.
  • birthday IS NULL 과 같이 사용하면 된다.
  • 반대로 NULL 값이 아닌 행을 검색하고 싶다면 IS NOT NULL을 사용하면 된다.
NULL 값을 검색할 경우에는 IS NULL 을 사용한다!

5. 비교 연산자

  • = 연산자와 <> 연산자, IS NULL로 검색할 수 있다.

  • WHERE 구로 지정하는 조건식은 참과 거짓을 반환하는 비교 연산자나 술어를 사용해서 표기할 수 있다.

  • = 연산자 : 좌변과 우변의 값이 같을 경우 참이 된다.

  • <> 연산자 : 좌변과 우변의 값이 같지 않을 경우 참이 된다.

  • > 연산자 : 좌변의 값이 우변의 값보다 클 경우 참이 된다. 같거나 작을 경우는 거짓이 된다.

  • >= 연산자 : 좌변의 값이 우변의 값보다 크거나 같을 경우 참이 된다. 작을 경우는 거짓이 된다.

  • < 연산자 : 좌변의 값이 우변의 값보다 작을 경우 참이 된다. 같거나 클 경우는 거짓이 된다.

  • <= 연산자 : 좌변의 값이 우변의 값보다 작거나 같을 경우 참이 된다. 클 경우는 거짓이 된다.

  • < 연산자와 > 연산자는 대소관계를 비교하는 연산자이지만 =을 붙임으로써 서로 값이 같은 경우도 비교할 수 있다.

  • =<, >의 뒤에 붙인다(앞에 붙이는 것은 틀린 표기법).

  • 또한 <=>=을 표기할 때에는 사이에 스페이스를 넣어서는 안된다.

  • < =와 같이 스페이스를 넣으면 <=로 연산자가 두 개라고 판단하여 에러가 발생한다.