❄️ 내일배움캠프 7기
[사전캠프/SQL] 1-4주차 복습
Genie_.
2024. 9. 12. 13:03
728x90
반응형
1주차
- SELECT : 데이터를 가져오는 기본 명령어(데이터 조회하는 쿼리에 사용)
- FROM : 데이터를 가져올 테이블을 특정
- * : 모든 컬럼을 가져와준다는 의미
컬럼에 별명주기
방법1 : 컬럼1 as 별명1
방법2 : 컬럼2 별명2
WHERE 절
- 특정 조건 필터링(찾아야 하는 경우) 해야하는 경우 사용
- 문자는 작은 따옴표('') 사용
- 기본 조건은 '='를 통해 줄 수 있음
select *
from 테이블
where 필터링 조건 (eg. 20살 이상)
BETWEEN
- A와 B사이
WHERE age BETWEEN a AND b
IN(포함)
- '포함'하는 조건 주기
IN (A,B,C)
LIKE
- 완전히 똑같지는 않지만, 비슷한 값 조건으로 주기
- 특정한 문자로 시작하는 경우
- LIKE '시작문자'%
- 예시 : '김'으로 시작하는 이름
name LIKE '김%'
- 특정한 문자를 포함하는 경우
- LIKE '%포함문자%'
- 예시 : 식당 이름에 'Next'를 포함하는 경우
restaurant_name LIKE '%Next%'
- 특정한 문자로 끝나는 경우
- LIKE '%끝나는문자'
- 예시 : '임'으로 끝나는 이름
name LIKE '%임'
논리연산
- 여러개의 조건을 적용할 때 사용되는 연산
- 종류는 3가지가 있다.
- AND : 그리고
- OR : 또는
- NOT : 아닌
2주차
SUM(컬럼), AVG(컬럼)
- SUM(컬럼) : 컬럼에 해당하는 값 다 더하기
- AVG(컬럼) : 컬럼에 해당하는 값 평균
COUNT
- 데이터 갯수 : COUNT(컬럼) / 컬럼명 대신 1 혹은 * 사용가능
- 몇개의 값을 가지고 있는지 구할 때 : DISTINCT(중복 값 제외)
SELECT COUNT(1) count_of_orders,
COUNT(DISTINCT customer_id) count_of_customers
FROM food_orders
MAX(컬럼), MIN(컬럼)
- 최솟값 : MIN(컬럼)
- 최댓값 : MAX(컬럼)
SELECT MIN(price) min_price,
MAX(price) max_price
FROM food_orders
GROUP BY
- Group by는 카테고리 컬럼 지정, Group by를 적어주는 것으로 적용 가능
SELECT 카테고리컬럼(원하는컬럼 아무거나),
SUM(계산 컬럼),
FROM
GROUP BY 카테고리컬럼(원하는컬럼 아무거나)
ORDER BY(정렬문)
- 오름차순(생략) : 숫자가 점점 커지는 순서로 정렬
- 내림차순(desc) : 숫자가 점점 작아지는 순서로 정렬
SELECT 카테고리컬럼(원하는컬럼 아무거나),
SUM(계산 컬럼),
FROM
GROUP BY 카테고리컬럼(원하는컬럼 아무거나)
ORDER BY 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)
3주차(REPLACE,SUBSTRING,CONCAT,IF,CASE)
REPLACE
- 특정 문자를 다른 것으로 바꿀 수 있는 기능
replace(바꿀 컬럼, 현재 값, 바꿀 값)
SUBSTRING
- 특정 문자만 골라서 조회할 수 있는 기능
substr(조회 할 컬럼, 시작 위치, 글자 수)
CONCAT
- 여러 컬럼의 값을 하나로 합칠 수 있는 기능
- 붙일 수 있는 문자의 종류
- 컬럼
- 한글
- 영어
- 숫자
- 기타 특수문자
concat(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3, .....)
IF(조건문)
- IF 문은 원하는 조건에 충족할 때 적용할 방법과 아닌 방법을 지정
IF(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
CASE(중첩 IF문 느낌)
- Case 문은 각 조건별로 적용 할 값을 지정해 줄 수 있음 = if문 여러번 쓴 효과
- CASE(조건1, 값1, CASE(조건2, 값2, 값3))
CASE WHEN 조건1 THEN 값(수식)1
WHEN 조건2 THEN 값(수식)2
ELSE 값(수식)3
END
4주차
SUBQUERY
- 여러번의 연산을 수행해야할 때
- 조건문에 연산 결과를 사용해야 할 때
- 조건에 Query 결과를 사용하고 싶을 때
SELECT column1, special_column
FROM
( /* subquery */
SELECT column1, column2 special_column
FROM table1
) a
JOIN
- 필요한 데이터가 하나의 테이블에 모여있지 않을때(여러 테이블에서 데이터를 불러와야 할 때)
- LEFT JOIN : 공통 컬럼(키값)을 기준으로, 하나의 테이블에 값이 없더라도 모두 조회되는 경우
SELECT 조회 할 컬럼
FROM 테이블1 a LEFT JOIN 테이블2 b ON a.공통컬럼명=b.공통컬럼명
- INNER JOIN : 공통 컬럼(키값)을 기준으로, 두 테이블 모두에 있는 값만 조회(교집합)
SELECT 조회 할 컬럼
FROM 테이블1 a INNER JOIN 테이블2 b ON a.공통컬럼명=b.공통컬럼명
728x90
반응형