Select Query 문

*어떤 Table에서 어떤 Field 의 data를 가져올지 *로 구성 됨

구성 Execl sheet 를 생각하면 편하다.

기초 문법

SELECT 문

- 기본적인 data 조회할 때 사용

특정 Table안의 모든 Field 조회

  • SELECT * from tableName

특정 Table안의 특정 Field 조회

  • SELECT fieldName form tableName
  • SELECT fieldName1 , fieldName2 from tableName

Where 절

- 특정 table안의 특정 data 조회
- 텍스트상 구분 짓기위해 ( ) 표시 실제로는 ( )는 기입하지 않음 - SELECT * from (tableName) where (fieldName) = 'data'
*data는 ' '  꼭 문자열로 표기* 

UP / DOWN ( data 가 … Number 이상 혹은 … 이하 )

  • SELECT * from (tableName) where (field Name) >= Number
  • SELECT * from (tableName) where (field Name) <= Number

AND / OR (data1 이면서 data2인 )

  • SELECT * from (table Name) where (field name1) = ‘data1’ and (field Name2) = ‘data2’
  • SELECT * from (table Name) where (field name1) = ‘data1’ or (field Name2) = ‘data2’

WHERE 와 같이 쓰이는

같지 않음( != )

  • SELECT * from tableName where fieldName != ‘data1’ - data1 이 아닌 data만 출력

범위 ( between )

  • SELECT * FROM tableName WHERE (date type) fieldName BETWEEN ‘date start ‘ and ‘date end’ - date start 부터 date end 까지의 ‘data’ 조회 (date type)

포함 ( in )

  • SELECT * FROM tableName WHERE [(date type) fieldName: example week] IN (1,3,4,5) - 1, 3, 4, 5 week 의 데이터를 조회

패턴 ( like )

  • SELECT * FROM tableName WHERE (ex.email) LIKE ‘%daum.net’ - fieldName email 에서 daum.net으로 끝나는(% 기준으로 ) data 조회
  • SELECT * FROM tableName WHERE email LIKE ‘a%t’ - fieldName email 에서 a로 시작해 t로 끝나는 data 조회

예제 (sparta database 기준)

  1. 결제수단이 CARD가 아닌 주문 데이터만 추출

  2. 20000 ~ 30000 포인트 보유하고 있는 유저만 추출해보기

  3. 이메일이 s로 시작하고 com으로 끝나는 유저만 추출해보기

  4. 이메일이 s로 시작하고 com으로 끝나면서 성이 ‘이’씨인 유저만 추출해보기

LIMIT 문

  • 큰 테이블을 조회할 때 효율적으로 최대 데이터 수를 조절 가능
  • SELECT fieldName FROM tableName LIMIT number (number의 수만큼 data 표현)

DISTINCT 문

  • 중복을 제거하여 각 테이블에 해당하는 field의 Data를 효율적으로 조회 가능
  • SELECT DISTINCT (fieldName) FROM tableName

COUNT 문

  • data 의 총 수를 count
  • SELECT count( * ) FROM tableName WHERE fieldName = ‘data’

DISTINCT && COUNT

  • SELECT COUNT( DISTINCT ( fieldName ) ) FROM tableName ex. name field에서 총 몇개의 성씨가 존재할까