방대한 데이터의 세계로, JUST DO DBMS!
- 데이터타입
컬럼이 저장되는 데이터 유형을 말해요. 기본 데이터 타입은 문자형, 실수, 소수 자료형 등의 여러 데이터를 식별하는 타입을 뜻해요.
주로 VARCHAR2(n)의 형식을 많이 써요.
가변길이란 실제 입력된 데이터 길이에 따라서 크기가 변하는 것을 의미해요.
- CHAR(10) 이면 2자가 들어가던 3자가 들어가던 10개의 길이를 다쓰게돼요. (고정길이)
- VARCHAR2(10) 이면 2자가 들어가면 2자의 길이만 사용해요. (가변길이)
입력값 타입 저장되는 값
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(=Data Definition Language)은 데이터의 구조를 정의하기 위한 테이블 생성, 삭제 같은 명령어를 말해요.
- CREATE : 테이블 생성
- DROP : 테이블 삭제
- ALTER : 테이블 수정
- TRUNCATE : 테이블에 있는 모든 데이터 삭제
DML(= Data Manipulation Language)은
데이터 조회 및 변형을 위한 데이터 조작어에요.
- SELECT : 데이터 조회
- INSERT : 데이터 입력
- UPDATE : 데이터 수
- DELETE : 데이터 삭제
INSERT INTO 테이블명 VALUES (값1, 값2, ...); => 전체컬럼
INSERT INTO 테이블명 (컬럼1, 컬럽2, ...)
VALUES (값1, 값2, ...) => 특정컬럼
UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건; -- 특정 어떤 데이터에만 UPDATE가 이루어져요.
DELETE 테이블명 WHERE 조건;
-- WHERE 절이 없으면 해당 테이블이 다 삭제돼요.
-- DELETE는 잘못되면 정말 큰일나기 때문에 DB 백업은 필수에요.
-- 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
;
출처
https://media.giphy.com/media/1hVi7JFFzplHW/giphy.gif
https://media.giphy.com/media/jUwpNzg9IcyrK/giphy.gif