본문 바로가기

Database/Oracle

오라클 기본 함수1 (날짜//+++)

CHAR    :   10BYTE  00000 00000
ABC     :           ABC00 00000

가(3BYTE) + (10BYTE-1) = 12
가나(3BYTE*2) + (10BYTE-2) = 14
가나다(9BYTE) + 7 = 16

 

 

※ LENGTH : 문자열의 길이를 반환

※ LENGTHB : 문자열의 BYTE 를 반환

 

 

 

-- Table

--table 생성
CREATE TABLE 테이블명(
    컬럼명1 자료형,
    컬럼명2 자료형,
    컬럼명3 자료형
    :
);
--table 삭제
DROP TABLE 테이블명;

--    자료형

    java            oracle
    int             Integer, NUMBER
    double          NUMBER(정수의 자리수, 소수의 자리수)
    String          VARCHAR2, CHAR
    Date            DATE

table 기본 생성

-- 문자열
-- CHAR
CREATE TABLE TB_CHAR(
    COL_CHAR1 CHAR(10 BYTE),
    COL_CHAR2 CHAR(10 CHAR),
    COL_CHAR3 CHAR(10)
);

 

 

 


 

 

 

 

    INSERT 함수

/*
    INSERT INTO 테이블명(컬럼명1, 컬럼명2, 컬럼명3...)
    VALUES(값1, 값2, 값3);
    
    String '문자열'
*/

INSERT INTO tb_char(COL_CHAR1, COL_CHAR2, COL_CHAR3)
VALUES('ABC', 'ABC', 'ABC');    --영문자 1문자의 크기는 무조건 1BYTE

SELECT  * FROM tb_char;

INSERT INTO tb_char(COL_CHAR1, COL_CHAR2, COL_CHAR3)
VALUES('가', '나', '다');  --한글의 한문자의 크기는 3BYTE

INSERT INTO tb_char(COL_CHAR1, COL_CHAR2, COL_CHAR3)
VALUES('가나', '가나', '가나');

INSERT INTO tb_char(COL_CHAR1, COL_CHAR2, COL_CHAR3)
VALUES('가나다', '가나다', '가나다');

SELECT col_char1, col_char2, col_char3, LENGTHB(col_char1),LENGTHB(col_char2),LENGTHB(col_char3)
FROM tb_char;

 

 

 


 

 

 

VARCHAR2함수

CREATE TABLE TB_VARCHAR(
    COL1 VARCHAR2(10 BYTE),
    COL2 VARCHAR2(10 CHAR),
    COL3 VARCHAR2(10)
);

INSERT INTO TB_VARCHAR(COL1, COL2, COL3)
VALUES('ABC', 'ABC', 'ABC');

INSERT INTO TB_VARCHAR(COL1, COL2, COL3)
VALUES('가나다', '가나다', '가나다');

SELECT
    *
FROM tb_varchar;

SELECT COL1, COL2, COL3, LENGTHB(COL1), LENGTHB(COL2), LENGTHB(COL3)
FROM tb_varchar;

 

 

 


 

 

 

LONG함수

--최대 2GB까지 저장
--TABLE당 1개만 사용가능.

CREATE TABLE TB_LONG(
    COL_LONG LONG
 --   COL_LONG1 LONG
   ); 

INSERT INTO TB_LONG(COL_LONG)
VALUES('ABC');

SELECT
    *
FROM tb_long;

SELECT COL_LONG, LENGTHB(COL_LONG)
FROM tb_long;

 

 

 


 

 

 

숫자(정수, 실수)

 

INTEGER 정수

CREATE TABLE TB_INTEGER(
    COL1 INTEGER,
    COL2 INTEGER
);

INSERT INTO tb_integer(COL1, COL2)
VALUES(123,456);

INSERT INTO tb_integer(COL1, COL2)
VALUES('123','456');

SELECT
    *
FROM tb_integer;

commit; --DB에 저장

 

 

 

--NUMBER 정수, 실수

CREATE TABLE TB_NUMBER(
    COL_NUM1 NUMBER,
    COL_NUM2 NUMBER(5),--5는 자릿수, 소수점설정안해서 소수점 안나옴
    COL_NUM3 NUMBER(5,2),--5자리, 소수점 둘째자리
    COL_NUM4 NUMBER(*,2)--소수점 둘째자리
);

INSERT INTO TB_NUMBER(COL_NUM1, COL_NUM2, COL_NUM3, COL_NUM4)
VALUES(1234.5678, 12345.12, 123.456, 1234.56789);

SELECT
    *
FROM tb_number;

 

 

 


 

 

 

날짜 DATE

연도, 월, 일 , 시, 분, 초

CREATE TABLE TB_DATE(
    COL_DATE1 DATE,
    COL_DATE2 DATE
);

--SYSDATE 
INSERT INTO TB_DATE(COL_DATE1, COL_DATE2)
VALUES(SYSDATE, SYSDATE - 1);   --날짜로 들어감.

SELECT
    *
FROM tb_date;

INSERT INTO TB_DATE(COL_DATE1, COL_DATE2)
VALUES(SYSDATE, TO_DATE( '2020-07-17 12:32:45','YYYY-MM-DD HH:MI:SS'));  --TO DATE( 값, 형식) 여기서 값은 문자열

INSERT INTO TB_DATE(COL_DATE1, COL_DATE2)
VALUES(SYSDATE, '20/08/27');

INSERT INTO TB_DATE(COL_DATE1, COL_DATE2)
VALUES(SYSDATE, TO_DATE( '20200717123245','YYYYMMDDHHMISS'));

--VARCHAR2(문자열) -> DATE(문자열, 날짜형태) -> TO_DATE 함수사용
--DATE(문자열, 날짜형태) -> VARCHAR2(문자열) -> TO_CHAR 함수사용

 

 

 

 

 

 

 

삭제 -- 

DROP TABLE TB_CHAR;
DROP TABLE TB_VARCHAR;
DROP TABLE TB_LONG;
DROP TABLE TB_NUMBER;
DROP TABLE TB_INTEGER;
DROP TABLE TB_DATE;

 

 

 

 

 

 

 

 

'Database > Oracle' 카테고리의 다른 글

문자  (0) 2020.06.19
JOIN  (0) 2020.06.19
SORTING, GROUP BY, 통계  (0) 2020.06.19
WHERE  (0) 2020.06.18
오라클 기본함수2  (0) 2020.06.17