#9 DBMS _DataType, DDL
oracleDB XE11g R2, DBeaver 21.2.3
wihdow10
- Oracle Data Type
1-1. 데이터 타입
- 데이터 타입이란 컬럼에 저장되는 데이터 유형을 말한다
- 기본 데이터 타입은 문자형, 실수, 소수, 자료형 등의 여러 데이터를 식별하는 타입이있다
1-2. 문자형 데이터 타입
- CHAR(), VARCHAR2()
- 가변길이란, 실제 입력된 데이터 길이에 따라 크기가 변하는것을 의미한다(VARCHAR2)
- 가변형 문자형 데이터 타입인 VARCHAR2()에 10만큼의 데이터 공간을 할달하고 abc라는 3의 크기에 데이터를 입력하면 나머지 7의 데이터 공간은 없어지고 최종 크기는 3이된다 하지만 최대 입력 크기는 10까지이다
- 고정형 문자형 데이터 타입인 CHAR()에 10만큼의 데이터 공간을 할당하면 얼마를 입력하든 최종 크기는 10이다
1-3. 숫자형 데이터 타입
- 대부분 NUMBER()형을 사용한다
NUMBER(P,S) -- P : 소수점을 포함한 전체 다릿수 S : 소수점 자릿수
-- NUMBER()도 가변형 타입으로 P와 S를 입력하지 않으면 저장 데이터 크기에 맞게 자동 조절된다
-- NUMBER(P) : 정수 NUMBER(S) : 실수
-- 최대 38자리(10의 38승 -1 만큼이 아니다)
-- 입력값 : 123.89
NUMBER() : 123.89
NUMBER(2) : error
NUMBER(3) : 124
NUMBER(3,2) : error
NUMBER(4,1) : 123.9
NUMBER(4,2) : error
NUMBER(5) : 124
NUMBER(5,0) : 124
NUMBER(5,2) : 123.89
NUMBER(6,1) : 123.9
-- P < S
0.01234 NUMBER(4,5)
0.00012 NUMBER(2,5)
NUMBER(3,5)
NUMBER(4,5)
-- 입력값 : 0.000127
NUMBER(4,5) : 0.00013
NUMBER(2,7) : 0.0000012
-- S가 음수
-- 입력값 : 123.54
NUMBER(7,-1) : 120 //소수점을 기준으로 앞 자리를 반올림 하고 뒷 자리를 잘라준다
-- 입력값 : 125.54
NUMBER(7,-1) : 130
-- 입력값 : 123.894
NUMBER(6,-2) : 100
1-4. 날짜 데이터 타입
- 가장 일반적으로 쓰는 데이터 타입은 DATE 타입이다
1-5. LOB 타입
1-6. DDL(Data Definition Language)
- 데이터 구조를 정의 하기 위한 테이블 생성, 삭제 같은 명령어
- CREATE : 테이블 생성
- DROP : 테이블 삭제
- ALTER : 테이블 수정
- TRUNCATE : 테이블에 있는 모든 데이터 삭제
- 데이터 조작어(Data Manipulation Language)
2-1. 데이터 조작어란
- 데이터의 조회 및 변형을 위한 명령어
2-2. 데이터 조작어의 종류
- SELECT : 데이터 조회(R)
- INSERT : 데이터 입력(C)
- UPDATA : 데이터 수정(U)
- DELETE : 데이터 삭제(D)
2-3. SELECT
SELECT 컬럼
FROM 테이블
WHERE 조건;
2-4. INSERT
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) -- 특정 컬럼
VALUES (값1, 값2, ...);
INSERT INT 테이블명 VALUES (값1, 값2, ...); -- 전체 컬럼
2-5. UPDATE
UPDATE 테이블 SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건;
2-6. DELETE
DELETE 테이블 WHERE 조건;
2-7. TRUNCATE와 DELETE와 DROP 차이점
- DROP
테이블 존재 자체를 삭제 - TRUNCATE
데이터만 통으로 삭제
데이블을 DROP했다가 CREATE한다
조건절이 없다
모든 행을 삭제하는 데에는 가장 빠르고 효율적이다 - DELETE
데이터를 골라서 삭제
조건절이 있다
한줄 한줄 삭제한다
-- DDL
-- 테이블 생성 CREATE
-- 테이블, 칼럼등에 변화가 있으면 목록에서 새로고침을 해주어야 보인다
CREATE TABLE EMPLOYEES2 (
EMPLOYEE_ID NUMBER(10),
NAME VARCHAR2(20),
SALARY NUMBER(7,2)
);
-- 테이블 삭제 DROP
DROP TABLE EMPLOYEES2;
-- 기존 테이블과 동일하게 작성
CREATE TABLE EMPLOYEES3
AS
SELECT * FROM EMPLOYEES e
;
-- 칼럼 추가 ALTER ADD
ALTER TABLE EMPLOYEES2 ADD (
MANAGER_ID VARCHAR2(20)
);
-- 칼럼 추가 ALTER ADD
ALTER TABLE EMPLOYEES2 ADD (
MANAGER_I VARCHAR2(20)
);
-- 알터문 작성시 크리에이트문에 추가해주는게 좋다
CREATE TABLE EMPLOYEES2 (
EMPLOYEE_ID NUMBER(10),
NAME VARCHAR2(20),
SALARY NUMBER(7,2),
MANAGER_ID VARCHAR2(20)
);
-- 칼럼 삭제 ALTER DROP
ALTER TABLE EMPLOYEES2 DROP COLUMN MANAGER_I;
-- 칼럼 수정 ALTER MODIFY
ALTER TABLE EMPLOYEES2 MODIFY (
MANAGER_ID VARVCHAR2(20)
);
-- 칼럼 수정 ALTER MODIFY
ALTER TABLE EMPLOYEES2 MODIFY (
MANAGER_NAME VARVCHAR2(20) -- 모디파이는 이름을 기준으로 하기 때문에 칼럼명을 수정할 수 없다
);
-- 데이터 넣기 INSERT
INSERT INTO EMPLOYEES2 VALUES (1, '테스트', 3000);
-- 데이터 비워내기 TRUNCATE
TRUNCATE TABLE EMPLOYEES2;
-- 테이블 생성
CREATE TABLE SAMPLE (
DEPTNO NUMBER(20),
DEPTNAME VARCHAR2(15),
DEPLOC VARCHAR2(15),
DEPMANAGER VARCHAR2(10
);
-- INSERT
INSERT INTO SAMPLE (DEPTNO, DEPTNAME, DEPLOC, DEPMANAGER)
VALUES (10, '기획실', '서울', '홍길동');
-- INSERT INTO SAMPLE (DEPTNO, DEPTNAME, DEPLOC, DEPMANAGER)
-- VALUES (20, '전산실', '부산', '김말똥');
-- INSERT INTO SAMPLE (DEPTNO, DEPTNAME, DEPLOC, DEPMANAGER)
-- VALUES (30, '영업부', '광주', 'NULL');
INSERT INTO SAMPLE
VALUES (20, '전산실', '부산', '김말똥');
INSERT INTO SAMPLE
VALUES (30, '영업부', '광주', 'NULL');
-- UPDATE
-- SAMPLE 테이블에서 DEPTNO = 50으로 UPDATE
-- 조건 : DEPTNO = 30
UPDATE SAMPLE SET DEPTNO = 50
WHERE DEPTNO = 30;
-- DELETE
-- DEPTNO = 50 데이터 삭제
DELETE SAMPLE WHERE DEPTNO = 50;
-- 테이블 생성
/*
* 테이블명 : TB_TEAM
* 칼럼명 : TEAM_ID NUMBER(10)
* LOCALS VARCHAR2(10)
* TEAM_NAME VARCHAR2(10)
* OPEN_DATE DATE
* PHONE_NUMBER VARCHAR2(15)
* HOME_PAGE VARCHAR2(60)
*/
CREATE TABLE TB_TEAM(
TEAM_ID NUMBER(10)
LOCALS VARCHAR2(10)
TEAM_NAME VARCHAR2(10)
OPEN_DATE DATE
PHONE_NUMBER VARCHAR2(15)
HOME_PAGE VARCHAR2(60)
);
-- INSERT
-- 100, '서울', '서울팀', '2021/02/02', '010-1234-4567', 'WWW.TJDNFXSLA.COM'
-- 200, '부산', '부산팀', '19/05/01', '010-987-6543'
INSERT INTO TB_TEAM
VALUES (100, '서울', '서울팀', '2021/02/02', '010-1234-4567', 'WWW.TJDNFXSLA.COM')
-- INSERT INTO TB_TEAM
-- VALUES (200, '부산', '부산팀', '19/05/01', '010-987-6543', 'NULL')
INSERT INTO TB_TEAM (TEAM_ID, LOCALS, TEAM_NAME, OPEN_DATA
VALUES (200, '부산', '부산팀', '19/05/01', '010-987-6543')
-- UPDATE
-- TEAM_ID 200인 팀의 홈페이지를 WWW.QNTKSXLA.COM
UPDATE TB_TEAM SET HOME_PAGE = WWW.QNTKSXLA.COM
WHERE TEAM_ID = 200;
-- DLETE TEAM_ID = 100
DELETE TB_TEAM WHERE TEAM_ID = 100;
Author And Source
이 문제에 관하여(#9 DBMS _DataType, DDL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@truelight92/9-DBMS-DataType-DDL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)