반응형

데이터베이스(DB: Database)/SQL 7

[SQL] 오라클(Oracle) NULL 관련 함수 정리

NVL(A, B) 입력 값 A가 NULL 일 경우 B로 대체하여 반환한다. SELECT NVL(NULL, '홍길동') AS NAME, NVL(NULL, 20) AS AGE, NVL(NULL, SYSDATE) AS CREATE_AT FROM dual; NAME AGE MODIFIED_DATE 홍길동 20 2023-12-31 23:59:59 SELECT NVL('오라클', '홍길동') AS NAME, NVL(27, 20) AS AGE, NVL(TO_DATE('2023-01-01 00:00:00'), SYSDATE) AS CREATE_AT FROM dual; NAME AGE MODIFIED_DATE 오라클 27 2023-01-01 00:00:00 NVL2(A, B, C) 입력 값 A가 NULL이 아니면 B, ..

[SQL] 오라클(Oracle) 형변환 함수 정리

TO_NUMBER(문자열) 입력받은 문자열을 숫자로 변환하여 반환한다. 만약, 문자열에 수치 이외의 문자가 포함되어 있으면 오류가 발생한다. SELECT TO_NUMBER('12345') AS CASE1, TO_NUMBER('12.345') AS CASE2 FROM dual; CASE1 CASE2 12345 12.345 만약, 여러 문자가 섞인 문자열을 숫자로 변환하고자 한다면, REPLACE와 정규식을 활용하여 변환할 수 있다. SELECT TO_NUMBER(REPLACE(REPLACE('$123,456.78', '$'), ',') AS CASE1, TO_NUMBER(REGEXP_REPLACE('$123,456.78', '[^0-9.]', '') AS CASE2 FROM dual; CASE1 CASE2..

[SQL] 오라클(Oracle) 날짜 함수 정리

SYSDATE 시스템의 현재 날짜 및 시간(yyyy-mm-dd hh24:mi:ss)을 반환한다. 테이블 상으로는 시간이 보이지 않을 수 있으나, date 타입으로 시간 데이터를 가지고 있다. +, - 연산자로 날짜의 일수를 더하기 및 빼기 연산할 수 있다. SELECT SYSDATE as TODAY, SYSDATE + 1 as TOMORROW, SYSDATE - 1 as YESTERDAY FROM dual; TODAY TOMORROW YESTERDAY 2023-04-25 16:53:45 2023-04-26 16:53:45 2023-04-24 16:53:45 SYSTIMESTAMP 현재 날짜 및 시간을 밀리세컨드까지 표현하여 반환한다. SELECT SYSTIMESTAMP, TO_CHAR(SYSTIMESTA..

[SQL] 오라클(Oracle) 문자열 함수 정리

LOWER(문자열) / UPPER(문자열) / INITCAP(문자열) LOWER : 문자열을 모두 소문자로 변환하여 반환한다. UPPER : 문자열을 모두 대문자로 변환하여 반환한다. INITCAP : 문자열의 첫 번째 문자는 대문자, 나머지는 소문자로 변환하여 반환한다. SELECT LOWER('hello ORACLE!') AS LOWER, UPPER('hello ORACLE!') AS UPPER, INITCAP('hello ORACLE!') AS INITCAP FROM dual; LOWER UPPER INITCAP hello oracle! HELLO ORACLE! Hello Oracle! LENGTH(문자열) 문자열의 길이를 반환한다. SELECT LENGTH('Hello Oracle') AS LEN..

[SQL] 오라클(Oracle) 숫자 함수 정리

ABS(N) N의 절댓값을 반환 SELECT ABS(-5) AS RESULT FROM dual; RESULT 5 MOD(A, B) A를 B로 나눈 나머지를 반환 SELECT MOD(10, 3) AS RESULT FROM dual; RESULT 1 ROUND(A, B) 입력값 A의 (소수점) B번째 자릿수까지 반올림(B 생략 가능) B = 0 : 소수점 첫 번째 자릿수 B > 0 : 소수점 B 번째 자릿수 B < 0 : 정수 B 번째 자릿수 EX) B = -2이면, 10의 자릿수까지 반올림 소수점 첫 번째 자릿수 (B = 0) SELECT ROUND(99.5) AS CASE1, ROUND(99.4) AS CASE2, ROUND(99.5, 0) AS CASE3, ROUND(99.4, 0) AS CASE4 F..

[SQL] Oracle과 MySQL의 문법 차이 정리

현재 날짜 확인 Oracle : SYSDATE MySQL : now() 날짜 포맷 Date to String Oracle : TO_CHAR(날짜, ‘형식’) TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') -- 2023-04-18 -> 20230418162030 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') -- 2023-04-18 -> 2023-04-18 16:20:30 TO_CHAR(SYSDATE, 'MM-DD-YYYY') -- 2023-04-18 -> 04-18-2023 문자열에 따라 표현의 차이가 있음 YYYY : 4자리 년도 YY : 2자리 년도 DD : 31일 형태의 일 DDD : 366일 형태의 일 HH24 : 24시 형태의 시 HH12 : 12..

[SQL] SQL과 NoSQL의 차이 (관계형 데이터베이스 vs 비관계형 데이터베이스)

SQL vs NoSQL 데이터베이스는 크게 관계형 데이터베이스와 비관계형 데이터베이스로 구분한다. 관계형 데이터베이스는 SQL을 기반으로 하고, 비관계형 데이터베이스는 NoSQL로 데이터를 다룬다. SQL과 NoSQL은 만들어진 방식, 저장하는 정보의 종류, 저장하는 방법 등에 차이가 있다. 관계형 데이터베이스 관계형 데이터베이스는 테이블의 구조와 데이터 타입 등을 사전에 정의하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입할 수 있다. 관계형 데이터 베이스는 행(rwo)과 열(column)로 구성된 테이블에 저장하며, 각 열은 하나의 속성에 대한 정보를 저장하고, 행에는 각 열의 데이터 형식에 맞는 데이터가 저장된다. 관계형 데이터베이스는 특정한 형식을 지키기 때문에, 데이터를 정확히 업력 했..

반응형