데이터의 삽입

기존 테이블에 행을 삽입할 경우에는 다음과 같은 형식의 insert 문을 사용한다.

insert

into 테이블[(열_이름_리스트)]

values (열값_리스트);

또는

insert

into 테이블[(열_이름_리스트)]

select문;

# 위의 첫 번째 형식은 행을 직접 삽입하는데 사용되고,

두번째 형식은 부속 질의문인 select문을 실행하여 그 결과(일반적으로 복수의 열) 를 지정된 테이블에 삽입하는 경우에 사용한다. 

열의 값과 열의 이름은 그 명시된 순서대로 일 대 일로 대응한다. 만일 열의 이름을 명시하지 않으면 이 테이블 정의문에 명시된 모든 열이 명시된 것으로 취급된다.


레코드의 직업 삽입

query: 학번: 600, 이름: 김 연아, 학년: 1, 학과: 후디니인 학생을 삽입하라.

insert

into student(sno, name, year, dept)

values (600, '김 연아', 1, '후디니');

# 위 예와 같이 학생 테이블에 있는 열의 이름이 모두 명시되고 그 순서가 학생 테이블 정의문에 명시된 순서와 같은 경우에는 다음과 같이 열이름 명시를 생략한 삽입문과 동등하다.

insert

into student

values (600, '김 연아', 1, '후디니');

# 만일 학과의 이름을 모든다고 하면 '학과'에 해당하는 난을 공백으로 남겨 두면 된다. 이때 이 값은 NULL 값으로 취급된다. 

그렇지 않으면 다음과 같이 삽입하려는 데이터값의 열이름과 함께 일 대 일로 명시해도 같은 결과가 된다.

insert

into student(sno, name, year)

values (600, '김 연아', 1);

# 하나의 insert문으로 여러 개의 행을 삽입할 수 있는데 이때는 한 행에 해당하는 값들을 괄호로 묶어 표시하면 된다.


부속 질의문을 이용한 레코드 삽입

query: 학생 테이블에서 컴퓨터과 학생의 학번, 이름, 학년을 검색하여 테이블 컴퓨터(computer)에 삽입하라.

insert

into computer(sno, name, year)

select sno, name, year

from student

where dept = '컴퓨터';

# 이 예에서는 테이블 컴퓨터가 존재하고 적어도 학번, 이름, 학년 열을 가지고 있다는 것을 가정하였다. 

만일 그렇지 않은 경우에는 이 테이블을 먼저 create table 문을 이용하여 생성한 다음 삽입해야 된신다. 이 질의문의 실행은 into 다음의 부속 질의문(select)을 먼저 실행하고 그 검색 결과를 전부 컴퓨터과 테이블에 삽입한다.


'Programming > DataBase' 카테고리의 다른 글

keywork BETWEEN, IN  (0) 2016.08.15
Basic  (0) 2016.07.31
SQL 데이터 조작문 - 데이터 갱신  (0) 2014.09.08
SQL 데이터 조작문 - 데이터 검색  (0) 2014.09.07
데이터베이스의 개요  (0) 2014.09.07
Posted by scii
: