DML

Aiden·2020년 7월 21일

 DML 개요
 다양한 INSERT 처리
 UPDATE
 DELETE
 Transaction ( commit / rollback )
 lock 경합

INSERT 용도

  • 테이블에 데이터를 입력하기 위한 데이터 조작어 이다.
  • 한번에 하나의 행을 테이블에 입력하는 방법과 서브쿼리를 이용하여 한번에 여러
    행을 동시에 입력하는 방법이 있다.
  • INTO 절에 명시한 컬럼에 VALUES 절에서 지정한 컬럼값을 입력한다. ( 일대
    일 대응)
  • INTO 절에 컬럼명을 지정하지 않으면 테이블 생성시 정의한 컬럼순서와 동일
    한 순서로 입력된다.
  • 입력되는 데이터의 타입은 컬럼의 데이터 타입과 같아야 되며, 입력되는 데이
    터의 크기는 컬럼의 크기보다 작아야 된다. ( 문자와 날짜는 반드시 ‘’ 지정 )

insert into dept(deptno, dname, loc)
values(90,'인사과','서울');

insert into dept(loc, dname, deptno)
values('서울', '인사과',70);
select * from emp;

insert into dept
values(80,'인사과','서울');

desc dept;

select deptno from dept;

INSERT – NULL 값 입력 SQL
 NULL 값 입력
: 데이터를 입력하는 시점에 해당 컬럼값을 모르거나 미확정일 때에는 null값
을 입력할 수 있다.
1) 묵시적 방법

  • INTO 절에서 해당 컬럼명과 값을 생략하면 된다.
    단, 해당 컬럼에 NOT NULL 제약조건이 지정된 경우에는 생략 불가하다.
    2) 명시적 방법
  • VALUES절의 컬럼값에 null 키워드를 적거나 빈문자열 ‘’을 사용하면 된다.

INSERT 의 특수한 형태
1. 특수 값 입력 ( SYSDATE , USER )

insert into dept(deptno, dname)
values(91,'인사과');
select * from dept;

insert into dept
values(92, '인사과', NULL);

insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)
values(9000, USER, '연구원', 7839, SYSDATE, 5000,NULL, 90);

select * from emp;

  1. 특정 데이터 타입으로 입력 ( RR/MM/DD 형식 , TO_DATE() 사용 )
    insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)
    values (9001, '홍길동', 'MANAGER', 7839, '2000/01/01', 2000, NULL, 30);

insert into emp(empno, ename, job, mgr, hiredate, sal, comm ,deptno)
values( 9002, '임꺽정', 'MANAGER', 7839, TO_DATE('1999-12-13', 'YYYY/MM/DD'),
2000, NULL, 30);

select * from emp where empno = 9000;

휴학생들의 성적을 지워라

DELETE FROM TB_GRADE WHERE STUDENT_NO IN (
SELECT STUDENT_NO FROM TB_STUDENT WHERE ABSENCE_YN ='Y');

0개의 댓글