본문 바로가기

블로그/DB(HeadFirstSQL)

Head First SQL(헤드퍼스트SQL) 핵심요약 - Chapter2. SELECT문

2. SELECT문

1) 더 나은 SELECT 문 : 예) SELECT * FROM my_contacts WHERE first_name = 'Anne';

  ┗WHERE 절을 사용하면 데이터베이스 시스템에 무엇을 찾는지 전달 할 수 있음.

    * : 데이터베이스 시스템에게 테이블의 모든 열을 보여달라는 의미.

 ※주의 : 문자열에 작은 따옴표를 사용. 작은 따옴표 필요 없는 자료형 = INT, DEC  


2) 작은 따옴표 사용법 : 

① 작은 따옴표 앞에 백슬래시('\') 예) INSERT INTO my_contacts (location) VALUES ('Grover\'s Mill');

② 작은 따옴표 2번 예) INSERT INTO my_contacts (location) VALUES ('Grover''s Mill');


3) 특정 데이터 SELECT : 앞의 SELECT문에서 *대신 원하는 열을 입력하면 그 열만 SELECT됨.

예) SELECT drink_name, main, second FROM easy_drinks WHERE main = 'soda';

Tip. 결과를 더 빠르게 가져올 수 있음.


4) 쿼리들의 결합 : AND, OR를 사용해서 두 개의 절을 결합 가능.

예)SELECT location FROM doughnut_ratings WHERE type = 'plain glazed' AND ration = 10;

   SELECT location FROM doughnut_ratings WHERE type = 'plain glazed' OR ration = 10;

Tip. 같은 WHERE 절에 AND와 OR을 동시에 사용도 가능.


5) 비교 연산자를 이용한 숫자형, 문자열 처리 : >, <, >=, <=, <> 사용 가능.

예)SELECT drink_name FROM drink_info WHERE cost >= 3.5 AND calories < 50;

   SELECT drink_name FROM drink_info WHERE drink_name >= 'L' AND drink_name <'M';

   ┗첫번째 문자가 L로 시작하는 모든 음료 찾기.


6) IS NULL :
 NULL 찾기

예)SELECT drink_name FROM drink_info WHERE  calories IS NULL;


6) LIKE :
 문자열의 일부가 일치하는 결과 찾기

예)SELECT * FROM my_contacts WHERE location LIKE '%CA';

    ┗ location 열이 CA로 끝나는 모든 값 찾기

 ※와일드카드 : % = 다수의 불특정 문자를 대신, _ = 단 하나의 불특정 문자를 대신. 


7) BETWEEN : 범위 정해서 찾기

예)SELECT drink_name FROM drink_info WHERE  calories BETWEEN 30 AND 60;


8) IN : 여러 개의 OR

예)SELECT date_name FROM black_book WHERE rating IN (‘innovative’, ‘fabulous’, ‘delightful’, ‘pretty good’);


9) NOT : 부정

예)SELECT drink_name FROM drink_info WHERE NOT carbs BETWEEN 3 and 5; 

    ┗ carbs3 미만, 5 초과인 레코드들을 찾음.

  SELECT date_name FROM black_book WHERE NOT date_name LIKE ‘A%’ AND NOT date_time LIKE ‘B%’
  ┗ date_nameAB로 시작하지 않는 레코드들을 찾음

※주의 : WHERE, LIKE와 함께 사용할때 바로 뒤에 NOT! AND, OR도 마찬가지!