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;

image

테이블 삭제

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