Kim VamPa

[Oracle 기본사용법][02] CREATE(테이블 생성),INSERT(데이터 삽입) 본문

공부/데이터베이스

[Oracle 기본사용법][02] CREATE(테이블 생성),INSERT(데이터 삽입)

Kim VamPa 2020. 4. 4. 10:00
728x90
반응형

"생활코딩 Oracle"을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.


목표

  • SQL언어란 무엇인고 장점에대해 공부합니다.
  • Oracle SQL Plus 에서 테이블을 생성하고 데이터를 삽입을 실습합니다.

*해당 글의 실습은 Oracle XE버젼을 환경을 바탕으로 진행 행하였습니다.

목차

0. SQL언어
1. 테이블 생성(CREATE TABLE)

2. 데이터 삽입(INSERT INTO)

 

0. SQL언어

  • Structured Query Language 구조화된 정보를 처리하도록 요청하는 컴퓨터 언어
  • 데이터베이스 제어할 수 있는 언어입니다.
  • 수많은 데이터베이스 절대다수는 '관계형 데이터베이스'를 사용하고 있습니다. 관계형 데이터베이스는 오직 SQL 언어로만 제어가 가능합니다. 
  • 따라서 SQL을 사용할 줄 아는 것은 절대다수의 시스템에서 동작하는 컴퓨터 언어를 이해한다는 것입니다. => 매우 가성비가 높은 언어
  • SQL 언어 장점
    - 매운 큰 성능을 가집니다.
       => 액셀과 같은 스프레드 시트는 행을 추가하는데 한계가 있습니다. 하지만 데이터베이스
          로 분류되는 시스템에서는 저장장치의 한계가 없다면 엄청나게 많은 데이터를 처리할
          수 있습니다.
    - 명령어를 통해서 데이터베이스를 제어할 수 있다는 점입니다. 이 말의 함의하는 바는 "자동화"가 가능하다는 점입니다.

* 만들고자 하는 테이블

테이블 이름 : topic

id title description created
1 ORACLE ORACLE is ... 2020.04.03
2 MySQL MySQL is .... 2020.04.03
3 NoSQL NoSQL is ...  

  이번 글은 Sql Plus를 통해 위의 표를 만드는 것을 목표로 합니다.

1.테이블 생성하기

CREATE TABLE 테이블이름 (
         컬럼명 데이터타입 제약조건,
         컬럼명 데이터타입 제약조건,
         컬럼명 데이터타입 제약조건,         
);

- 컬럼명 뒤에 데이터타입은 반드시 있어야 한다.

- 제약조건은 있어도 되고 없어도 된다.

- 데이터를 삽입시 각 칼럼에 정의되어진 데이터 타입과 제약조건을 만족하지 않으면 에러를 발생시킵니다.

 

실습

1. sql plus를 실행 후 사용자 접속을 합니다.

- 방법 1 : 윈도우 [시작]에 들어가서 설치한 Oracle 목록을 보시면 해당프로그램이 있습니다.

- 방법 2 : cmd창에 들어가서 'sqlplus'를 치시면 프로그램이 실행됩니다.(그림 1-1)

그림 1-1

 

2. 테이블을 만드는 SQL명령문을 처넣은 후 Enter를 칩니다.

CREATE TABLE topic(
          id NUMBER NOT NULL,
          title VARCHAR2(50) NOT NULL,
          description VARCHAR(4000),
          created DATE NOT NULL
);

- 칼럼명은 id, title, description, created가 만들어지고 각각의 데이터 타입은 NUMBER[숫자], VARCHAR2(50)[최대크기 50 가변문자], VARCHAR2(4000)[최대그기 4000 가변문자] , DATE[날짜형식] 이 지정되었습니다.

- NOT NULL은 해당 칼럼은 NULL을 허용하지 않는다는 뜻입니다.(반드시 데이터가 존재해야 함)

- NULL을 허용 시 데이터 타입 뒤에 "NULL"을 기입해도 되고 생략해도 됩니다.

그림 1-2

 

3. '테이블이 생성되었습니다'라는 문구가 뜨면 정상적으로 테이블이 만들어진 거지만, 아래의 문장을 치고 enter를 처서 데이터베이스 해당 테이블을 검색합니다.

SELECT table_name from user_tables;

 - 사용자가 만들 테이블(user_tables) 로부터 테이블 이름(table_name)을 요청합니다 라는 의미입니다.

- 결과는 다음과 같이 나옵니다. 

그림 1-3

 

2. 데이터 삽입

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

- 테이블명(칼럼)과 VALUES(값)의 개수는 일치하여야 합니다. 그렇지 않은 경우 에러가 납니다.

- 값은 테이블에 정의된 데이터 타입이 삽입이 되어야 합니다. 그렇지 않은 경우 에러가 납니다.

 

실습

1. Sql Plus에서 아래의 문장을 처넣은 후 Enter를 치면 삽입이 진행됩니다.

INSERT INTO topic (id, title, description, created) values (1, 'ORACLE', 'ORACLE is...', SYSDATE);
INSERT INTO topic (id, title,description,created) values (2, 'MySQL', 'MySQL is...', SYSDATE);
INSERT INTO topic (id, title,description,created) values (3, 'NoSQL', 'NoSQL is...', SYSDATE);

- topic 테이블에 있는 칼럼 id, title, description, created에 값 1, 'ORACLE', 'ORACLE is...', SYSDATE를 넣는다는 의미입니다.(첫문장)

- SYSDATE는 해당 데이터베이스에서 제공하는 함수입니다. 삽입 명령이 이루어지는 시간이 자동적으로 입력됩니다.

그림 2-1

 

2. 위의 명령어가 정상적으로 진행되었으면 해당 명령의 확정을 위해서 "commit;"를 칩니다.

- 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어 입니다.

- Transaction(insert, update, delete)작업 내용을 실제 DB에 저장됩니다.

- commit 명령을 하지않고 종료시엔 실제 DB엔 기록이 되어있지 않습니다.

그림 2-2

 

3. 테이블을 만들어졋고 데이터가 정상적으로 삽입되었는지 확인해보기 위해 아래의 명령어를 사용하용합니다.

SELECT * FROM topic;

- 는 해당 테이블이 가지고 있는 모든 칼럼을 말합니다.

- topic 테이블에 있는 모든 데이타을 가지고 와라는 뜻입니다.

그림 2-3

- [그림2-3]의 결과를 보면 각 행 단위로 데이터 결과가 나온것을 확인할 수 있습니다.

 

Reference

Date

  • 2020.04.04 작성

 

 

 

 

728x90
반응형
Comments