SELECT
- 데이터의 컬럼을 가져오기 위한 기본 명령어
- 데이터를 조회하는 모든 쿼리에서 사용됨
- 모든 컬럼을 가져오고 싶을 땐 * 사용
FROM
- 데이터를 가져올 테이블을 특정해주는 문법
- 여러 행을 가지고 오고 싶을 땐 별명(alias) 지정 가능
- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2
구분 | 영문, 언더바 | 특수문자, 한글 |
---|
방법 | 별명만 적음 | 큰따옴표 안에 별명 적음("별명") |
예시 | word_no | 'ord no', '주문번호' |
WHERE
- 특정 조건을 필터링해주는 문법
- 조건에 맞는 데이터만 필요할 때 사용
예제
- 음식 주문 테이블에서 order_id, price, quantity 가져오기.
이때 order_id는 order_no, price는 가격, quantity는 수량으로 표시
SELECT order_id, ord_no, price '가격', quantity '수량'
from food_orders
- 고객 데이터베이스에서 name, email 가져오기
이때 name은 '이름', email은 'e-mail'로 표시
SELECT name '이름', email 'e-mail'
FROM customers
필터링 시 유용한 연산
1. 비교연산
비교연산자 | 의미 | 예시 |
---|
= | 같다 | age=21, gender=’female’ |
<> | 같지 않다 (다르다) | age<>21, gender<>’female’ |
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
BETWEEM | A 와 B 사이 | age between 21 and 25 |
IN | ‘포함’ 하는 조건 주기 | age in (21,23,24) |
LIKE | 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기 | name like "김%" |
예제
- 21세 이상 고객들의 데이터만 추출하기
select *
from customers
where age>=21
- 21세에서 23세 사이 고객들의 데이터만 추출하기
select *
from customers
where age between 21 and 23
- 나이가 21,25,27세인 고객들의 데이터만 추출하기
select *
from customers
where age in (21,25,27)
- 성이 김씨인 고객들의 데이터만 추출하기
select *
from customers c
where name like "김%"
2. 논리연산
논리연산자 | 의미 | 예시 |
---|
AND | 그리고 | age>20 and gender=’female’→ 나이가 20세 이상이고, 여성 |
OR | 또는 | age>20 or gender=’female’→ 나이가 20세 이상이거나, 여성 |
NOT | 아닌 | not gender=’female’→ 여성이 아닌 |
예제
- 21세 이상 남성 고객의 데이터만 가져오기
select *
from customers
where age >=21 and gender = 'male'
- 카드로 지불했거나 vat가 0.2이상인 지불내역 가져오기
select *
from payments
where pay_type = 'card' or vat >=0.2
- 네이버 메일을 사용하는 사람을 제외한 고객 명단 가져오기
select *
from customers
where email not like "%naver.com"