SQL(40)
-
[SQL] 이후 시간 구하기 - ADDTIME
시간 데이터에 특정 값을 더해 이후 시간 데이터를 반환하는 'ADDTIME' 에 대해 알아보자. 1. 기본 문법SELECT ADDTIME(기준 시간 데이터, 더할 시간 간격) AS 별명FROM 테이블명 ADDTIME 특정 시간 데이터에 지정한 간격 값(시간)을 더하는 함수지정 가능한 간격은 '시, 분, 초(마이크로 단위까지)' 이다. 간격 지정 방식은 '시간 형식' 의 문자를 입력하면 된다.단, 주의 할 것은 우리가 '현실에서 볼 수 있는 시간' 을 입력해야 한다는 것이다. 예를 들어 "1시간 50분 뒤에 봅시다." 라고 말하지 "110분 뒤에 봅시다" 라 말하는 사람은 거의 없다. 이처럼 시간 간격 지정시 '01:50:00' 을 값으로 지정해야 하는 것이다. 만약 '시, 분, 초' 자리에 '60이상' ..
2024.09.24 -
[SQL] 이전 날짜 구하기 - DATE_SUB, SUBDATE
날짜 데이터에서 특정 값을 빼 이전 날짜 데이터를 반환하는 'DATE_SUB, SUBDATE' 함수에 대해 알아보자. 1. 기본 문법SELECT DATE_SUB(기준 날짜 데이터, INTERVAL 간격 값 및 유형) AS 별명FROM 테이블명 DATE_SUB (= SUBDATE) 특정 날짜 데이터에 지정한 유형의 간격 값을 빼는 함수'SUBDATE' 와 'DATE_SUB' 함수는 서로 같은 함수이다. 개인적으로 생각하기에는 'DATE_A' 함수를 추가하며 개발자의 혼동을 방지하고자 함께 추가한 것으로 보인다. 그래서 'SUBDATE' 함수를 사용하는 경우 함수명만 바꿔 사용하면 된다.'유형' 은 더할 데이터가 '년(year)' 인지 '월(month)' 인지 등을 구별하기 위한 유형을 말한다. 해당 유형 ..
2024.09.24 -
[SQL] 이후 날짜 구하기 - DATE_ADD, ADDDATE
날짜 데이터에 특정 값을 더해 이후 날짜 데이터를 반환하는 'DATE_ADD, ADDDATE' 에 대해 알아보자. 1. 기본 문법SELECT DATE_ADD(기준 날짜 데이터, INTERVAL 간격 값 및 유형) AS 별명FROM 테이블명 DATE_ADD (= ADDDATE) 특정 날짜 데이터에 지정한 유형의 간격 값을 더하는 함수'ADDDATE' 와 'DATE_ADD' 함수는 서로 같은 함수이다. 개인적으로 생각하기에는 'ADDDATE' 라는 명칭이 식별하기 불편해 'DATE_ADD' 로 이름만 바꾼 함수를 추가한 것으로 보인다. 그래서 'ADDDATE' 함수를 사용하는 경우 함수명만 바꿔 사용하면 된다.'유형' 은 더할 데이터가 '년(year)' 인지 '월(month)' 인지 등을 구별하기 위한 유형..
2024.09.24 -
[SQL] 재귀를 활용한 반복문 - WITH RECURSIVE
Java 의 '반복문(for)' 과 비슷한 수행을 SQL 에서는 'Recursive CTE(Common Table Expressions)' 을 활용해 비슷하게 구현할 수 있다. 아무래도 한 번에 이해하기에는 어려워 Java 와 비교하며 이해하게 되었다. 1. 기본 문법WITH RECURSIVE 임시테이블명 AS ( SELECT 컬럼 첫 데이터 AS 컬럼별명 // 비재귀 SELECT 부분 UNION ALL SELECT 이전 컬럼값에 대한 연산 // 재귀 SELECT 부분 FROM 임시테이블명 WHERE 컬럼에 대한 조건식)SELECT 컬럼명FROM 임시테이블명 'WITH RECURSIVE' 는 'Recursive Common Table Expressions(재귀 공통 ..
2024.09.11 -
[SQL] NULL 변환 - IFNULL
간혹 선택지 외의 값을 가질 경우 컬럼 값을 null 로 지정하는 경우가 있다. 물론 null 값은 언제 터질 줄 모르는 시한폭탄 같기에 사용을 멀리해야 하지만 테이블 데이터를 가공하면서 null 값이 생기는 경우도 많다. 이럴 때 null 대신 다른 값을 지정하고 싶다면 'IFNULL' 함수를 사용하면 된다. 1. 기본 문법SELECT IFNULL(컬럼명, 지정값) AS 별명FROM 테이블명 사용 방법은 파라미터로 'null' 값을 변경할 타겟 컬럼의 이름과 해당 컬럼 값이 'null' 일 경우 변경(지정)할 값을 작성하면 된다. 이렇게 되면 컬럼 값이 'null' 인 경우 '지정값' 이 반환되고 'null' 이 아니라면 해당 컬럼 값이 반환된다. 2. 사용 예시 'test' 테이블의 'test_n..
2024.09.11 -
[SQL] 레코드 집합 합치기 - UNION
이전 학습한 'JOIN' 이 특정 컬럼을 기준으로 두 테이블의 레코드를 합치는 기능을 한다면, 'UNION' 은 같은 컬럼구성을 갖는 두 집합의 레코드를 합쳐 하나의 집합으로 만드는 기능을 한다. 1. 기본 문법SELECT column1, column2FROM table1UNION (or UNION ALL)SELECT column1, column2FROM table2 명확한 'UNION' 의 기능은 '두 개이상의 SELECT 문의 결과 집합을 결합' 하는 것이라 한다. 당연하게도 결합할 집합은 같은 개수의 컬럼을 가져야하고 컬럼구성(컬럼명, 컬럼타입)이 같아야 한다. 위의 문법을 통해 좀 더 설명하면 아래의 조건을 만족해야 하는 것이다.'table1.column1' 과 'table2.column1' 의..
2024.09.11