Database(11)
-
[MYSQL] SQL 실행 순서
SQL 실행 순서 SELECT 컬럼명 --------------------- (5) FROM 테이블명 ------------------- (1) WHERE 테이블 조건 --------------- (2) GROUP BY 컬럼명 -------------------- (3) HAVING 그룹 조건 ----------------- (4) ORDER BY 컬럼명 -------------------- (6) 1. FROM : SQL은 구문이 들어오면 테이블을 가장 먼저 확인한다. 테이블이 없는데 뒤에 조건부터 확인할 필요는 없으니까! 2. WHERE : 테이블 존재 여부 확인 후, 테이블에 대한 조건에 맞게 데이터를 가져온다. 3. GROUP BY : 조건에 맞는 데이터가 추출되었으니, 공통적인 데이터들끼리 묶어..
2023.06.23 -
[MYSQL] SUM(컬럼명) OVER(정렬)
SUM(합할 컬럼명) OVER() 합하려고 하는 컬럼의 모든 값을 합함 NULL값인 데이터 제외하고 누적 계산 SUM(합할 컬럼명) OVER(누적 계산할 순서) OVER는 SUM의 기준이 되는 값 NULL인 데이터 제외 누적 계산 중복인 데이터는 제거하고 누적계산한다 SELECT RE.COL1 ,SUM(RE.WON) OVER (ORDER BY RE.COL1) FROM ( SELECT 1 AS COL1, 100 AS WON UNION ALL SELECT 1 AS COL1, 100 AS WON UNION ALL SELECT 2 AS COL1, 200 AS WON UNION ALL SELECT 2 AS COL1, 200 AS WON UNION ALL SELECT 3 AS COL1, 300 AS WON UNIO..
2023.06.21 -
[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)
DATEDIFF 단순히 일 차이를 가져올 때 사용 날짜 1 - 날짜 2 SELECT DATEDIFF(날짜1, 날짜2); SELECT DATEDIFF(NOW(), '2023-02-23 14:25:04') TIMESTAMPDIFF 연, 분기, 월, 주, 일, 시, 분, 초 지정하여 가져올 때 사용하는 함수 날짜 1 - 날짜 2 단위 SECOND : 초 MINUTE : 분 HOUR : 시 DAY : 일 WEEK : 주 MONTH : 월 QUARTER : 분기 YEAR : 연 SELECT TIMESTAMPDIFF(단위, 날짜1, 날짜2); SELECT TIMESTAMPDIFF(MONTH, '2023-02-23 14:25:04', NOW())
2023.06.20 -
[MySQL] 모든 프로시저에서 한번에 원하는 문자열 검색하는 방법
아래와 같이 하면 검색한 문자열을 포함한 모든 프로시저가 검색된다. SELECT ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.routines WHERE LOWER(ROUTINE_DEFINITION) LIKE '% 원하는 문자열 %';
2023.06.19 -
[MySQL] COUNT(*), COUNT(1),COUNT(COLUMN), COUNT(DISTINCT COLUMN) 차이
COUNT(*) & COUNT(1) SELECT 문에 의해 검색된 모든행을 조회 NULL 및 중복 값 포함 (말그대로 모든 행을 조회) COUNT(*) 와 COUNT(1)은 동일한 방식으로 작동, 성능 차의 거의 없음 #COUNT(*) SELECT COUNT(*) FROM 테이블 #COUNT(1) SELECT COUNT(1) FROM 테이블 COUNT(COLUMN) 컬럼이 NULL 이 아닌 값을 제외 SELECT COUNT(컬럼명) FROM 테이블 COUNT(DISTINCT COLUMN) 컬럼이 NULL, 중복 제거 후 갯수 조회
2023.06.13