2022. 7. 13. 15:14ㆍSQL 종합반
DML(Data Manipulation Language)
- insert
- 테이블에 데이터 삽입
insert into orders values
- update
- 데이터 내용 수정
update 테이블 set 칼럼 = '값' where 조건
- delete
- 데이터 삭제
delete from 테이블 where 조건
- select
- 모든 컬럼 조회
select * from orders - 필요한 컬럼 조회
select user_id,payment_method name from orders- select 문법 순서
- select
- from
- where
- 컬럼 조회의 조건
select * from orders where payment_method = 'kakaopay'; - and, or 조건
select * from orders course_title ='앱개발 종합반' and(or) payment_method='kakaopay'; - like 조건
% 로 표현
select * from orders where email = '%@naver.com';
- 컬럼 조회의 조건
- group by
- 특정 칼럼 기준의 데이터 그룹핑
- select payment_method,count(*) from orders group by payment_method
- having
- order by
- 특정 칼럼 기준으로 정렬
- asc : 오름차순
- desc : 내림차순
select * from orders order by update_at desc;
- select 문법 순서
- 모든 컬럼 조회
*쿼리의 실행 순서 = from => where => group by => having => select => order by
*Distinct = 중복행을 제거
select distinct(user_id) from checkins
*Alias = 칼럼에 별칭을 주고 조회
select pu.payment_method, avg(point) as avg from point_users pu
*Subquery = 하나의 SQL 쿼리 안에 또다른 SQL 쿼리가 있는 것을 의미
select c.course_id,
count(DISTINCT(user_id)) as cnt_checkins,
(
select count(*) from orders o
where o.course_id = c.course_id
group by o.course_id
)
from checkins c
group by c.course_id
*with절 = 깔끔하게 쿼리 정리
with table1 as(
select enrolled_id,count(enrolled_id)as done_cnt from enrolleds_detail
where done = 1
GROUP by enrolled_id
),table2 as(
select enrolled_id,count(*) as total_cnt from enrolleds_detail
group by enrolled_id
)
select a.enrolled_id,done_cnt,total_cnt,round((done_cnt/total_cnt),2)as ratio from table1 a
inner join table2 b on a.enrolled_id = b.enrolled_id
*Join = 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것
select * from users u
inner join orders o on u.user_id = o.user_id
DDL(Data Definition Language)
- create
- alter
- drop
- truncate
- rename
DCL(Data Control Language)
- grant
- revoke
TCL(Transaction Control Language)
- commit
- rollback
- savepoint
'SQL 종합반' 카테고리의 다른 글
[내일배움단] 엑셀보다 쉬운 SQL - 4주차 개발일지(Weekly I learned) (0) | 2022.07.13 |
---|---|
[내일배움단] 엑셀보다 쉬운 SQL - 3주차 개발일지(Weekly I learned) (0) | 2022.07.12 |
[내일배움단] 엑셀보다 쉬운 SQL - 2주차 개발일지(Weekly I learned) (0) | 2022.07.12 |
[내일배움단] 엑셀보다 쉬운 SQL - 1주차 개발일지(Weekly I learned) (0) | 2022.07.08 |