1주차
데이터베이스: 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통
모든 데이터베이스는 CRUD 기능 지원
show tables
select *(필드명) from 테이블명 where 조건
!= 같지 않음, between 범위, in 포함, like % 패턴
limit 일부 데이터만, distinct 중복 제외, count 몇 개인지
2주차
group by: 동일한 범주의 데이터를 묶어서 통계
count 개수, min 최솟값, max 최댓값, avg 평균, round(,소수점자리) 반올림,sum 합계
order by: 출력하는 데이터를 필드의 값으로 정렬하여 출력
기본 오름차순(asc), desc 내림차순
별칭 Alias
select * from test t
where t.title = 'test'
select count(*) as cnt
3주차
inner join: 교집합
left join: 합집합, 왼쪽의 모든 행을 조회
*같은 필드를 가지고 있다 해도 서로 다른 의미를 가지고 있을 수도 있다. 의미 차이를 고려하여 적절한 필드를 사용해야 한다. 조건에 맞는 필드를 정하는 게 중요할 듯
is NULL, is not NULL
union all 안에서 한 ordey by 적용 X, 밖에서 적용
4주차
subquery: 쿼리문 안에 들어가는 쿼리문
-- inner join
SELECT * from
(
SELECT from
) a
inner join
(
SELECT from
) b on a.test = b.test
inner join test2 t2 on a.test = t2.test
-- with as
with table1 as (
SELECT from
), table2 as (
SELECT from
)
SELECT * from
table1 a
inner join
table2 b on a.test = b.test
inner join test2 t2 on a.test = t2.test
SUBSTRING(필드명,1,10) 첫 번째부터 10자리 자르기
SUBSTRING_INDEX(필드명,'@',1) @를 기준으로 자르기, 1 하면 앞, -1 하면 뒤
case-when-then-else-end
(case when pu.point > 10000 then '1만 이상'
when pu.point > 5000 then '5천 이상'
else '5천 미만' end) as lv
* SQL에서 AVG등과 같은 집계 함수는 하나의 집단에 대해 전체의 집계값을 하나로 표현하고 종료하는 특징
-- (select avg(point) from point_users)에 avg(point)만 넣으면 값 한개만 출력, subquery 사용
select pu.point_user_id, pu.point,
(case when pu.point >= (select avg(point) from point_users) then '잘하고 있어요.'
else '열심히 합시다' end) as msg
FROM point_users pu
*with절 사용할 때 table 못 찾는 오류가 발생하는데 전체 구문을 드래그하고 실행 아니면 with절과 밑의 select절 사이에 빈 줄 없애고 실행
'개발 > 기타' 카테고리의 다른 글
| 동북권 ICT 부트캠프 이노베이션 캠프 2조 미니 프로젝트 SA (0) | 2023.06.07 |
|---|---|
| SQL 메모 (0) | 2023.06.03 |
| Github으로 따라 하는 버전 관리 메모 (0) | 2023.05.26 |
| AWS 프리 티어 한도 초과로 Koyeb으로 배포하기 (0) | 2023.05.24 |
| AWS Elastic Beanstalk (EB) 환경에 HTTPS 적용하기 (0) | 2023.05.21 |