1. 데이터 유형
Character : 고정 길이 문자열
‘AA’ == ‘AA ‘Varchar : 가변 길이 문자열
‘AA’ != ‘AA ‘Numeric : 숫자 (실수, 정수 포함)
Date : 날짜
2. Create Table
테이블과 칼럼 정의
테이블 : 기본키 + 일반키 ( + 외례 키 )
CREATE TABLE
테이블 생성 규칙
테이블명은 적절한 이름, 단수형 권고
다른 테이블명과 중복 불가
칼럼 명 중복 불가
칼럼은 테이블 이름 지정 후 괄호”()”로 묶어 지정
각 칼럼은 “,”로 구분됨
칼럼은 다른테이블까지 고려하여 데이터베이스 내에서는 일관성 있도록
칼럼 뒤 데이터 유형 표기
대소문자는 구분하지 않음
제약사항은 constraint 구문으로 정의
마지막 칼럼은 “,”를 입력하지 않음
예제
CREATE TABLE UNIT (
ID CHAR(7) NOT NULL, // PK는 반드시 not null!
NAME CHAR(10) NOT NULL,
IP CHAR(12) NOT NULL,
EXPLANE CHAR(100),
X NUMERIC(10,2),
Y NUMERIC(10,2),
GROUP_ID CHAR(7),
CONSTRAINT UNIT_PK PRIMARY KEY (UNIT_ID), // 중요, 제약 조건은 constraint
CONSTRAINT GROUP_FK PRIMARY KEY (GROUP_ID)
);
제약조건
데이터의 무결성을 유지하기 위한 데이터베이스의 보편적 방법
종류
PRIMARY KEY
하나의 테이블에 하나의 기본키만 정의 가능
UNIQUE + NOT NULLUNIQUE KEY
고유키, 중복값은 없음, 다만 NULL 이 여러개인건 예외 인정NOT NULL
NULL 값 입력 금지CHECK
입력할 수 있는 범위 등을 제한, check제약으로 true | false 평가 가능FOREIGN KEY
관계 정의시 사용, 기본키를 다른 테이블의 외래키로 복사하는 경우
NULL 의미 : 아직 정의되지 않은 값
DEFAULT 의미 : insert value가 null이라면 기본적으로 default 정의 값이 들어감
SELECT 문장을 통한 테이블 생성 사례
CTAS(Create Table ~ As Select ~ )
기존 테이블의 제약조건중 Not null만 적용, 그 외는 적용 안됨
추가적은 ALTER TABLE 기능을 이용해야 함
3. ALTER TABLE
ADD CULUMN
마지막 컬럼이 됨, 위치는 지정 불가능
형식 : ALTER TABLE 테이블 명 ADD 컬럼명 테이터유형 ;
DROP COLUMN
한 번에 하나의 컬럼만 삭제 가능
칼럼 삭제 후 최소 하나 이상의 칼럼이 테이블에 존재
복구가 불가능
형식 : ALTER TABLE 테이블_명 DROP COLUMN 컬럼_명;
MODIFY COLUMN
데이터 유형, default, not null 제약조건에 대한 변경
형식 : ALTER TABLE 테이블_명
MODIFY (컬럼_명1 데이터유형 [Defualt] [not null],
컬럼_명2 데이터유형 [Defualt] [not null],
컬럼_명2 데이터유형 [Defualt] [not null]);고려사항
1) 데이터 크기는 늘릴 수만 있으나, NULL값만 있거나 아무 행도 없으면 줄일 수 있음
2) NULL 값만 가지고 있다면 데이터 유형 변경 가능
3) defualt 값 변경시 이후 삽인 건에 대해서만 반영
4) NULL 값이 없을 경우에만 NOT NULL 제약조건 추가 가능
DROP CONSTRAINT
제약 조건 삭제
형식 : ALTER TABLE 테이블_명 DROP CONSTRAINT 제약조건명;
ADD CONSTRAINT
제약 조건 추가
형식 : ALTER TABLE 테이블_명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼);
ALTER TABLE user ADD CONSTRAINT group_fk FOREIGN KEY(group_id) REFERENCE group(id);
4. RENAME TABLE
테이블 명 변경
형식 : RENAME 변경전_테이블_명 TO 변경후_테이블_명
5. DROP TABLE
테이블 삭제
형식 : DROP TABLE 테이블_명 [CASECADE CONSTRAINT];
참조되는 제약조건도 삭제 됨
SQL Server에서는 미리 제약조건 삭제 후 테이블 삭제
6. TRUNCATE TABLE
모든 행들이 제거, 저장 공간을 재사용 가능하도록 해제
정상적인 복구가 불가능!
형식 : TRUNCATE TABLE 테이블_명;
'자격증 > SQLD' 카테고리의 다른 글
TCL (Transaction Control Language) (0) | 2016.09.09 |
---|---|
DML (Data Manipulation Language, 데이터 조작 언어) (0) | 2016.09.09 |
관계형 데이터베이스 개요 (0) | 2016.09.09 |
분산 데이터베이스와 성능 (0) | 2016.09.09 |
데이터베이스 구조와 성능 (0) | 2016.09.09 |