본문 바로가기
멀티캠퍼스 풀스택 과정/데이터베이스

데이터베이스2-2 데이터의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)

by 이쟝 2022. 1. 19.

<DML>

 

SQL 내용
INSERT 데이터베이스 객체에 데이터를 입력한다. ( C -> create )
DELETE 데이터베이스 객체의 데이터를 삭제한다. ( Delete ) 레코드를 삭제한다.
UPDATE 기존에 존재하는 데이터베이스 객체의 데이터를 수정한다. ( Update )
SELECT 데이터베이스 객체로부터 데이터를 검색한다. ( Read )

1. INSERT

테이블 안에 데이터를 삽입하는 역할을 한다.

 

 

- 실제 데이터는 VALUES 괄호( )안에 입력하고 문자열은 단일 따옴표(‘ ‘)

- 각각의 데이터 구분은 쉼표(“ , “)로 한다.

- 테이블 이름 옆에 ( ) 생략시에는 모든 컬럼을 VALUES( )안에 입력시킨다.

 

 

1) 모든 필드의 정보가 있을 때

-> 필드명 순서대로 데이터를 삽입해야 한다. 틀리면 에러

> INSERT INTO emp VALUES(7777, 'hong', '총무부', 7369, NOW(), 4000, 100, 40);

 

2) 사원번호, 이름만 있을 때

> INSERT INTO emp(empno, ename) VALUES(8888, 'park');

더보기
사원번호와 이름만 데이터로 들어가고 나머지는 &nbsp;null 로 추가됨

 

3) 이름과 급여 필드를 추가(단, EMPNO는 NOT NULL)

> INSERT INTO emp(ename, sal) VALUES('choi', 5000);

 

-- Error CODE: 'EMPNO' doesn't have a default value

-- EMPNO NULL 데이터를 허용하지 않는다.(NOT NULL): EMPNO 없이 데이터를 생성할 수 없다. 사원번호가 있어야지만 생성가능!

 

> INSERT INTO emp(empno, ename, sal) VALUES(9999, 'choi', 5000);

 

 

-> 1, 2, 3번 모두 테이블에 추가되었다.

 

더보기

DB를 연동한 자바에서도 업데이트 되어있음

 


* SELECT 문장을 이용한 INSERT *

 

-> 기존의 테이블에서 선택한 데이터를 새로운 테이블에 삽입

 

예제) emp의 테이블에 있는 레코드 중에 급여가 3000불 이상인 사원을 emp2에 추가하라.

-- emp2의 필드는 (사원번호:empno, 이름:ename, 담당업무:job, 급여:sal)

더보기

> INSERT INTO emp2(empno, ename, job, sal) SELECT empno, ename, job, sal FROM emp WHERE sal>=3000;

> SELECT * FROM emp2;

 

-> emp2에는 3개의 값만 있었는데 급여가 3000불 이상인 사원이 더 추가되었다.

 


2.  UPDATE

기존에 있던 레코드의 정보를 수정한다.

 

 

-> ※ 워크벤치는 기본적으로 레코드를 1개이상 바꾸지 못하도록 설정이 되어 있어서 해당 설정 바꿔줘야함

-> Edit -> Preferences... -> SQL Editor -> Safe Updates(체크해제)

 

예제1) empno9999인 사람의 job인사부로 업데이트해라.(테이블은 emp2)

더보기

> UPDATE emp2 SET job = '인사부' WHERE empno = 9999;

예제2) FORD 사원의 job을 기획부로 업데이트 하고 급여를 1000불 인상하라.(테이블은 emp2)

더보기

> UPDATE emp2 SET job = "기획부", sal = sal + 1000 WHERE ename = 'FORD';

 

결과

 

예제3) emp2의 모든 사원의 급여 10%인상한 급여로 수정하라.

더보기

> UPDATE emp2 SET sal = sal*1.1;

> SELECT * FROM emp2;

 

 


3. DELETE

데이터를 삭제한다. 조건을 안 적으면 테이블이 삭제된다.

 

 

-> 삭제할 때는 기준을 유일한 값을 가지고 삭제

 

예제1) 7777번(empno) 사원을 삭제하라(테이블 이름은 emp2)

더보기

> DELETE FROM emp2 WHERE empno=7777;

> SELECT * FROM emp2;

 

 

예제2) 인사부(job)인 사람을 삭제하라.(테이블 이름은 emp2)

더보기

> DELETE FROM emp2 WHERE job = '인사부';

> SELECT * FROM emp2;