java-school logo

SQL 연습 - DML

INSERT 문

사용형식

INSERT INTO 테이블명 [(컬럼1, 컬럼2, ...)] VALUES (값1, 값2, ...);

SQL*PLUS로 scott계정에 접속한 후 다음을 실행한다.

--EMP 테이블에 새로운 사원 정보 추가(홍길동)
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) 
VALUES (1562,'홍길동','SALESMAN',7698,SYSDATE,2000,1000,30);

새로운 사원 데이터를 인서트하고 있다.
테이블명 다음에 나오는 컬럼 리스트가 구조에 맞게 순서대로 모두 선택되야 하는 경우는 생략 가능하다.
NUMBER 형의 컬럼 값에는 ''를 생략할 수 있다.
SYSDATE 는 오라클에서 시스템이 저장하는 현재 날짜 데이터를 구할 때 사용한다.

--EMP 테이블에 새로운 사원 정보 추가(임꺽정)
INSERT INTO EMP 
VALUES (1500,'임꺽정','SALESMAN',7698,SYSDATE,1800,1200,30);

사원번호는 기본키로 설정되어 있다.
따라서 사원번호가 같은 사원은 테이블에 존재할 수 없다.

--EMP 테이블에 새로운 사원 정보 추가(장길산)
INSERT INTO EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO)
VALUES (1697,'장길산','MANAGER',7839,SYSDATE,3000,30);

컬럼리스트에 COMM 이 빠졌고 VALUES 에도 해당 컬럼에 대한 값이 없다.
이러면 COMM 컬럼값은 NULL이 된다.
위 인서튼 문은 컬럼에 NULL을 입력하는 방법 중 하나를 보여준다.

UPDATE 문

사용형식

UPDATE 테이블 
SET 컬럼1='값1', 컬럼2='값2', ...
[WHERE 조건]

SET : UPDATE 구문과 함께 사용되며, 해당 테이블의 특정 컬럼에 값을 변경시키고자 할 때 사용한다.
변경시키고자 하는 컬럼 다음에 = 으로 값을 대응시킨다.
컬럼1 : 변경될 컬럼명
값1 : 변경될 컬럼에 대응되는 실제 변경값이다.
이 때 사용되는 값으로는 숫자나 문자와 같은 실제값일 수도 있고, 연산 가능한 컬럼과 연산자가 결함된 형태일 수도 있다.
즉, 변경할 컬럼의 데이터 형식이 NUMBER 형인 경우에 덧셉 연산자와 같은 연산자가 결합된 산술식의 형태가 있을 수 있다.
[WHERE 조건]: 조건을 주어 원하는 컬럼의 값을 변경할 때 사용한다.
UPDATE 문에서 WhERE 조건을 생략하면 해당 테이블에 존재하는 모든 레코드가 지정된 값으로 변경된다.

사원테이블에서 임꺽정의 월급여를 2800 으로 변경

UPDATE EMP 
SET SAL=2800
WHERE ENAME='임꺽정';

사원테이블에서 홍길동의 월급여를 300 만큼 인상하고 COMM은 500으로 변경

UPDATE EMP 
SET SAL=SAL + 300,COMM=500
WHERE ENAME='홍길동';

지금까지의 INSERT 문과 UPDATE 문을 영구적인 데이터로 관리하기 위해서는 COMMIT;를 실행해야 한다.

COMMIT;

DELETE 문

사용형식

DELETE FROM 테이블명 
[Where 조건]

DELETE 문에서 WHERE 조건을 주지 않으면 테이블에 있는 모든 레코드를 삭제된다.

사원테이블에서 홍길동,임꺽정,장길산을 삭제

DELETE FROM EMP 
WHERE ENAME IN ('홍길동','임꺽정','장길산');