본문 바로가기

전체 글339

[SQL 현재 시간 표시] now(), current_timestamp, current_date, current_time now() 지금 현재 시간(timestamp) current_timestamp 지금 현재 시간(timestamp) current_date 지금 현재 시간에서 연-월-일 날짜 정보만 current_time 지금 현재 시간에서 시간 정보만 2023. 3. 21.
[SQL] 시간 더하기, 빼기 1. Date 타입에 숫자값을 더하거나/빼면 👉 숫자값에 해당하는 일자를 더해거나/빼서 날짜가 계산됨 select to_date('2022-01-01', 'yyyy-mm-dd') + 2 as date_01; ⚡️유의 : date 타입에 + interval 사용시, 결과 값은 timestamp로 찍힘 2. Timestamp는 interval 타입을 이용하여 날짜를 더하고 뺄 수 있음 👉 + interval '7 hours 2days 30minutes' 등 (이때, Hour 뒤에 s 를 붙여 복수형으로 써도 되고, 안써도 됨!) select to_timestamp('2022-01-01 14:36:52', 'yyyy-mm-dd hh24:mi:ss') + interval '7 hour' as timestamp_.. 2023. 3. 21.
[SQL 시간 추출하기] extract와 date_part extract 사용하기 날짜 데이터에서 필요한 부분만 추출할 수 있음 extract (year from date컬럼명) as year => Extract (year/month/day from 컬럼명)의 형식으로 사용 extract 예제 문제는 프로그래머스 : 입양 시각 구하기(1) 아래와 같이 날짜와 시간이 초 단위까지 나와있는데, 여기서 '시간'만 추출해야하는 경우다. extract(hour from DATETIME) 으로 시간만 추출하는 것이 문제의 핵심 select extract(hour from DATETIME) as HOUR, count(*) as COUNT from ANIMAL_OUTS where extract(hour from DATETIME) between 9 and 19 group by .. 2023. 3. 21.
[SQL 시간 정보 타입] Date, Timestamp, interval SQL에서 시간을 나타내는 타입 Date 연, 월, 일 정보(시간 제외한 일자) YYYY-MM-DD Timestamp 시간 포함한 일자 Time 오직 시간 정보만(잘 안씀) Interval 기간(시작-종료지점 사이) 시간 정보를 표시하기 위해, 먼저 문자열을 Date, Timestamp로 변환 to_date('변환할 문자열, 예시 : 2022-01-01'), 'yyyy-mm-dd'(시간 지정 정보)) 👉 2022-01-01 (결과 시간정보) to_timestamp('변환할 문자열, 예시 : 2022-01-01'), 'yyyy-mm-dd'(시간 지정 정보)) 👉 2022-01-01 00:00:00:000 +0900 추가 예시) to_timestamp('2022-01-01 13:04:05', 'yyyy-mm.. 2023. 3. 21.
[SQL] WITH 구문 WITH 구문 정의 하위 쿼리(subquery)나 중첩 쿼리(nested query) 대신 적용할 수 있는, 공통 테이블 표현식(Common Table Expression, CTE)을 정의하는 기능 장점 복잡한 쿼리를 더욱 가독성 좋게 작성할 수 있음 공통 테이블 표현식을 재사용할 수 있으므로 코드 중복을 방지할 수 있음 예시 다음 쿼리는 "employees" 테이블에서 급여가 가장 높은 3명의 직원 정보를 출력함. WITH 구문을 사용하여 공통 테이블 표현식 "highest_salaries"를 정의하고, 이를 메인 쿼리에서 참조함 WITH highest_salaries AS ( SELECT * FROM employees ORDER BY salary DESC LIMIT 3 ) SELECT * FROM h.. 2023. 3. 18.
[Non Equi 조인] between 사용시 조인 시 연결하는 키 값을 어떻게 연결하느냐에 따라, Equi 조인 : join 시 연결하는 키 값이 서로 같은 경우( =로 연결) Non Equi 조인 : 키 값으로 연결할 때, =가 아닌 다른 연산자를 사용 (between, >, >=, 고수의 영역 ▶︎ 예시 쿼리: with temp_01 as ( select 1 as rnum union all select 2 as rnum ) select * from dept a cross join temp_01 b; temp_01 이라는 임시 테이블을 생성 : rnum이라는 컬럼에 1, 2를 차례로 생성함. 실제 쿼리 작성시 temp_01을 dept 테이블과 cross join 하면, dept 테이블의 모든 키 값이 두 배가 되어 나타남. 2023. 3. 18.
[coalesce() 함수] 결측치 처리하기 NULL 값 또는 빈 값을 필터링하고, 유효한 값이 없을 경우 지정된 기본값을 반환 예를 들어, "customers" 테이블에서 "email" 필드가 NULL일 경우 "alternate_email" 필드 값을 사용하고, 둘 다 NULL일 경우 "N/A"를 반환하는 쿼리는 다음과 같다. SELECT COALESCE(email, alternate_email, 'N/A') as contact_email FROM customers; 이 쿼리는 "email" 필드를 먼저 검색 -> 값이 NULL이면 "alternate_email" 필드를 검색 ->> 그리고 둘 다 NULL이면 "N/A"를 반환 또 다른 예시 : order_id 가 null 이면 0으로 처리하라 SELECT coalesce(order_id, 0) .. 2023. 3. 18.
[concat 함수] 문자열 더하기 1. 기본 사용형 concat 함수는 여러개의 문자열을 하나로 연결할 때 사용한다 CONCAT(문자열1, 문자열2, ...) 예시) SELECT CONCAT('Hello', 'world') AS 결합된_문자열; 결과 : 결합된_문자열 Helloworld 2. || 연산자 사용형 || 연산자는 두 개의 문자열을 연결하여 하나의 문자열을 만드는 연산자이다. 예시1) SELECT 'Hello' || 'world' AS 결합된_문자열; 결과 : 'Helloworld' 예시2) e.first_name||' '||e.last_name as employee_name 결과 : first_name (띄고) last name이 연결되어 반환됨 ✔️ 주의 일부 데이터베이스 시스템에서는 CONCAT 함수가 제공되지 않을 수 .. 2023. 3. 18.
[to_date() 함수] 문자열을 날짜데이터로 SQL에서 to_date 함수는 문자열로 표현된 날짜를 날짜 데이터 타입으로 변환하는 함수 아래와 같이 사용함. TO_DATE(문자열, 날짜_포맷) 예시 : "2023-03-18" 이라는 문자열을 날짜 데이터 타입으로 변환하려면 다음과 같은 SQL 문을 사용 SELECT TO_DATE('2023-03-18', 'YYYY-MM-DD') AS 변환된_날짜; 결과 : 변환된_날짜 2023-03-18 2023. 3. 18.
728x90