강의 자료 : [KDC] 엑셀보다 쉽고 빠른 SQL - 1주차
SQL이 무엇인지 배우고, SELECT, FROM문을 사용해 실습해 보고, 추가로 WHERE 절을 이용하여 실습해 보는 시간을 가졌습니다.
DBeaver를 사용하여 실습을 진행하였습니다.
SQL이란?
데이터베이스와 대화를 하기 위한 언어
SQL 이란 언어를 이용하여 데이터베이스에 요청을 하는 질의를 ‘Query’ 라 함
데이터베이스에 요청을 할 때 Query 작성이라는 말을 사용
데이터베이스
데이터가 저장되어 있는 큰 폴더
데이터베이스라는 폴더가 있고 그 안에 테이블이라는 파일이 있다고 생각하면 됨
파일은 엑셀 파일처럼 생김
각 열을 컬럼 또는 필드라고 함
SELECT, FROM
원하는 곳에서 데이터를 가져오는 기본 명령어
SELECT : 데이터를 조회하는 모든 쿼리에 사용됨
FROM : 데이터를 가져올 테이블을 특정해주는 문법
* : 모든 컬럼을 가져와 준다는 의미
기본 문법
select *
from food_orders

원하는 컬럼 선택
select order_id, restaurant_name
from food_orders
food_orders 테이블에서 order_id, restaurant_name 커럼을 선택하여 조회
컬럼에 별명 추가
컬럼 옆에 별명 작성하여 컬럼명 변경
구분 영문, 언더바 특수문자, 한글
| 영문, 언더바 | 특수문자, 한글 | |
| 방법 | 별명만 적음 | “별명” 으로, 큰 따옴표 안에 적어줌 |
| 예시 | ord_no | “ord no” "주문번호" |
select order_id as ord_no,
restaurant_name "식당 이름"
from food_orders
EX)
고객 (customers) 테이블에서 name, email 을 가져와서 이름, e-mail 으로 별명 지어주기
select name "이름",
email "e-mail"
from customers
WHERE 절
데이터 중 원하는 데이터 필터링
구조
select *
from 테이블
where 필터링 조건
고객 (customers) 테이블에서 21살인 사람을 필터링
select *
from customers
where age=21
필터링은 숫자, 문자 모두 사용 가능
문자를 사용할 때는 작은 따옴표 사용
대소문자 구분 없이 사용 가능
고객 (customers) 테이블에서 여성을 필터링
select *
from customers
where gender='female'
필터링 할 때 유용한 표현( 비교연산, BETWEEN, IN, LIKE)
비교연산
| 비교연산자 | 의미 | 예시 |
| = | 같다 | age=21 gender=’female’ |
| <> | 같지 않다 (다르다) | age<>21 gender<>’female’ |
| > | 크다 | age>21 |
| >= | 크거나 같다 | age>=21 |
| < | 작다 | age<21 |
| <= | 작거나 같다 | age<=21 |
나이가 21세 미만인 고객 조회
select *
from customers
where age<21
BETWEEN
나이가 10과 20 사이
where age between 10 and 20
IN
포함하는 조건 추가
나이가 15, 21, 31인 경우
age in (15, 21, 31)
LIKE
완전히 똑같지는 않지만 비슷한 값을 조건으로 추가
김으로 시작하는 이름
name like '김%'
식당 이름에 Next를 포함
restaurant_name like '%Next%'
임으로 끝나는 이
name like '%임'
EX) 고객 (customers) 테이블에서 나이가 40세 이상인 고객 조회하기
select *
from customers
where age>=40
EX) 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기
select *
from food_orders
where restaurant_name like 'B%'
논리연산
| 논리연산자 | 의미 | 예시 |
| AND | 그리고 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
| OR | 또는 | age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성 |
| NOT | 아닌 | not gender=’female’ → 여성이 아닌 |
EX) 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
select *
from food_orders
where cuisine_type='Korean' and price>=30000
숙제
상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
select restaurant_name, customer_id
from food_orders
where food_preparation_time between 20 and 30
and cuisine_type='Korean'