SQL 기초강의
- 1주차 강의
SQL 문이란 : DB 에서 데이터를 조회하기 위한 언어
SQL 문의 기본 구조
select # '데이터 조회' 의 명령어로 필수 구문
from # '어디에서 데이터를 조회할까' 의 명령어로 필수 구문
where # 조건을 지정해주는 구문
- 조건을 지정하는 방법
- 비교연산자 : <, >, =, <>
- 다양한 구문 : IN, BETWEEN, LIKE
- IN 같은 경우 여러 조건을 나타내는 약어 or 과 같다
- NOT IN : IN 목록의 값이 아닌 모든 레코드 반환
- 여러가지 조건의 적용 : AND, OR, NOT
- 2주차 강의
SQL 에서는 계산의 편의를 위해 함수를 제공
- 함수 종류
- 합계 : SUM(컬럼)
- 평균 : AVG(컬럼)
- 사용 예시
select sum(food_preparation_time) total_food_preparation_time,
avg(delivery_time) avg_food_preparation_time
from food_orders
- 전체 데이터의 갯수 구하기
- 데이터 갯수 : COUNT(컬럼) * 컬럼명 대신 1 혹은 * 사용 가능
- 몇개의 값을 가지고 있는지 구할 때 : DISTINCT
- 사용 예시
select count(1) count_of_orders,
count(distinct customer_id) count_of_customers
from food_orders
- 데이터의 범위, 최솟값과 최댓값 구하기
- 최솟값 : MIN(컬럼)
- 최댓값 : MAX(컬럼)
- 사용 예시
select min(price) min_price,
max(price) max_price
from food_orders
- 쿼리 흐름 정리 해보기
1. query를 적기 전에 흐름을 정리해보기
- 어떤 테이블에서 데이터를 뽑을 것인가
- 어떤 컬럼을 이용할 것인가
- 어떤 조건을 지정해야 하는가
- 어떤 함수(수식)을 이용해야 하는가
- GROUP BY로 범주별 연산 한 번에 끝내기
- 카테고리별로 계산
- 이 때 사용되는 구문이 Group by
- 집계함수 이외에 모든 컬럼은 Group by 해준다
- 사용예시
select cuisine_type,
sum(price) sum_of_price
from food_orders
group by cuisine_type
- Query 결과를 정렬하여 업무에 바로 사용하기 (Order by)
종류 | 구문 | 예시 |
오름차순 | 생략 | order by sum(price) |
내림차순 | desc | order by sum(price) desc |
- 완성된 SQL 문의 기본 구조
select
from
where
group by
order by
- 3주차 강의
- 업무 필요한 문자 포맷이 다를 때, SQL로 가공하기 (REPLACE, SUBSTRING, CONCAT)
- 특정 문자를 다른 문자로 바꾸기
- 함수명 : replace
- 사용 방법
- 특정 문자를 다른 문자로 바꾸기
replace(바꿀 컬럼, 현재 값, 바꿀 값)
- 원하는 문자만 남기기
- 함수명 : substring (substr)
- 사용 방법
substr(조회 할 컬럼, 시작 위치, 글자 수)
- 여러 컬럼의 문자를 합치기
- 함수명 : concat
- 사용방법
concat(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3, .....)
- 붙일 수 있는 문자의 종류
- 컬럼
- 한글
- 영어
- 숫자
- 기타 특수문자
● 반올림과 버림 함수 (ROUND, TRUNCATE)
- ROUND(숫자, 반올림할 자릿수)
예시)
select round(38478.8903) from rev
-- 38479
select round(38478.8903, 1) from rev
-- 38478.9
select round(38478.8903, -1) from rev
-- 38480
select round(38478.8903, -2) from rev
--38500
- TRUNCATE : 특정 자릿수 이하를 버리는 버림(숫자, 버림할 자릿수)
예시 )
SELECT TRUNCATE(38478.8903 ,1) FROM rev
-- 38478.8
SELECT TRUNCATE(38478.8903 ,3) FROM rev
-- 38478.89 -> 소수점 셋째자리 이후는 다 버린다.
SELECT TRUNCATE(38478.8903 ,-1) FROM rev
--38470
SELECT TRUNCATE(38478.8903 ,-3) FROM rev
--38000
'데이터분석 study > SQL' 카테고리의 다른 글
TIL_24.07.12_다중 테이블 left join (0) | 2024.07.12 |
---|---|
TIL_24.07.11_join 과 using (0) | 2024.07.11 |
TIL(Today I Learned) 24.07.01 (0) | 2024.07.01 |
TIL(Today I Learned) 24.06.26 (0) | 2024.06.26 |
TIL(Today I Learned) 24.06.25 (0) | 2024.06.25 |