gwooden_코린이

오라클 데이터 베이스 INSERT 삽입문 본문

데이터베이스

오라클 데이터 베이스 INSERT 삽입문

gwooden22 2023. 1. 13. 10:42
728x90

1. 오라클 데이터 베이스 INSERT 삽입문

  • 오라클 INSERT 삽입문
    • INSERT INRO 테이블 VALUES (추가할 내용들)
    • INSERT INRO 테이블(컬럼, 컬럼) VALUES (추가할 내용들)

 

CREATE TABLE DEPT_TEMP
    AS SELECT * FROM DEPT;
    
SELECT * FROM DEPT_TEMP;

--                           데이터 마다 데이터타입이 다를 수 있다보니
--                           순서에 맞춰서 값을 알맞게 입력해줘야 된다.
--                           DEPTNO, DNAME,    LOC
INSERT INTO DEPT_TEMP VALUES (50, 'DATABASE', 'SEOUL');
SELECT * FROM DEPT_TEMP;


-- 전체 데이터를 출력할때는 컬럼을 별도로 입력할 필요는 없지만
-- 컬럼별로 특정 값을 입력하고 싶을때는 컬럼을 별도로 입력해준다.
-- 또한, 테이블 () 괄호안에 있는 것과 VALUES() 괄호안에 있는 순서는 동일해야된다.
INSERT INTO DEPT_TEMP(DEPTNO, DNAME, LOC)
    VALUES(60, 'NETWORK', 'BUSAN');
SELECT * FROM DEPT_TEMP;

-- 잠시 빈칸으로 냅두고 싶을때 (빈칸에 NULL을 집어넣는 경우)
INSERT INTO DEPT_TEMP VALUES(70, 'JAVA', NULL);
SELECT * FROM DEPT_TEMP;

-- 빈칸에 NULL을 안쓰고 작은따옴표로 처리해도 NULL 값이 들어가게 된다.
-- 아무것도 입력하지 않은 것 보다는 NULL로 명시해주는게 좋다.
INSERT INTO DEPT_TEMP VALUES(80, 'HTML', '');
SELECT * FROM DEPT_TEMP;

-- 특정 컬럼을 제외하고 넣고 싶은 컬럼에만 값을 넣어도 제외한 빈 컬럼에는 NULL 값이 들어간다.
INSERT INTO DEPT_TEMP(DEPTNO, DNAME) VALUES (90, 'CSS');
SELECT * FROM DEPT_TEMP;

-- 비어있는 테이블로 복사 하고싶을때
CREATE TABLE 연습
    AS SELECT * FROM EMP WHERE 1 != 1;
SELECT * FROM 연습;

INSERT INTO 연습
    VALUES(9001, '티모', 'TOP', NULL, '2010/10/10', 10000, 500, 10);
SELECT * FROM 연습;

INSERT INTO 연습
    VALUES(9002, '베인', 'BOT', 1234, '2015-01-01', 8000, 100, 20);
SELECT * FROM 연습;

INSERT INTO 연습
    VALUES(9003, '라이즈', 'MID', 5555, SYSDATE, 5000, 10, 30);
SELECT * FROM 연습;


INSERT INTO 연습
    SELECT *
        FROM EMP
    WHERE DEPTNO = 30;
SELECT * FROM 연습;

 

INSERT  서브쿼리로 추가 VALUES 제외하고 작업

  • 추가대상이 되는 테이블(연습)과 추가할 내용이 있는 테이블(EMP)
  • 컬럼 개수 항상 일치해야 함 (컬럼명까지 같은 필요는 없음)
  • 컬럼에 데이터 형식도 같아야 함

 

INSERT INTO 연습(EMPNO, ENAME, JOB)
    SELECT EMPNO, ENAME, JOB
        FROM EMP
    WHERE DEPTNO = 20;
SELECT * FROM 연습;

 

 

 

 

--DEPT_TEMP 테이블에 내용을 추가
--DEPT 테이블에서 DEPTNO가 10,30인 레코드를 추가
INSERT INTO DEPT_TEMP
    SELECT *
        FROM DEPT
    WHERE DEPTNO IN(10, 30);
SELECT * FROM DEPT_TEMP;

728x90
Comments