[SQL첫걸음]181031


SELECT

  • 열을 한정할 때 이용
  • SELECT 열1, 열2, ... FROM 테이블명
  • 입력한 열들을 출력한다. 순서는 입력한 순서대로


WHERE

  • 특정 조건의 행을 선택할 때 이용
  • SELECT 열 FROM  테이블명 WHERE 조건식
  • 조건식이 참인 행만 출력한다.
  • 문자와 날짜는 싱클쿼트(' ')로 둘러싸 표기해야 한다. 자료형에 맞게 표기한 상수값을 리터럴 이라고 한다.
  • NULL값을 검색할 때는 IS NULL을 이용한다.
    ex. SELECT * FROM sample21 WHERE birthday IS NULL;
  • NULL값이 아닌걸 검색하고 싶으면 IS NOT NULL을 쓴다.
  • 연산자의 종류
    •  = 좌변과 우변의 값이 같은 경우 참
    • <> 좌변과 우변의 값이 같지 않은 경우 참
    • > 좌변의 값이 우변의 값보다 클경우 참 (< 는 반대)
    • >= 좌변의 값이 우변의 값보다 크거나 같을 경우 (<=는 반대)
    • =은 <, >의 뒤에 붙인다. 반대로 쓰면 틀린표기다. (=< , =>는 틀림)

AND, OR, NOT
  • 조건식1 AND 조건식2
    • 조건식1, 2가 모두 만족해야 참 / 교집합
  • 조건식1 OR 조건식2
    • 조건식1, 2중 하나만 만족하면 참 / 합집합
  • 완벽한 조건을 양쪽 모두 입력해야 원하는 결과를 출력할 수 있다.
    • SELECT * FROM sample24 WHERE no=1 OR 2; (x)
    • SELECT * FROM sample24 WHERE no=1 OR no=2; (o)
  • AND는 OR에 비해 우선 순위가 높다.
    • WHERE a=1 OR a=2 AND b=1 OR b=2 는 WHERE a=1 OR (a=2 AND b=1) OR b=2 을 의미한다. a열이 2이고 b열이 1인 행과 a가 1인행, b가 2인행을 출력한다.
    • WHERE (a=1 OR a=2) AND (b=1 OR b=2) 는 a가 1 또는 2이고 b가 1또는 2인 행을 출력한다.
    • 이런 실수를 없애기 위해 OR조건식은 괄호로 묶어 지정하는 경우가 많다. 습관을 들이자.
  • NOT 조건식
    • 조건식이 거짓인 값을 출력
  • NOT은 오른쪽에만 조건식이 있는 '단항 연산자' AND와 OR는 양쪽에 조건식이 있어야 하는 '이항 연산자'

LIKE
  • '특정 문자나 문자열이 포함되어 있는지를 검색하고 싶은 경우' 사용한다. 이런 방식을 '패턴 매칭' 또는 '부분 검색'이라고 한다.
    • cf. = 연산자는 열 값이 완전히 일치할 때 참이 된다.
  • 열명 LIKE '패턴'
  • 패턴은 문자열로 지정한다. 수치형 상수는 지정할 수 없다.
  • 메타문자도 사용할 수 있다.
    • %는 임의의 문자열을 의미
    • _는 임의의 문자 하나를 의미
    • WHERE text LIKE 'SQL%'
      • text열에서 SQL이 가장 앞에 있는 행을 출력
      • 출력예: SQL은 RDBMS를....
    • WHERE text LIKE '%SQL%'
      • text열에서 SQL이 중간에 있는 행을 출력
      • text열에서 SQL앞 뒤에 문자열이 없거나 빈 문자열이라도 출력한다. 즉 SQL이 들어간 모든 행을 출력한다.
      • 출력예: LIKE는 SQL에서 사용되는.... / SQL은 RDBMS를.... / ....입문 SQL
    • WHERE text LIKE '%SQL'
      • text열에서 SQL이 가장 뒤에 있는 행을 출력
      • 출력예: ....입문 SQL
  • LIKE로 메타문자와 동일한 문자를 검색하려면 '이스케이프'해야 한다.
    • \(역슬래쉬) 뒤에 메타문자를 쓰면 메타문자가 아닌 문자가 된다.
    • WHERE text LIKE '%\%%'
      • text열에서 %가 포함된 모든 행을 출력
      • 출력예: LIKE에서 메타문자 %와 _를 사용할 수 있다.
    • 문자열 안에 ' 작은따옴표가 있는 경우에는 작은 따옴표를 하나 더 붙여준다.
      • ex. It's 을 문자열 상수로 사용할 때
        LIKE 'It's' (x)   LIKE 'It''s' (o)


댓글

이 블로그의 인기 게시물

[엑셀 말고 스프레드시트] 03. 구글 스프레드시트 시작하기

[엑셀 말고 스프레드시트] 01. 구글 스프레드시트란?

[SQL첫걸음]181108