MSSQL

MSSQL - INSERT 삽입

깐까망 2024. 3. 15. 17:24
728x90
반응형
SMALL

▶ INSERT 문의 기본

. DML의 종류의 하나로 INSERT 삽입으로 분류가 됩니다.

. 데이터베이스에 데이터를 입력하는 명령어입니다.
가장 기본적인 기능이고 굉장히 많이 쓰임으로 매우 중요합니다.

 

- INSERT INTO 테이블(컬럼명, 컬럼명, ...) VALUES(값, 값, ...)

CREATE TABLE dept 
(
deptno INT PRIMARY KEY ,
dname VARCHAR(14),
loc VARCHAR (13)
)

CREATE TABLE EMP (
empno INT NOT NULL,
ename VARCHAR(10),
job VARCHAR(9),
mgr INT,
hiredate DATE,
sal NUMERIC(7,2),
comm NUMERIC(7,2),
deptno INT FOREIGN KEY REFERENCES dept(deptno),  -- 외래키
CONSTRAINT emp_pk PRIMARY KEY (empno)			  -- 기본키
)
INSERT INTO dbo.dept(deptno, dname, loc)
VALUES(1,'인사-1',100)
INSERT INTO dbo.EMP(empno, ename,job,mgr,hiredate,sal,comm,deptno) 
VALUES (110,'김철수','직장인',100,GETDATE(),20000.00,10000.00,1)

 

. EMP 테이블을 만들어서 컬럼이 위와 같이 있다고 생각을 하여 INSERT를 합니다

. 컬럼의 갯수만큼 VALUES가 있어야 하며 테이블에 NOT NULL인 컬럼에는 필수로 넣어주어야하며 NULL인 컬럼에는 값을 넣어주지 않아도 된다.

. 컬럼의 타입에 따라 넣는 VALUES 형태가 다르다. 문자열은 '' 안에 값을 넣어야하며 숫자의 타입은 위와 같이 숫자의 값을 넣어주면 됩니다.

 

▷ 여러 값을 동시에 넣을 경우

- INSERT INTO 테이블(컬럼명, 컬럼명, ...) VALUES(값, 값, ...), (값, 값, ...), (값, 값, ...), (값, 값, ...)...

INSERT INTO dbo.dept(deptno, dname, loc)
VALUES(1,'인사-1',100),
(2,'인사-2',100),
(3,'영업-1',100),
(4,'영업-2',100),
(5,'생산-1',100),
(6,'생산-2',100),
(7,'생산-3',100),
(8,'직급',100),
(9,'공장-1',100),
(10,'공장-2',100),
(11,'공장-3',100),
(12,'교양-1',100),
(13,'고양-2',100),
(14,'고양-3',100)

INSERT INTO 
dbo.EMP(empno, ename,job,mgr,hiredate,sal,comm,deptno) 
VALUES
(110,'김철수','직장인',100,GETDATE(),20000.00,10000.00,1),
(20,'이순신','직장인',101,GETDATE(),10000.00,10000.00,1),
(30,'유관순','직장인',102,GETDATE(),20000.00,10000.00,1),
(40,'계백','직장인',103,GETDATE(),25000.00,10000.00,1),
(50,'한가인','직장인',104,GETDATE(),20500.00,10000.00,1),
(60,'조인성','직장인',105,GETDATE(),30000.00,10000.00,2),
(70,'김재상','직장인',106,GETDATE(),80000.00,10000.00,3),
(80,'이선근','직장인',107,GETDATE(),40000.00,10000.00,3),
(90,'김근호','직장인',108,GETDATE(),10000.00,10000.00,4),
(100,'김나연','직장인',109,GETDATE(),12000.00,10000.00,1)

 

. 값을 하나씩 넣어도 되지만 데이터가 많은 상황에서는 하나 넣고 실행하고 값을 바꾸어 넣고 하기가 힘들다 그러므로 , 뒤에 값을 컬럼 갯수대로 넣으면 실행을 한번을 하면 됩니다.

 

▷ 검색한 값을 그대로 넣는 방법

INSERT INTO (
    입력대상 칼럼1
    , 입력대상 칼럼2
    , 입력대상 칼럼3
    ...
)
SELECT 입력위한 조회칼럼1
     , 입력위한 조회칼럼2
     , 입력위한 조회칼럼3
     ...
  FROM TMEP_TABLE

 

. 주의 할점은 위에 삽입될 컬럼 갯수와 검색한 컬럼의 갯수가 같아야지 값이 들어간다.

. 컬럼의 갯수가 다르면 반드시 오류가 나오며 실행이 되지 않는다.

728x90
반응형
LIST

'MSSQL' 카테고리의 다른 글

MSSQL - DELETE 문  (2) 2024.03.18
MSSQL UPDATE문  (0) 2024.03.16
MSSQL - SELECT 조회  (0) 2024.03.13
MSSQL - 테이블 컬럼 추가,수정,삭제 하기  (0) 2024.03.12
MSSQL - 테이블 생성, 입력  (0) 2024.03.12