SQL 이란 데이터베이스와 대화를 하기 위한 언어입니다.
SQL 이란 언어를 이용하여 데이터베이스에 요청을 하는 질의를 'Query'라고 합니다.
데이터베이스에 요청을 할 때 Query 작성이라는 말을 사용합니다.
1) SQL 실습을 할 수 있는 프로그램은 DBeaver입니다.
DBeaver는 개발자가 SQL을 보다 손쉽게 사용할 수 있도록 도와주는 도구입니다.
2) 데이터베이스는 쉽게 말해 '데이터가 저장되어있는 큰 폴더' 입니다.
- 데이터베이스와 저장소, 데이터의 형태 등 여러가지 분류가 있습니다.
- 데이터베이스라는 폴더가 있고, 그 안에 테이블 이라는 파일이 있다고 생각하면 됩니다.
3) 테이블은 마치 '엑셀 파일'과 같이 생겼습니다.
- 테이블은 엑셀과 유사한 구조로 데이터를 갖고 있고, 각 열을 '컬럼' 혹은 '필드' 라고부릅니다.
4) 테이블 예시 목록
☑️ 테이블 목록
- food_orders : 음식 주문 정보 테이블
- payments : 결제 정보 테이블
- customers : 고객 정보 테이블
- ☑️ 테이블1 - food_orders
- order_id : 주문 번호
- customer_id : 고객 번호
- restaurant_name : 음식점 이름
- cuisine_type : 음식 종류
- price : 음식 가격
- quantity : 주문 수량
- day_of_the_week : 주말 구분
- rating : 음식점 평점
- food_preparation_time : 음식 준비 시간 (분)
- delivery_time : 음식 배달 시간 (분)
- ☑️ 테이블2 - payments
- order_id : 주문 번호
- pay_type 결제 수단
- vat : 수수료
- date : 결제 일자 (년-월-일)
- time : 설제 시간 (시:분:초)
- ☑️ 테이블3 - customers
- customer_id : 고객 번호
- name : 고객 이름
- email : 이메일 주소
- gender : 성별
- age : 나이
5) 기본 명령어 한 눈에 보기
SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용 됨
FROM : 데이터를 가져올 테이블을 특정해주는 문법
* : 모든 컬럼을 가져와준다는 의미
SQL은 '코드'가 아니라 데이터베이스에 요청을 하기 위한 '언어'이므로, 작성 전에 어떤 요청을 할 지 생각해봐야 합니다.
가장 기본적인 사항은 '어느 테이블에서 데이터를 가져올까'입니다.
6) 특정 테이블에 대한 모든 컬럼을 가져온다
select *
from 테이블
7) 테이블에서 원하는 컬럼만 선택하는 방법
select 컬럼1, 컬럼2
from 테이블
8) 컬럼에 별명(alias)를 주기
- 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다.
이럴 때 컬럼 명에 별명을 지정하여 변뎡할 수 있습니다.
- 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어줍니다.
1) 방법1 : 컬럼1 as 별명1
2) 방법2 : 컬럼2 "별명2"
9) 별명 지을 때 유의사항
구분 | 영문, 언더바 | 특수문자, 한글
방법 | 별명만 적음 | "별명" 으로, 큰 따옴표 안에 적어줌
예시 | ord_no | "ord no" "주문번호"
ex)
select order_id as ord_no,
restaurant_name "식당 이름"
from food_orders
10) 조건에 맞는 데이터로 필터링하기 (WHERE 이란)
- WHERE 절의 개념
1) 데이터 중에 특정 조건을 필터링 해야할 떄가 있습니다.
'나이가 21살인 사람' 과 같은 경우, 엑셀 혹은 다른 툴을 이용하여 필터링을 한 경험이 있으실 겁니다.
2) SQL 의 'WHERE'문법을 이용하여 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
3) WHERE의 구조
select *
from 테이블
where 필터링 조건 (eg. 20살 이상)
ex)
select *
from customers
where age=21
11) 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)
1) between : A 와 B 사이
- 기본 문법 : between a and b
where age between 10 and 20
2) IN : '포함'하는 조건 주기
- 기본 문법 : in (A,B,C)
age in (15, 21, 31)
cuisine_type in ('korean', 'Japanese')
3) like : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
ex) 특정한 문자를 포함하는 경우
- 기본 문법 : like ‘%포함문자%’
restaurant_name like '%Next%'
ex) 특정한 문자로 시작하는 경우
- 기본 문법 : like '시작문자%’
name like '김%'
ex) 특정한 문자로 끝나는 경우
- 기본 문법 : like '%시작문자'
name like '%임'
12) 여러 개의 조건으로 필터링하기 (논리연산)
1) WHERE 절에 여러 조건을 적용하기
- 지금까지 배운 필터링 조건 여러개를 하나의 Query 문에서 적용할 수 있습니다.
- ex) '나이가 20세 이상인', '여성 고객' 두가지 조건 적용
- 여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'입니다.
ex)
select *
from food_orders
where cuisine_type='Korean' and price>=30000
ex)
select *
from payments
where pay_type='card' or vat<=0.2
13) 에러메시지에 당황하지 않고 스스로 문제 해결하기
14) HW.1주차 숙제
상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
SELECT restaurant_name, customer_id
FROM food_orders
WHERE food_preparation_time between 20 and 30
and cuisine_type = 'Korean'
'SQL' 카테고리의 다른 글
SQL Pivot table (0) | 2024.06.27 |
---|---|
SQL subquery, join (0) | 2024.06.26 |
SQL substring, concat, if, case (0) | 2024.06.25 |
SQL 구조 마스터하기 (0) | 2024.06.20 |