본문 바로가기
Study/중앙정보처리학원과정

22일차. Create, Drop, Insert

by 얏옹이 2022. 11. 24.
반응형

우리가 테이블을 생성할때 바로 Create Table을 이용하여 테이블을 생성한다

 

테이블은 실제로 데이터들이 저장되는곳이라고 생각하면 이해가 쉬울거같다.

 

Create의 기본 문법을 살펴보자.

 

Create Table 테이블 명 (

  컬럼명1 데이터타입(크기) [defalut값][constraint 제약조건명][null or not null]

  컬럼명2 데이터타입(크기) [defalut값][constraint 제약조건명][null or not null]

  컬럼명3 데이터타입(크기) [defalut값][constraint 제약조건명][null or not null]

);

 

이것이 바로 Create문의 기본 문법이다. 여기에서 [] 괄호안에 들어간 내용들은 생략이 가능하다.

 

데이터 타입의 크기는 명시적으로 정해주지 않아도 가능은 한데, 정해줘야 하는 데이터 타입이 따로 있다.

예를들어서 Char 타입이라던지 Varchar2 타입같은 경우는 크기를 정해줘야하고 Number나 Date는 별도로 규정하지 않아도 생성 가능하다.

 

우리가 테이블 설계 단계에서 어떠한 데이터를 어떤 컬럼에 넣을지 설계를 하고, 그 데이터들이 들어올 값들을 미리 예상해서 신중하게 데이터 타입의 크기를 정해줘야한다.

 

이렇게 emp1이라는 테이블을 생성해보았다. eno컬럼은 Number타입의 6자리까지 들어올수 있고, ename은 varchar2타입이 30byte, 즉 영어&숫자는 30글자, 한글은 10글자정도까지만 저장이 가능하다.

 

테이블 생성을 했으니 테이블을 삭제하는 Drop도 같이 알아보자.

 

Drop은 간단하다. 테이블 전체를 날리는거기때문에

 

Drop table 테이블명; 이라고 쿼리문을 날리면 바로 삭제가 된다. 여기에서 Create와 Drop은 자동 Commit되는 명령어니 신중하게 작성하자

 

한번 쿼리문 실행 하고 나면 바로 전 단계로 Rollback 할수 없다는 말이다.

 

 

방금 만든 emp1 테이블을 삭제해주었다.

 

 

다시 emp1 테이블을 생성해주고, 이번에는 emp1 테이블에 Insert를 해줄것인데 다양한 방법으로 Insert 해주는게 오늘 주된 수업의 내용이였다.

 

emp1 테이블의 각 컬럼에 Insert를 해줄건데 바로 Select문을 이용해서 Emp 테이블의 요소들을 대입해서 insert 해줄것이다.

 

emp1을 생성하고 emp1 테이블을 조회해보면 아무것도 없는것을 알수 있다.

 

 

 

그럼 여기에서 insert와 select 를 이용하여 동시에 값을 넣어주겠다.

 

즉 Select문으로 조회해서 가져온 emp테이블의 값들을 그대로 emp1에 대입해서 넣어주겠다는 말이다.

 

이 쿼리문의 해석은 insert문으로 emp1테이블의 eno, ename, pay의 컬럼에

emp 테이블을 조회한 empno, ename, sal을 각각 순서에 맞게 넣어주겠다. 라고 해석할수 있을거 같다.

 

따라서 empno가 eno로, emp의 ename이 emp1의 ename으로, sal이 pay로 입력됐다.

 

잘 입력됐는지 조회해보자.

 

위의 사진은 emp1 테이블을 조회했을때 결과값이고, 아래 사진은 emp테이블의 empno, ename, sal 컬럼을 조회했을때의 값이다.

 

동일하게 입력된것을 확인할수가 있다.

 

 

emp테이블의 값들을 조회해서 테이블 2개에 나눠서 insert도 가능하다.

 

emp1에 있는 데이터들을 전부 삭제후, emp2 테이블을 만들어주겠다.

 

 

emp1에 있는 데이터를 모두 삭제해줬고

 

 

emp2를 생성해주었다.

 

Insert all을 이용하여

 

emp1, emp2 테이블에 동시에 각 컬럼에 emp에서 조회한 값들을 넣어주도록 하겠다.

 

 

먼저 emp 테이블의 값들이다, 이 값들을 emp1 테이블에는 empno, ename, sal을 넣어줄것이고

emp2 테이블에는 empno, job, deptno의 값들을 대입해줄것이다.

 

 

쿼리문을 보면 insert 옆에 all 이라는게 붙었고

 

values안에 emp의 컬럼명들을 대입해주었다. 그리고 마지막으로 select문을 이용하여 조회된 컬럼의 값들을 각 emp1과 emp2의 컬럼들에 순차적으로 넣어주었다.

 

결과를 보자

emp1에는 emp의 empno, ename, sal이 정상적으로 잘 대입되었고

emp2에도 emp의 empno, job, deptno가 정상적으로 잘 대입되었다.

반응형