SQL문에서 오늘 배울 내용은 DDL입니다. 자! 오늘도 힘차게 배워볼까요!!!
<DDL (Data Deginition Language) : 데이터 정의어>
DDL은 주로 테이블 조작, 제어 관련된 쿼리문입니다.
1. CREATE : 테이블 생성
2. DROP : 테이블 삭제
+) (DML의 DELETE와 구분을 해야하며, DROP은 ROLLBACK이 되지 않고, 자동 COMMIT이 되기 때문에 꼭 주의하여 사용해야합니다.)
3. ALTER : 테이블 수정
- 테이블명 수정 : RENAME TO [새로운 테이블명]
- 컬럼 추가 : ADD([새로운 컬럼명] [컬럼 타입(데이터크기)])
- 컬럼명 변경 : RENAME COLUMN [생성된 컬럼명] TO [새로운 컬럼명]
- 컬럼 삭제 : DROP COLUMN [생성된 컬럼명]
- 컬럼 수정 : MODIFY([생성된 컬럼명] [컬럼 타입(데이터크기)])
4. TRUNCATE : 테이블 내용 전체 삭제 (테이블은 남아있고, 안의 내용물 전체 제거!)
+) TRUNCATE는 테이블 내용을 전체 삭제하므로, DELETE 보다 빠르게 처리할 수 있습니다.
대용량 데이터 처리에 유리하지만 복구가 불가능하기 때문에(DDL으로 ROLLBACK이 불가능), 복구가 가능한(DML인) DELETE를 사용하는것이 좋습니다.
-- CREATE
CREATE TABLE PRODUCT(
PRODUCT_NUM NUMBER,
PRODUCT_NAME VARCHAR2(2000),
PRODUCT_PRICE NUMBER,
PRODUCT_COUNT NUMBER,
CONSTRAINT PRODUCT_PK PRIMARY KEY(PRODUCT_NUM));
-- DROP
DROP TABLE PRODUCT;
-- ALTER
ALTER TABLE PRODUCT ADD GENDER VARCHAR2(100);
ALTER TABLE PRODUCT DROP COLUMN GENDER;
ALTER TABLE PRODUCT MODIFY GENDER VARCHAR(20);
-- TRUNCATE
TRUNCATE TABLE PRODUCT;
<자료형 (Type)>
(숫자)
- NUMBER(precision) : 정수
- NUMBER(precision, 소수점 자리수) : 실수
- NUMBER : 생략 시 22byte까지 입력 가능(38자리 정수)
(문자열)
- CHAR(길이) : 고정형
CHAR(4)에 'A'를 넣으면 A^^^ 빈 자리가 공백으로 채워진다.
형식을 정한 날짜, 주민등록번호처럼 글자 수가 절대 변하지 않는 값을 넣는다.
- VARCHAR(길이), VARCHAR2(길이) : 가변형
값의 길이만큼 공간이 배정된다. 글자 수에 변화가 있는 값을 넣는다. 위에는 2가지 골라 쓸 수 있지만 VARCHAR2(길이)를 사용해야합니다! ORACLE에서 VARCHAR는 다른 키워드로 사용할 예정이라고 발표했다고 합니다!
(날짜)
- DATE : FORMAT에 맞춰서 날짜를 저장하는 타입
<무결성>
무결성이란 데이터의 정확성, 일관성, 유효성이 유지되는것을 의미합니다.
- 정확성 : 데이터는 애매하지 않아야 한다.
- 일관성 : 각 사용자가 일관된 데이터를 볼 수 있도록 해야한다.
- 유효성 : 데이터가 실제 존재하는 데이터여야 한다.
1. 개체 무결성 : 모든 테이블이 PK로 선택된 컬럼을 가져야 한다.
2. 참조 무결성 : 두 테이블의 데이터가 항상 일관된 값을 가지도록 유지하는 것.
3. 도메인 무결성 : 컬럼의 타입, NULL값의 허용 등에 대한 사항을 정의하고, 올바른 데이터가 입력되었는지를 확인하는 것.
테이블을 만들고 그에따른 데이터를 넣을 때 모델링이라는것을 통해 설계 및 테이블 생성을 합니다.
모델링이란 추상적인 주제를 DB에 맞게 설계하는 것이며, 5단계로 진행합니다. (예시로 설명 드리겠습니다.)
<모델링>
1. 요구사항 분석 : 회원, 주문, 상품으로 3개자 관리하고자 한다.
2. 개념적 설계(개념 모델링)
3. 논리적 설계(논리 모델링) :
개념적 설계와 달리 테이블 기본 구상시 회의를 통해 추가적으로 테이블을 구상할 수 있습니다.
4. 물리적 설계(물리 모델링)
5. 구현 (DBMS에서 작업)
'프로그래밍 공부 > DBMS' 카테고리의 다른 글
[lesson] DBMS - 파생 문법 2탄 (SQL 실행순서, SEQUENCE, SUB-QUERY, ROWNUM) (0) | 2021.08.12 |
---|---|
[lesson] DBMS - 파생 문법 1탄 (문자연결, LIKE, DUAL, 집계함수, GROUP BY, ALIAS, ORDER BY) (0) | 2021.08.12 |
[lesson] DBMS - 정규화 (0) | 2021.08.12 |
[lesson] DBMS - DML (데이터 조작어), TCL (트랜잭션) (0) | 2021.08.12 |
[lesson] DBMS - 개요 (0) | 2021.08.11 |