안녕하세요.
오늘은 SQL문을 찾아 보기 쉽게 정리한 글입니다.
SQL을 사용하기 전에 한번씩 읽고 사용하시면 좋을 것 같습니다.
SQL이란?
- 데이터베이스와 대화하기 위한 언어입니다.
- 질의(query)라고 생각하시면 쉽습니다.
SELECT / FROM 문
- '어느 테이블에서 데이터를 가져올까?'라는 사항이라고 생각하면 쉽습니다.
- SQL을 사용하기 위해서는 항상 Select/from문을 가지고 와야 됩니다.
- 밑에 코드를 해석해보면 "food_orders 테이블에서 모든자료(*)를 가져올꺼야" 입니다.
select *
from food_orders
WHERE 절
- 특정 조건을 필터링 해야할 때 필요합니다.
- 밑에 코드를 해석해보면 "food_orders 테이블에서 cuisine_type이 Korean의 모든자료(*)를 가져올꺼야" 입니다.
select *
from food_orders
where cuisine_type='Korean'
( cf : 테이블이 위에 Korean처럼 대문자가 있을경우 꼭 대문자로 써야된다는 점!!)
BETWEEN문
- 'A와B사이' 값의 자료를 보고싶을 때 사용합니다.
- 밑에 코드를 해석해보면 "food_orders 테이블에서 가격이 20,000원에서 30,000원 사이의 자료를 가져올꺼야" 입니다.
select *
from food_orders
where price between 20000 and 30000
IN문
- '포함'하는 조건을 주고싶을 때 사용합니다.
- 밑에 코드를 해석해보면 "customers 테이블에서 나이가 15, 21, 31살인 사람의 자료를 가져올꺼야" 입니다.
select *
from customers
where age in (15, 21, 31)
LIKE문
- 완전히 똑같지는 않지만, 비슷한 값을 조건을 주고싶을 때 사용합니다.
- like ‘%끝나는문자’
- like ‘시작문자 % ’
- like ‘%포함문자%’
- 밑에 코드를 해석해보면 "customers 테이블에서 이름이 '~~임'으로 끝나는 이름을 가진 고객의 자료를 가져올꺼야" 입니다.
select *
from customers
where name like '%임'
GROUP BY절
- 여러번의 질의(query) 없이, 카테고리를 지정하여 카테고리별로 확인하고 싶을 때 사용합니다.
- 밑에 코드를 보면 "음식점별 주문 금액 최댓값 조회한 값" 입니다.
select restaurant_name,
max(price) "최대 주문금액"
from food_orders
group by restaurant_name
- 밑에 코드는 기본 구조입니다.
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from 테이블명
group by 카테고리컬럼(원하는컬럼 아무거나)
( 사용하기 전에 구조를 한번씩 생각하고 사용하는게 좋겠죠?!)
- 하나 더 알려드리면, 일일이 적는 것보다 '1, 2' 숫자로 select의 몇 번째 컬럼을 카테고리별로 묶어줄 수도 있습니다.
- 밑에는 "카테고리컬럼1과 카테고리컬럼2"만 묶어준 것입니다.
select 카테고리컬럼1, 카테고리컬럼2, 카테고리컬럼3
from 테이블명
group by 1, 2
ORDER BY절
- 정렬하기 위해 사용하는 절입니다.
- 조건을 준 다음에 항상 맨 마지막에 사용합니다.
- 밑에 코드가 기본 구조입니다.
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)
- 정렬의 종류
Subquery문
- 여러 번의 연산을 한 번의 SQL문으로 작성할 때 사용합니다.
- Sub라는 명칭에서 유추할 수 있듯이, query안에 sub로 들어간 구문이라고 생각하면 쉽습니다.
- 여러가지 구조
select column1, special_column
from
( /* subquery */
select column1, column2 special_column
from table1
) a
select column1, column2
from table1
where column1 = (select col1 from table2)
Join문
- 여러 테이블에서 데이터를 불러올 때 사용합니다.
- 엑셀의 'Vlookup'과 유사하고 동일한 원리를 가집니다.
- A LEFT JOIN B : 공통 컬럼을 기준으로, B의 테이블에 값이 없더라도 A의 데이터가 모두 조회되는 경우
- A INNER JOIN B : B : 공통 컬럼을 기준으로, 두 테이블 모두에 있는 값만 조회되는 경우
- 기본 구조
-- 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.공통컬럼명
SQL문 사용하기 전에 항상 생각!!
- SQL문이 배운 순간에는 쉬울 지 몰라도 막상 사용하려고 하면 어떻게 구조를 짜야될지 모르는 순간이 오는데 항상 사용하기 전에 "어떤 테이블에서 자료를 가져올 지, 어떤 조건을 지정할 지, 어떤 그룹별로 찾아볼지, 어떤 정렬을 줄 지"등 생각을 해보고 사용하는 것이 좋습니다.
'MYSQL' 카테고리의 다른 글
[MYSQL] 명령어 모음 (0) | 2024.10.17 |
---|---|
[SQL] SQL 함수 정리 (1) | 2024.07.20 |