ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/DataBase

[SQL] INSERT ๋ฌธ

NaNaRin๐Ÿ™ƒ 2021. 3. 11. 12:37

1. INSERT ๋ฌธ

- ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

- ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋Œ€์ƒ ํ…Œ์ด๋ธ” ์ด๋ฆ„๊ณผ ์นผ๋Ÿผ ์ด๋ฆ„, ์นผ๋Ÿผ ์ˆœ์„œ์™€ ์ž๋ฃŒํ˜•์— ๋งž๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •

- ์ง€์ •ํ•œ ์นผ๋Ÿผ ๊ฐœ์ˆ˜์™€ ๊ฐ ์นผ๋Ÿผ์— ์ž…๋ ฅํ•  ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž๋ฃŒํ˜•์ด ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ์นผ๋Ÿผ ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ

- INSERT ๋ฌธ์— ์ง€์ •ํ•˜๋Š” ์นผ๋Ÿผ์€ ์ƒ๋žต์ด ๊ฐ€๋Šฅ. ์ƒ๋žต์‹œ ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์„ค์ •ํ•œ ์นผ๋Ÿผ ์ˆœ์„œ๋Œ€๋กœ ๋ชจ๋‘ ๋‚˜์—ด๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ( ์นผ๋Ÿผ ๊ฐœ์ˆ˜๋‚˜ ์ž๋ฃŒํ˜• ๋ฐ ๊ธธ์ด๋Š” ๋ฐ˜๋“œ์‹œ ๋งž๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•จ )

INSERT INTO ํ…Œ์ด๋ธ” ์ด๋ฆ„ [(์นผ๋Ÿผ1, ์นผ๋Ÿผ2, … , ์นผ๋ŸผN)]
VALUES (์นผ๋Ÿผ1์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ, ์นผ๋Ÿผ2์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ, … , ์นผ๋ŸผN์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ);

-- 1. DEPT_TEMP ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ
INSERT INTO DEPT_TEMP (DEPTNO,      DNAME,     LOC)
			   VALUES (    50, 'DATABASE', 'SEOUL');
                
-- 2. ์นผ๋Ÿผ ์ง€์ • ์ƒ๋žต
INSERT INTO DEPT_TEMP
			   VALUES (    60, 'NETWORK', 'BUSAN');
     
-- 3. 4. 5. 6. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ
INSERT INTO DEPT_TEMP (DEPTNO,     DNAME,     LOC)
    		   VALUES (    60, 'NETWORK'         );

INSERT INTO DEPT_TEMP (DEPTNO,     DNAME,     LOC         )
			   VALUES (    60, 'NETWORK', 'BUSAN', 'WRONG');
               
INSERT INTO DEPT_TEMP (DEPTNO,      DNAME,     LOC)
			   VALUES ('WRONG', 'NETWORK', 'BUSAN');
               
INSERT INTO DEPT_TEMP (DEPTNO,     DNAME,     LOC)
			   VALUES (   600, 'NETWORK', 'BUSAN');

  (1) ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•

  (2) ์นผ๋Ÿผ์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

  (3) ์˜ค๋ฅ˜ ๋ฐœ์ƒ : ์ง€์ •ํ•œ ์นผ๋Ÿผ๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์–ด์„œ

  (4) ์˜ค๋ฅ˜ ๋ฐœ์ƒ : ์ง€์ •ํ•œ ์นผ๋Ÿผ๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์„œ

  (5) ์˜ค๋ฅ˜ ๋ฐœ์ƒ : ์ˆซ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜์–ด์•ผ ํ•˜๋Š” DEPTNO ์นผ๋Ÿผ์— ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•ด์„œ

  (6) ์˜ค๋ฅ˜ ๋ฐœ์ƒ : ๋‘ ์ž๋ฆฌ ์ˆซ์ž๊นŒ์ง€ ํ—ˆ์šฉ๋˜๋Š” DEPTNO ์นผ๋Ÿผ์— ์„ธ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ง€์ •ํ•ด์„œ

 

2. ํ…Œ์ด๋ธ”์— NULL ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ

- INSERT ๋ฌธ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ํŠน์ • ์นผ๋Ÿผ์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ๊ฐ€ ํ™•์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ตณ์ด ๋„ฃ์„ ํ•„์š” ์—†๋Š” ๋ฐ์ดํ„ฐ์ธ ๊ฒฝ์šฐ์— NULL์„ ์‚ฌ์šฉ

-- 1. ๋ช…์‹œ์  ์ž…๋ ฅ - NULL ์ง€์ •
INSERT INTO DEPT_TEMP (DEPTNO, DNAME,  LOC)
	 		   VALUES (    70, 'WEB', NULL);
               
-- 2. ๋ช…์‹œ์  ์ž…๋ ฅ - ๋นˆ ๊ณต๋ฐฑ ๋ฌธ์ž์—ด ์ž…๋ ฅ
INSERT INTO DEPT_TEMP (DEPTNO,    DNAME, LOC)
	 		   VALUES (    80, 'MOBILE',  '');
               
-- 3. ์•”์‹œ์  ์ž…๋ ฅ
INSERT INTO DEPT_TEMP (DEPTNO,       LOC)
	 		   VALUES (    90, 'INCHEON');

  (1) ๋ฐ์ดํ„ฐ์— NULL ์„ ์ง์ ‘ ์ž…๋ ฅํ•˜์—ฌ ์ง€์ •

  (2) ๋ฐ์ดํ„ฐ์— ๋นˆ ๊ณต๋ฐฑ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์—ฌ ์ง€์ • (ํ•ด๋‹น ์นผ๋Ÿผ์˜ ์ž๋ฃŒํ˜•์ด ๋ฌธ์ž์—ด ๋˜๋Š” ๋‚ ์งœํ˜•์ผ ๊ฒฝ์šฐ)

  (3) INSERT๋ฌธ์— NULL๋ฌธ์ด ๋“ค์–ด๊ฐ€์•ผ ํ•  ์นผ๋Ÿผ ์ด๋ฆ„์„ ์•„์˜ˆ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ NULL์ด ์ž…๋ ฅ๋จ

 

3. ํ…Œ์ด๋ธ”์— ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ

- ์˜ค๋ผํด์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์šด์˜์ฒด์ œ์˜ ์ข…๋ฅ˜๋‚˜ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์–ธ์–ด๊ตฐ์— ๋”ฐ๋ผ ๋‚ ์งœ ํ‘œ๊ธฐ๋ฐฉ๋ฒ•์ด ๋‹ฌ๋ผ ๋ฌธ์ž์—ด๋กœ ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•๋ณด๋‹ค TO_DATE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

-- 1. INSERT ๋ฌธ์œผ๋กœ ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ
INSERT INTO EMP_TEMP (EMPNO,     HIREDATE)
	 		  VALUES ( 9999, '2001/01/01');
              
INSERT INTO EMP_TEMP (EMPNO,     HIREDATE)
	 		  VALUES ( 9999, '2001-01-01');
              
-- 2. TO_DATE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ
INSERT INTO EMP_TEMP (EMPNO,     HIREDATE)
	 		  VALUES ( 2222, TO_DATE('07/01/2001', 'DD/MM/YYYY'));

-- 3. SYSDATE ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ
INSERT INTO EMP_TEMP (EMPNO, HIREDATE)
	 		  VALUES ( 2222,  SYSDATE);

 

  (2) TO_DATE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DD(์ผ), MM(์›”), YYYY(๋…„) ์œผ๋กœ ์ธ์‹ํ•˜๋„๋ก ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝ

  (3) SYSDATE ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์‹œ์ ์„ ์ •ํ™•ํžˆ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์–ด ์ž์ฃผ ์‚ฌ์šฉ. ์‚ฌ์šฉ ํ™˜๊ฒฝ ๋˜๋Š” ์„ค์ •์— ๋”ฐ๋ผ ์˜ค์ „/์˜คํ›„, ์‹œ๊ฐ„์ด ํ•จ๊ป˜ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Œ

 

4. ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ(ํ–‰) ์ถ”๊ฐ€ํ•˜๊ธฐ 

- ์ง€๊ธˆ๊นŒ์ง€์˜ INSERT ๋ฌธ์€ ๋ชจ๋‘ ์‹คํ–‰ ์‹œ ํ•œ ํ–‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ถ”๊ฐ€๋˜์—ˆ์ง€๋งŒ INSERT๋ฌธ์— ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SELECT ๋ฌธ์œผ๋กœ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ํ–‰์˜ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅ

- VALUES ์ ˆ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค

- ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ ๊ฐœ์ˆ˜, ์ž๋ฃŒํ˜•์ด ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์นผ๋Ÿผ ๊ฐœ์ˆ˜, ์ž๋ฃŒํ˜•๊ณผ ์ผ์น˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค

-- 1.
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
	 SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM, E.DEPTNO
	   FROM EMP E, SALGRADE S
      WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL
        AND S.GRADE = 1;

  (1) EMP ํ…Œ์ด๋ธ”์—์„œ SALGRADE ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ ๊ธ‰์—ฌ ๋“ฑ๊ธ‰์ด 1์ธ ์‚ฌ์›๋งŒ์„ EMP_TEMP ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€