Data base

INSERT 개념만

연93 2022. 10. 17. 20:18
-- INSERT
CREATE TABLE ex3_1 (
    col1   VARCHAR2(10), -- NULL
    col2   NUMBER,   -- NULL
    col3   DATE    -- NULL
);


-- 입력컬럼 지정하는 방법
-- 컬럼 순서    
INSERT INTO ex3_1 (col1, col2, col3)
VALUES ('ABC', 10, SYSDATE);  

-- 컬럼 순서 변경
INSERT INTO ex3_1 (col3, col1, col2)
VALUES (SYSDATE, 'DEF', 20);  

INSERT INTO ex3_1 (col1, col2, col3)
VALUES ('ABC', 10, 30); --col3컬럼의 값이 타입 불일치.
-- inconsistent datatypes: expected DATE got NUMBER



-- 입력컬럼명을 생략 형태. 모든컬럼명을 입력하는 의미.
INSERT INTO ex3_1 
VALUES ('GHI', 10, SYSDATE);  

-- col3   DATE NULL 컬럼이므로 생략이 가능
INSERT INTO ex3_1  (col1, col2 )
VALUES ('GHI', 20);

-- 입력 컬럼명을 하나라도 지정하지 않으면, 모든 컬럼명을 입력하는 의미.
INSERT INTO ex3_1  
VALUES ('GHI', 30);  -- SQL 오류: ORA-00947: not enough values


/*
INSERT ~ SELECT 형태
    INSERT INTO [스키마.]테이블명 (컬럼1, 컬럼2, ...)
    SELECT 문;

*/