개발 노트

SQL 본문

데이타베이스/MySQL

SQL

알 수 없는 사용자 2022. 2. 25. 20:19

SQL정리

 

테이블 : 간단히 말하면 엑셀파일과 비슷함

엑셀파일을 특정 주제별로 저장하듯이 테이블에도 특정 주제별 데이터들이 저장되어있다

 

데이터베이스 : 테이블들이 모여있고 SQL을 실행할수 있도록 해주는 하나의 시스템

줄여서 DB라고도 부른다 DB의 종류는 mysql,mssql,oracle, db2 등 다양하지만 SQL은 database 표준언어로 공통적인 문법으로 사요됨(db별로 약간의 차이는 있음)

 

SELECT 문법

SELECT * FROM APT_LIST LIMIT 10

SELECT 컬럼명나열 혹은 * FROM 테이블명 LIMIT 보여줄 행의 숫자

 

UNION ALL 문법

EX)

SELECT useddate, MAX(`수입`) income, MAX(`지출`) outcome 
FROM(select useddate, sum(money) `수입` , 0 `지출`  
FROM dc_account 
WHERE(usedDate BETWEEN '2022-02-01' AND '2022-02-28') AND flagYN = 'Y'  AND accacount = '수입' 
GROUP BY useddate UNION all select useddate, 0 `수입`, sum(money) `지출`  
FROM dc_account 
WHERE(usedDate BETWEEN '2022-02-01' AND '2022-02-28') 
AND flagYN = 'Y'  AND accacount = '지출' GROUP BY useddate) Z group by useddate ORDER BY useddate ASC;

EX2)

SELECT z.useddate, MAX(`수입`) income, MAX(`지출`) outcome FROM( SELECT SUBSTRING(dc.useddate, 6, 2) useddate, sum(money) `수입` , 0 `지출`  FROM dc_account dc WHERE(dc.usedDate like '%2022%') AND flagYN = 'Y'  AND accacount = '수입' GROUP BY dc.useddate UNION all select substring(dc.useddate, 6, 2) useddate, 0 `수입`, sum(money) `지출`  FROM dc_account dc WHERE(dc.usedDate like '%2022%') AND flagYN = 'Y'  AND accacount = '지출' GROUP BY dc.useddate) Z group BY z.useddate ORDER BY z.useddate ASC;

EX3)

SELECT useddate, MAX(`수입`)`수입`,MAX(`지출`)`지출`
FROM(
SELECT useddate, SUM(money)`수입`,0 `지출` FROM dc_account
WHERE (useddate BETWEEN '2022-01-01' AND '2022-02-28') AND flagYN = 'Y' AND accacount='수입'
GROUP BY useddate
UNION ALL
SELECT useddate, 0 `수입`, SUM(money) `지출` FROM dc_account
WHERE (useddate BETWEEN '2022-01-01' AND '2022-02-28') AND flagYN='Y' AND accacount='지출'
GROUP BY useddate)z GROUP BY useddate ORDER BY useddate ASC; 

EX4)

 

'데이타베이스 > MySQL' 카테고리의 다른 글

SQL 정리 지금까지썼던것들  (0) 2022.03.29
MYSQL Select  (0) 2022.03.02
그라파나설정  (0) 2022.02.22
정리  (0) 2021.12.24
정리  (0) 2021.12.24