<Insert>
새로운 레코드를 추가하는 명령어
Insert into 테이블 [(컬럼명1,컬럼명2...) ]
values (값1,값2...) ;
컬럼명 생략시 데이터베이스에 설정된 스키마 순서대로 입니다.
컬럼명 생략시 반드시 모든 컬럼을 스키마에 정의된 순서대로 값을 설정해야합니다.
-> 다만, 권장하지 않는 방식입니다.
-- 컬럼명을 기술해야 하는 경우
1. 모든 컬럼에 값을 입력하지 않는 경우
2. 스키마의 순서를 모르는 경우. 순서를 개발자가 지정할 때
3. db구조가 자주 변경될 때
-- Quiz. dept2 테이블에 9000번 부서를 추가하기
(1) 추가 전 데이터 셋 조회
select * from dept2 ;
(2) 데이터 추가
insert into dept2 (dcode,dname,pdept,area)
values (9006,'특수판매6팀',9000,'임시지역')
;
(3) 추가 후 데이터 셋 조회
select * from dept2 ;
--Quiz. 컬럼명 부분 생략하여, 9001번 부서 추가하기
insert into dept2
values (9001,'특수판매1팀',9000,'임시지역')
;
<Rollback>
** Rollback; 을 입력하면, insert로 추가했던 데이터 값이 원래대로 복구되어 사라지게 됩니다.
** 잘못 추가 했을 경우 유용합니다.
-- Quiz . 모든 컬럼에 값을 입력하지 않는 경우 반드시 컬럼명부분을 구현해야 함. 9002번 부서 추가하기
(1) 추가 전 데이터 셋 조회
select * from dept2 ;
(2) 데이터 추가
insert into dept2 (dcode,dname)
values (9008,'특수판매11팀')
;
(3) 추가 후 데이터 셋 조회
select * from dept2 ;
-- insert 구문으로 다른 테이블의 내용을 복사하기 (컬럼만 있고 행의 값은 없는 구조만 복사)
-- insert 구문 사용전에 테이블 생성
Quiz. dept12 테이블을 생성하고, dept2 테이블에서 서울지역인 레코드만 dept12 테이블에 부서코드와 부서명만 복사하기
(1) create table 만들테이블명 as select * from 가져올 테이블명 where 1=0 조건을 하면,
-> 값이 없는 테이블만 가져올수 있다.
create table dept12 as select * from dept2 where 1=0 ;
(2) select * from dept12 ;
(3) insert into dept12(dcode, dname) select dcode, dname from dept2 where area = '서울지사'
(4) select * from dept12 ;
'SQL' 카테고리의 다른 글
SQL [16] - Delete (0) | 2021.05.05 |
---|---|
SQL [15] - Update (0) | 2021.05.05 |
SQL [13] - SUB QUERY 서브 쿼리 (단일행, 다중행) (0) | 2021.05.02 |
SQL [12] - SELF JOIN (0) | 2021.05.02 |
SQL [11] - JOIN(Cross, Equi, non-Equi, Outer) (0) | 2021.05.02 |