데이터베이스와 SQL (24.05.13)
스파르타코딩클럽
스파르타코딩클럽 | 올해의 브랜드 대상 1위 왕초보를 위한 온라인 코딩강의
online.spartacodingclub.kr
SQL 은 데이터베이스와 대화를 하기 위한 언어
- 데이터베이스에게도 ‘A를 주겠니?’라고 이야기할 때 사용하는 언어
- SQL 이란 언어를 이용하여 데이터베이스에 요청을 하는 질의를 ‘Query’라고 함
- 데이터베이스에 요청을 할 때 Query 작성이라는 말을 사용
- 다른 언어와 동일하게 SQL 도 일정한 문법을 갖고 있음
% 기본 구조를 같이 배워간다면, 어느새 SQL 문을 이해하고 사용하는 자신을 발견
설치, 테이블과 컬럼
DBeaver는 여러분이 SQL을 보다 손쉽게 사용할 수 있도록 도와주는 도구 ( SQL 실습을 할 수 있는 프로그램을 설치 )
https://dbeaver.io/download/
# DBeaver 다운로드
데이터베이스는 쉽게 말해 ‘데이터가 저장되어 있는 큰 폴더’
- 데이터베이스와 저장소, 데이터의 형태 등 여러 가지 분류가 있지만 강의에서 다룰 내용에만 집중
- 데이터베이스에도 ‘데이터베이스’라는 폴더가 있고, 그 안에 ‘테이블’이라는 파일이 있다고 생각
테이블과 칼럼이란
마치 ‘엑셀 파일’
- 테이블은 엑셀과 유사한 구조로 데이터를 갖고 있고, 각 열을 ‘컬럼’ 혹은 ‘필드’ 라고 부름
(예시
☑️ 테이블 목록
- 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 : 나이
SQL 데이터 조회하기 (SELECT, FROM)
가장 기본적인 사항은 ‘어느 테이블에서 데이터를 가져올까’이다.
> Query를 작성하기 전에 생각해야 할 것
- SQL 은 ‘코드’가 아니라 데이터베이스에 요청을 하기 위한 ‘언어’ 이므로, 작성 전에 어떤 요청을 할지 생각
☑️ 원하는 곳에서 데이터를 가져오는 기본 명령어 SELECT, FROM
기본 명령어 한눈에 보기
- SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query에 사용됨
- FROM : 데이터를 가져올 테이블을 특정해 주는 문법
- : 모든 칼럼을 가져와준다는 의미
DBeaver 쿼리창에서 실행버튼 (▶︎) 클릭 (실행하는 법)
select *
from food_orders
# 실행 할 Query 문에서 단축키 (Ctrl + Enter)
필요한 항목만 뽑아서 사용하기
원하는 컬럼을 선택하기
- 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능
- 모든 것을 조회한다는 ‘*’ 대신에, 필요한 컬럼만 적어줌
select 컬럼1, 컬럼2
from 테이블
# 예를들어
# ex)
select order_id, restaurant_name
from food_orders
컬럼이 많아서 필요한 정보를 확인하기 어려웠던 것에서, 원하는 컬럼만 조회하는 것으로 바뀐 것을 볼 수 있음
컬럼에 별명(alias) 을 주기
- 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다. 이럴 때 컬럼 명에 별명을 지정하여 변경할 수 있음
- 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어줍니다. (아래 두 가지 방법 모두 가능)
- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2
# ‘주문 번호’ 와 ‘식당 이름’을 조회했는데요, 컬럼명이 너무 길고 영문이라 보기가 어려웠습니다. 이 때 별명을 아래와 같이 지어줘봅시다.
select order_id as ord_no,
restaurant_name "식당 이름"
from food_orders
# - order_id → ord_no
# - restaurant_name → 식당 이름
컬럼을 선택하고 별명 지정하기
> 주문 (food_orders) 테이블에서 order_id, price, quantity 를 가져와서 ord_no, 가격, 수량 으로 별명 지어주기
select
from
# 기본구조를 적어줌
select order_id,
price,
quantity
from food_orders
# 테이블과 가져올 컬럼을 적어줌
select order_id ord_no,
price "가격",
quantity "수량"
from food_orders
# 컬럼에 별명을 줌
- 고객 (customers) 테이블에서 name, email 을 가져와서 이름, e-mail 으로 별명 지어주기
select
from
# 기본구조를 적어줌
select name,
email
from customers
# 테이블과 가져올 컬럼을 적어줌
select name "이름",
email "e-mail"
from customers
# 컬럼에 별명을 줌
조건에 맞는 데이터로 필터링하기 (WHERE 이란)
- WHERE 절의 개념
- 데이터 중에 특정 조건을 필터링 해야할 때가 있습니다. ’나이가 21살인 사람’ 과 같은 경우, 엑셀 혹은 다른 툴을 이용하여 필터링을 한 경험이 있으실겁니다.
- SQL 의 ‘WHERE’ 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
- WHERE 의 구조
select *
from 테이블
where 필터링 조건 (eg. 20살 이상)
select *
from customers
where age=21
# 기본 조건은 ‘=’ 을 통하여 줄 수 있음
select *
from customers
where gender='female'
# 고객 (customers) 테이블에서 여성을 필터링하면
# 필터링은 숫자가 아닌 문자에도 사용 가능합니다. 문자를 사용할 때는 작은 따옴표를 사용