DB 이야기

디비 이야기 3. DBMS와 질의어(DDL)

김푸른초푸른 2020. 2. 29. 21:12

1. DBMS란?

= 많은 데이터베이스를 관리하고 응용프로그램들이 DBMS를 거쳐 데이터베이스를 공유할 수 있는 환경을 제공

=> 예기치 못한 데이터 손실 방지 및 필요한 데이터를 원할때 복구 가능하게 도와준다 

 

2. 질의어(SQL)

= 사용자와 APP이 DBMS와 대화 할 수 있게 해준다. 

1] SQL 특징 

장점 1) 표준언어 : 다양한 분야에서 사용가능2) 관계형 데이터 베이스 조작가능(CRUD)3) 비절차적 언어 : 실행 순서와 관계없이 처리내용 기술4) 익히기 쉽다 
2] 종류 1. DDL 2. DML 3. TCL (COMMIT, ROLLBACK) 4. DCL (GRANT, REVOKE)

 

1) DDL(DATABASE DEFINATION LANG) - 정의어 

= 데이터베이스의 테이블 생성, 수정, 완전 삭제를 한다. 

(1)  CREATE : 테이블 생성 문법 : CREATE TABLE 테이블 이름       { 필드 이름/ 필드 타입(길이) / 키(PRIMARY KEY 등) } 
=> 주문 : 창조한다 새로운 테이블 이름을 (이름과 타입(종류)와 제약조건)을 건다! 주의) 콤마 필수! 

(2) ALTER : 테이블의 내용 수정 

문법 : ALTER TABLE USERS(테이블 이름) / CONVERT TO CHARSET UTF8;

                                           / 한글 문자열을 사용할 수 있게 적용.-> UTF8 : 유니코드 지원하는 문자셋-> euckr : 한글 지원하는 문자셋 

 

[ALTER 종류]

1. ADD : 테이블에 컬럼(열) 추가

EX)  ALTER TABLE 테이블명 ADD(컬럼명 / 데이터 타입(길이))

 

2. MODIFY : 컬럼 수정 / 필드 타입 변경 

EX) ALTER TABLE 테이블명

MODIFY(컬럼명 데이터유형 DEFAULT '기초값' NOT NULL);

 

3. DROP : 필드 삭제 

EX) ALTER TABLE 테이블 명 DROP 필드이름;

 

4. RENAME : 만들어진 컬럼명 변경시 사용(오라클 등 일부에서만 사용)

(= CHANGE - MYSQL등 나머지  )

EX) ALTER TABLE 테이블명 

RENAME 기존의 컬럼명 TO 바꿀 컬럼명

 

EX) ALTER TABLE 테이블명

CHANGE 기존의 컬럼명 바꿀 컬럼명 데이터타입(길이);

 

 

5. AFTER : 컬럼 순서 변경

EX) ALTER TABLE 테이블 명 

MODIFY 순서변경할 컬럼명 컬럼타입(길이)

AFTER 앞에 오는 컬럼명(이 뒤에 위치한다!)

 

6 ALTER COLUMN~ SET DEFAULT : 해당 컬럼의 기본값을 변경한다

EX) ALTER TABLE 테이블명

ALTER COLUMN 변경할 컬럼명 SET DEFAULT '변경할 기본값'

 

 

(3) DROP : 테이블 내용과 틀까지 완전 제거

문법 : DROP TABLE 테이블 명 

 

(4) TRUCATE : 테이블의 내용만 지우고 싶을 시 사용

문법 : TRUCATE TABLE 테이블 이름 

 

 

3. 제약조건

= 데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 검사규칙 

-> 키 위치에 입력되며 실행된다. 

 

1) NOT NULL : NULL 값 입력 불가!
-> NULL : 아직 정의되지 않은 미지의 값 또는 현 데이터를 입력하지 못할 경우를 의미 
(!= 공백, ZERO와 다르다)
 
2) UNIQUE : 값이 무조건 유일해야한다 / 자동으로 인덱스 생성
3) PRIMARY KEY : NOT NULL + UNIQUE
4) DEFAULT : 해당 필드의 기본값을 정할 수 있다
5) FORGEIGN KEY : 하나의 테이블을 다른 테이블의 의존할 수 있게 해준다
6) CHECK : 컬럼 값을 제한한다
7) FORIEGN KEY : 기본키를 찹조하는 키로 참조하는 컬럼과 타입과 길이가 같아야한다. 
EX) FORIEGN KEY(현재테이블에 있는 컬럼명) REFRENCES 참조할 테이블 (컬럼명)
 

4. 제약조건 생성하기 

문법 : CONSTRAINT 제약조건명 제약조건(컬럼명) 

 

* 외래키에 참조되는 함수 REFERENCE 테이블(컬럼명) -> 참조할 테이블 


5. DDL 오브젝트 

1) 스키마 

- 직관적으로 하나의 데이터베이스로 이해가능 

- DBMS 특성과 구현 환경을 감안한 데이터 구조 

 

2) 도메인 

- 속성의 데이터 타입 / 크기 / 제약 조건 등 지정한 정보 

EX) 주소를 VARCHAR(120)으로 값의 범위 지정

 

3) 테이블 

= 데이터 저장공간

 

4) 뷰 

= 하나 이상의 물리 테이블에서 유도되는 가상의 논리 테이블 

 

5) 인데스 

= 검색을 빠르게 하기 위해 데이터 구조