SQL : 데이터베이스와 대화를 하기 위한 언어
- SQL이라는 언어를 이용하여 데이터베이스에 요청하는 질의 : "Query"
데이터베이스 : 데이터가 저장되어있는 큰 폴더
테이블 : '데이터베이스' 라는 폴더 안에 '테이블' 이라는 파일
컬럼 혹은 필드 : '테이블' 안의 각각의 열
가장 기본적인 Query 문
select : 데이터를 가져오는 기본 명령어, 데이터 조회하는 모든 Query 에 사용
from : 데이터를 가져올 테이블을 특정해주는 문법
* : 모든 컬럼을 가져와준다
컬럼에 별명(alias) 주기
- 컬럼1 as 별명1
- 컬럼2 별명2
⚠ 주의 사항 ⚠
구분 | 영문, 언더바 | 특수문자, 한글 |
방법 | 별명만 적음 | "별명"으로, 큰 따옴표 안에 적어줌 |
예시 | ord_no | "ord no" "주문번호" |
where : 전체 데이터 중 원하는 데이터만 필터링할 수 있게 함.
조건 1.
select *
from 테이블
where 필터링 조건 (eg. 20살 이상)
select *
from customers
where age=21
조건을 지정할 때 =' ' 사용
select *
from food_orders
where cuisine_type='Korean'
*필터링할 때 유용한 표현 (비교연산, between, in, like)
비교연산자
비교연산자 | 의미 | 예시 |
= | 같다 | age=21 gender='female' |
<> | 같지 않다(다르다) | age<>21 gender<>'female' |
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
between A and B : A 와 B 사이
조건 2.
주문 (food_orders) 테이블에서 주문 금액이 20,000~30,000원 사이인 고객 조회하기
select *
from food_orders
where price between 20000 and 30000
in : '포함'하는 조건 주기
in (A, B, C)
조건 3.
나이가 15, 21, 31 세인 경우
age in (15, 21, 31)
조건 4.
음식 종류가 한식, 일식인 경우
cuisine_type in ('Korean', 'Japanese')
like : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
1. 특정한 문자로 시작하는 경우
- 기본 문법 : like ‘시작문자%'
- 예시1 : ‘김’ 으로 시작하는 이름
name like '김%'
2. 특정한 문자를 포함하는 경우
- 기본 문법 : like ‘%포함문자%’
- 예시2 : 식당 이름에 ‘Next’ 를 포함하는 경우
restaurant_name like '%Next%'
3. 특정한 문자로 끝나는 경우
- 기본 문법 : like ‘**%**끝나는문자’
- 예시3 : ‘임’ 으로 끝나는 이름
name like '%임'
조건 5.
주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기
select *
from food_orders
where restaurant_name like 'B%'
*여러개의 조건으로 필터링 (논리연산)
- 필터링 조건 여러개를 하나의 Query 문에서 적용이 가능
- 예) ‘나이가 20세 이상인’, ‘여성 고객’ 두가지 조건 적용
- 여러개의 조건을 적용할 때 사용되는 연산 = ‘논리연산’
논리연산의 종류
논리연산자 | 의미 | 예시 |
and | 그리고 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
or | 또는 | age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성 |
not | 아닌 | not gender=’female’ → 여성이 아닌 |
and : 그리고, ~이고
조건 6.
주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
select *
from food_orders
where cuisine_type='Korean' and price>=30000
or : 또는, ~이거나
조건 7.
결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회
select *
from payments
where pay_type='card' or vat<=0.2
조건 8.
상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
select restaurant_name, customer_id
from food_orders
where food_preparation_time between 20 and 30
and cuisine_type='Korean'
TIL 9월 6일