디비 이야기 3. DBMS와 질의어(DDL)
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. 제약조건
= 데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 검사규칙
-> 키 위치에 입력되며 실행된다.
4. 제약조건 생성하기
문법 : CONSTRAINT 제약조건명 제약조건(컬럼명)
* 외래키에 참조되는 함수 REFERENCE 테이블(컬럼명) -> 참조할 테이블
5. DDL 오브젝트
1) 스키마
- 직관적으로 하나의 데이터베이스로 이해가능
- DBMS 특성과 구현 환경을 감안한 데이터 구조
2) 도메인
- 속성의 데이터 타입 / 크기 / 제약 조건 등 지정한 정보
EX) 주소를 VARCHAR(120)으로 값의 범위 지정
3) 테이블
= 데이터 저장공간
4) 뷰
= 하나 이상의 물리 테이블에서 유도되는 가상의 논리 테이블
5) 인데스
= 검색을 빠르게 하기 위해 데이터 구조