JUST DO, 데이터베이스! 🕺 - (5) 데이터타입, DDL, DML

joyfulwave·2022년 8월 31일
0

방대한 데이터의 세계로, JUST DO DBMS!



📁 Oracle Data Type

  • 데이터타입
    컬럼이 저장되는 데이터 유형을 말해요. 기본 데이터 타입은 문자형, 실수, 소수 자료형 등의 여러 데이터를 식별하는 타입을 뜻해요.

📎 문자 데이터 타입

주로 VARCHAR2(n)의 형식을 많이 써요.

⚫ 고정길이와 가변길이

가변길이란 실제 입력된 데이터 길이에 따라서 크기가 변하는 것을 의미해요.

  • CHAR(10) 이면 2자가 들어가던 3자가 들어가던 10개의 길이를 다쓰게돼요. (고정길이)
  • VARCHAR2(10) 이면 2자가 들어가면 2자의 길이만 사용해요. (가변길이)

📎 숫자형 데이터 타입

  • 숫자 타입은 대부분 NUMBER형을 사용해요.
  • NUMPER(P,S) : P는 소수점을 포함한 전체 자릿수를 의미하고, S는 소수점 자릿수를 의미해요. NUMBER는 가변숫자 길이이므로 P,S를 입력하지 않으면 저장 데이터의 크기에 맞게 자동 조절돼요.
	입력값		타입			저장되는 값
	123.89		NUMBER		123.89
	123.89		NUMBER(3)	124(반올림이 됌)
	123.89		NUMBER(3,2)	오류가 발생(기준에 맞는 숫자만을 받기 위하여 (데이터의 무결성을 위해))
	123.89		NUMBER(4,2)	오류
	123.89		NUMBER(5,2)	123.89
	123.89		NUMBER(6,1)	123.9

📎 날짜 데이터 타입

일반적으로 DATE를 사용해요.




📁 DDL

DDL(=Data Definition Language)은 데이터의 구조를 정의하기 위한 테이블 생성, 삭제 같은 명령어를 말해요.

  • CREATE : 테이블 생성
  • DROP : 테이블 삭제
  • ALTER : 테이블 수정
  • TRUNCATE : 테이블에 있는 모든 데이터 삭제



📁 DML

DML(= Data Manipulation Language)은
데이터 조회 및 변형을 위한 데이터 조작어에요.

  • SELECT : 데이터 조회
  • INSERT : 데이터 입력
  • UPDATE : 데이터 수
  • DELETE : 데이터 삭제

📎 INSERT

INSERT INTO 테이블명 VALUES (값1, 값2, ...); 	=> 전체컬럼

INSERT INTO 테이블명 (컬럼1, 컬럽2, ...)
VALUES (값1, 값2, ...)				=> 특정컬럼

📎 UPDATE

UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건; -- 특정 어떤 데이터에만 UPDATE가 이루어져요.

📎 DELETE

DELETE 테이블명 WHERE 조건; 
-- WHERE 절이 없으면 해당 테이블이 다 삭제돼요.
-- DELETE는 잘못되면 정말 큰일나기 때문에 DB 백업은 필수에요.

📎 DROP VS TRUNCATE VS DELETE

⚫ DROP

  • 만들었던 테이블의 존재 자체가 삭제가 돼요.

⚫ TRUNCATE

  • 테이블이 삭제되는 명령어는 아니고 테이블 안에 있는 모든 레코드(데이터)들을 제거하는 명령어에요.
  • 테이블을 DROP 했다가 CREATE해요.
  • 모든 행을 삭제하는데에는 가장 빠르고 효율적인 방법이에요.

⚫ DELETE

  • 데이터를 골라서 삭제해요.
  • DELETE는 조건에 해당하는 것만 지울 수도 있고 전체를 지울 수도 있는 이유가 한 줄 한 줄 삭제하기 때문이에요.



📁 예제

    -- DDL
    CREATE 	TABLE EMPLOYEES2(
        EMPLOYEES_ID	NUMBER(10),
        NAME			VARCHAR2(20),
        SALARY			NUMBER(7,2)
    );

    -- 기존 테이블과 동일하게 작성
    CREATE 	TABLE EMPLOYEES3 
    AS
    SELECT	* FROM EMPLOYEES e ;

    -- 기존 테이블과 동일하게 작성된 EMPLOYEES3 가 제대로 생성 되었는지 확인
    SELECT 	*
    FROM 	EMPLOYEES3 e 
    ;

    -- EMPLOYEES2 조작
    SELECT 	*
    FROM 	EMPLOYEES2 e 
    ;

    -- 컬럼 추가
    ALTER 	TABLE EMPLOYEES2 ADD (
        MANAGE_ID	VARCHAR2(10)
    );

    -- 컬럼 수정
    ALTER 	TABLE EMPLOYEES2  MODIFY(
        MANAGE_ID	VARCHAR2(20)
    );

    -- 컬럼 삭제
    ALTER 	TABLE EMPLOYEES2 DROP COLUMN MANAGE_ID;

    --SELECT 	* FROM 	EMPLOYEES2 e ;

    -- 테이블 삭제
    --DROP	TABLE EMPLOYEES2;

    SELECT 	*
    FROM 	EMPLOYEES2 e 
    ;

    INSERT	INTO EMPLOYEES2 VALUES (1, '테스트', 30000);

    -- 테이블에 있는 모든 데이터 삭제
    TRUNCATE	TABLE 	EMPLOYEES2 ;

    SELECT 	* 	FROM 	EMPLOYEES3 e ;
    TRUNCATE 	TABLE 	EMPLOYEES3 ;


    CREATE TABLE SAMPLE(
        deptNo		NUMBER(20),
        deptName	VARCHAR2(15),
        deptLoc		VARCHAR2(15),
        deptManager VARCHAR2(10)
    );

    SELECT 	*
    FROM 	SAMPLE
    ;

    -- INSERT 
    /*
     * 10번 부서 기획실, 서울, 홍길동
     * 20번 부서 전산실, 부산, 김말똥
     * 30번 부서 영업부, 광주
     */

    INSERT 	INTO SAMPLE (deptNo, deptName, deptLoc, deptManager) 
    VALUES (10, '기획실', '서울', '홍길동');

    INSERT 	INTO SAMPLE VALUES (20, '전산실', '부산', '김말똥');

    INSERT 	INTO SAMPLE VALUES (30, '영업부', '광주', NULL);

    SELECT 	*
    FROM 	SAMPLE
    ;



포기하지 말고 JUST DO! ✔️




출처
https://media.giphy.com/media/1hVi7JFFzplHW/giphy.gif
https://media.giphy.com/media/jUwpNzg9IcyrK/giphy.gif

0개의 댓글