2021-11-24 데이터베이스 (11주차)
테이블 설계 규칙
- 테이블이란 공통점을 가진 삼물의 집합
- 가장 상위의 개념집합으로 정리한다
- 열이란 개체의 속성이다
- 반드시 기본키를 설정, 한 개의 테이블의 내용에는 중복 행을 허용하지 않는다.
SQL 첫걸음
데이터베이스 객체
- 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것
- 이름을 붙일 때 다음과 같은 제약사함
- 기존 이름이나 예약어와 중복하지 않는다
- 숫자로 시작할 수 없다
- 언더스코어 이외의 기호는 사용할 수 없다.
- 한글을 사용할 때는 더블퀘트로 둘러싼가
- 시스템이 허묭하는 길이를 초과하지 않는다
스키마
- 객체의 이름이 같아도 스키마가 서로 다르면 상관없다
- 데이터베이스에 테이블을 작성해서 구축해나가는 작업을 스키마 설계
테이블 작성
CREATE TABLE 테이블명 (
열 정의1,
열 정의2,
...
)
열 정의
- 열명 - 명명규칙에 맞게
- 자료형 INTEGER, VARCHAR 등등 - CHAR나 VARCHAR는 최대길이를 괄호로 묶어야한다
- 기본값을 설정할 때는 DEFAULT로 지정
- 열이 NULL을 허용할 것인지를 지정
열명 자료형 [DEFAULT 기본값][NULL|NOT NULL]
CREATE TABLE sample64 (
no INTEGER NOT NULL,
a VARCHAR(30),
b DATE);
DESC sample64;
테이블 삭제
DROP TABLE 테이블명
- 데이터 행 삭제
TRUNCATE TABLE 테이블명
- DROP TABLE은 데이터베이스에서 테이블 삭제
- 테이블 정의는 그대로 둔 채 데이터만 삭제할때는 DELETE 명령
- 행 단위로 여러가지 내부처리가 일어나므로 삭제할 행이 많으면 처리속도가 느려진다
- 이 경우 TRUNCATE TABLE 사용 - 모든 행을 삭제할떄
테이블 변경
ALTER TABLE 테이블명 변경명령
- 열 추가
ALTER TABLE 테이블명 ADD 열 정의
-여기서의 열 정의는 CREATE TABLE의 경우와 동일
ALTER TABLE sample64 ADD newcol INTEGER;
NOT NULL 제약이 걸린 열을 추가할 때는 기본값을 지정해야 한다.
- 열 속성 변경
ALTER TABLE 테이블명 MODIFY 열 정의
- 열 이름 변경
ALTER TABLE 테이블명 CHANGE [기존 열 이름][신규 열 정의]
- 열 삭제
ALTER TABLE 테이블명 DROP 열명
제약
테이블 작성시 제약 정의
CREATE TABLE sample631 {
a INTEGER NOT NULL,
b INTEGER NOT NULL UNIQUE,
c VARCHAR(30)
);
CREATE TABLE sample632 (
no INTEGER NOT NULL,
sub_no INTEGER NOT NULL,
name VARCHAR(30),
CONSTRAINT pkey_sample PRIMARY KEY (no, sub_no)
);
제약 추가
ALTER TABLE sample631 MODIFY c VARCHAR(30) NOT NULL;
ALTER TABLE sample631 ADD CONSTRAINT pkey_sample631 PRIMARY KEY(a);
//CONSTRAINT = 제약 이름
제약 삭제
ALTER TABLE sample631 MODIFY c VARCHAR(30);
ALTER TABLE sample631 DROP CONSTRAINT pkey_sample631;
ALTER TABLE sample631 DROP PRIMARY KEY;
Written on November 24, 2021