Language/SQL(27)
-
[SQL] 모든 조합 만들기 - CROSS JOIN
SQL 문제를 풀던 도중 두 테이블의 각 컬럼 값으로 만들 수 있는 모든 조합이 필요한 경우가 있었다. 해당 문제를 CROSS JOIN 을 활용해 해결하게 되면서 이렇게 기록하게 되었다. 1. 기본 문법SELECT a.columName(s), b.columnName(s)FROM tableA AS a CROSS JOIN tableB AS b 게시글 제목이나 위에 작성한 내용만 보면 "조합을 어떻게 만든다는 거지?" 라는 생각이 든다. 정확하게 말하면 두 테이블 A, B 가 있다고 했을 때 A 의 각 행(레코드)에 B 의 각 행(레코드)를 모두 JOIN 하는 것이다. 그 후 SELECT 문에 작성한 내용을 통해 원하는 컬럼들을 결과 테이블에 추가해 반환하게 된다. 한 마디로 두 테이블의 각 행(레코드)으로..
2024.10.17 -
[SQL] 시간차 구하기 - TIMEDIFF
두 시간의 시간차를 구할 때 사용되는 'TIMEDIFF' 함수에 대해 알아보자. 1. 기본 문법SELECT TIMEDIFF(시간 데이터1, 시간 데이터2) AS 별명FROM 테이블명 TIMEDIFF 첫 번째 시간에서 두 번째 시간을 뺄셈 연산하는 함수결과적으로 '두 시간의 뺄셈 연산' 을 하는 함수라 이해하면 편하다. 시간 데이터의 경우 단일 값이 아닌 여러 값이 합쳐진 형태의 값이므로 일반적인 '-' 연산자를 통해 값을 얻기 어렵기 때문에 해당 함수를 통해 시간차를 구하는 것이 좋다.연산 차가 '1시간(60분)' 미만일 경우 파라미터 위치에 상관 없이 양의 값을 반환하며, 연산 결과가 '1시간(60분)' 이상이 될 경우 'DATEDIFF' 함수처럼 파라미터 위치에 따라 양 또는 음의 값을 반환한다. 해..
2024.09.24 -
[SQL] 두 날짜의 일수 차 구하기 - DATEDIFF
두 날짜의 일(day)수 차이를 구할 때 사용되는 'DATEDIFF' 함수에 대해 알아보자. 1. 기본 문법SELECT DATEDIFF(날짜 데이터1, 날짜 데이터2) AS 별명FROM 테이블명 DATEDIFF 첫 번째 날짜에서 두 번째 날짜를 뺄셈 연산하는 함수결과적으로 '두 날짜의 뺄셈 연산' 을 하는 함수라 이해하면 편하다. 날짜 데이터의 경우 단일 값이 아닌 여러 값이 합쳐진 형태의 값이므로 일반적인 '-' 연산자를 통해 값을 얻기 어렵기 때문에 해당 함수를 통해 두 날짜의 차(일수)를 구하는 것이 좋다.파라미터의 위치가 중요하다. 위치 때문에 에러가 발생하는 것은 아니지만 원하는 값과 정반대의 결과를 얻을 수 있어 주의가 필요하다. 첫 번째 파라미터에는 두 날짜를 비교해 '최근 날짜(큰 값)'를..
2024.09.24 -
[SQL] 이전 시간 구하기 - SUBTIME
시간 데이터에 특정 값을 빼 이후 시간 데이터를 반환하는 'SUBTIME' 에 대해 알아보자. 1. 기본 문법SELECT SUBTIME(기준 시간 데이터, 더할 시간 간격) AS 별명FROM 테이블명 SUBTIME 특정 시간 데이터에 지정한 간격 값(시간)을 빼는 함수지정 가능한 간격은 '시, 분, 초(마이크로 단위까지)' 이다. 간격 지정 방식은 '시간 형식' 의 문자를 입력하면 된다.단, 주의 할 것은 우리가 '현실에서 볼 수 있는 시간' 을 입력해야 한다는 것이다. 예를 들어 "1시간 50분 뒤에 봅시다." 라고 말하지 "110분 뒤에 봅시다" 라 말하는 사람은 거의 없다. 이처럼 시간 간격 지정시 '01:50:00' 을 값으로 지정해야 하는 것이다. 만약 '시, 분, 초' 자리에 '60이상' 의 ..
2024.09.24 -
[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