Head First SQL 2장 (SELECT)

posted on 09 Jun 2017 under category SQL

대체텍스트

쿼리 사용 시 SELECT 같은 예약어(?)는 대문자로 통일하는것이 보기 좋습니다.

  1. WHERE 절에 조건을 많이 넣으려면 AND로 연결하면 된다.
    ex) SELECT * FROM my_contacts WHERE last_name = ‘변’ AND first_name = ‘창원’; 대체텍스트 my_contacts 테이블에서 last_name이 ‘변’이고, first_name 이 ‘창원’인 데이터를 찾아서 *(모든) 내용을 출력한다.

  2. OR 을 이용하면 한 컬럼에서 여러가지를 찾을 수 있다.
    ex) SELECT * FROM my_contacts WHERE last_name = ‘변’ OR last_name = ‘이’; 대체텍스트 my_contacts 테이블에서 last_name이 ‘변’ 이거나 last_name이 ‘이’인 데이터를 찾아서 모든 내용을 출력한다.

  3. 숫자 뿐만 아니라 문자열에도 < , > , <= , >= 을 사용할수있다.(p129)
    ex) SELECT * FROM my_contacts WHERE age >= 31; 대체텍스트 my_contacts 테이블에서 age가 31살 이상인 데이터를 찾아서 모든 내용을 출력한다.

  4. NULL을 검색하고 싶으면 IS NULL 을 사용하면 된다.
    ex) SELECT * FROM my_contacts WHERE seeking IS NULL; 대체텍스트 my_contacts 테이블에서 seeking이 NULL인 데이터를 찾아서 모든 내용을 출력한다.

  5. 와이들카드 LIKE 와 _
    • LIKE 와 %를 이용해서 검색때만 사용했지만 %는 몇개의 문자열이든 커버처준다. ex) SELECT * FROM my_contacts WHERE email LIKE ‘brody%’; 대체텍스트 my_contacts 테이블에서 email이 brody~~~~~이 데이터를 찾아서 모든 내용을 출력한다.

    • _는 1개의 어떤 문자열이든 커버처준다.
      ex) SELECT * FROM my_contacts WHERE first_name LIKE ‘_원’;
      ex) SELECT * FROM my_contacts WHERE first_name LIKE ‘__원’;
      대체텍스트
      my_contacts 테이블에서 first_name 이 ‘X원’인 데이터를 찾아서 모든 내용을 출력한다. (__원은 -> XX원)
  6. 범위형 만약 c >= 30 and c <= 60 이 있다면 BETWEEN 을 사용하면 된다.

    ex) SELECT * FROM my_contacts WHERE age BETWEEN 28 AND 31;
    대체텍스트
    my_contacts 테이블에서 age가 28이상 31이하인 데이터를 찾아서 모든 내용을 출력한다.

  7. IN 은 안에 포함되어 있는 것들이 있으면 값을 준다.

    WHERE c IN (‘cc’, ‘bb’, ‘dd’) <- cc,bb,dd 포함하고 있을때 사용.
    ex) SELECT * FROM my_contacts WHERE last_name IN (‘변’, ‘이’) 대체텍스트
    my_contacts 테이블에서 last_name이 ‘변’ 이거나 ‘이’ 인 데이터를 찾아서 모든 내용을 출력한다.(정확히 맞아야 검색한다.)

  8. NOT IN 은 안에 포함되어 있지 않을대 사용한다
    ex) WHERE c NOT IN (‘cc’,’bb’,’dd’) <- cc,bb,dd 가 포함되어 있지 않을 데이터를 검색한다. 대체텍스트 my_contacts 테이블에서 last_name이 ‘변’ 이거나 ‘이’ 가 아닌 데이터를 찾아서 모든 내용을 출력한다.

  9. NOT 은 BETWEEN이나 LIKE와 함께 사용할 수 있다. *반드시 WHERE 바로 뒤에 와야 한다.
    확인해보니까 WHERE C NOT <- 이런식으로 열명 먼저써도 되는듯.
    AND 와 OR 뒤에 NOT 이 와야함.

    ex) SELECT * FROM my_contacts WHERE age NOT BETWEEN 28 and 31;
    대체텍스트

검색 : 셀렉트, MYSQL

Written by Brody Byun
Please Do not steal content from our website.
Please let me know if you want to take the post.(email or reply)