[SQL] 26. 테이블 작성,삭제,변경

uuuu.jini·2023년 1월 31일
0

SQL 첫걸음

목록 보기
26/36
post-thumbnail

테이블의 작성,삭제,변경

  • CREATE TABLSE 테이블명(열 정의1, 열 정의2,...)
  • DROP TABLE 테이블명
  • ALTER TABLE 테이블명 하부명령

DDL

데이터를 정의하는 명령, 스키마 내의 객체를 관리할 때 사용한다.

1. 테이블 작성


CREATE로 생성, DROP으로 삭제, ALTER로 변경이 가능, 뒤이어 어떤 종류의 객체를 생성,삭제,수정 할 것인지를 지정한다. (CREATE TABLE, CREATE VIEW ...)

CREATE TABLE 명령을 사용하여 테이블을 생성한다. CREATE TABLE에 이어 작성하고 싶은 테이블의 이름 지정하고 뒤에는 괄호로 묶어 열을 정의한다. 열 정의시 테이블에 필요한 열을 콤마(,)로 구분하여 연속해 지정

CREATE TABLE

CREATE TABLE 테이블명 (
열 정의1,
열 정의2,
...
)
  • 열명은 명명 규칙에 맞게 붙인다.
  • 자료형은 INTEGER나 VARCHAR등을 지정한다. (CHAR, VARCHAR 괄호로 최대 길이 지정)
  • 기본값 설정: DEFAULT(자료형 맞는 리터럴 기술), 생략 가능
  • NULL 허용 여부 지정: NULL 명시적 지정 or 생략 시 NULL을 허용한다. NOT NULL 지정시 NULL 허용 안됨

열 정의
열명 자료형 [DEFAULT 기본값] [NULL|NOT NULL]

CREATE TABLE sample62 (
	no INTEGER NOT NULL,
    a VARCHAR(30),
    b DATE);

2. 테이블 삭제


DROP TABLE 명령을 사용한다.

DROPT TABLE
DROP TABLE 테이블명

데이터베이스가 SQL 명령 실행시 확인을 요구하지 않으므로 삭제 시 실수로 테이블을 삭제하지 않도록 신중

- 데이터행 삭제

테이블 정의는 그대로 둔 채 데이터만 삭제 시에는 DELETE 명령을 사용한다. (WHERE 조건 지정시 특정 행만 삭제)

DELETE 명령은 행 단위로 여러 가지 내부 처리로 느리다. TRUNCATE TABLE 명령을 사용한다. 삭제 행 지정 X, WHERE 구 지정X -> 모든 행 빠른 삭제 가능

TRUNCATE TABLE
TRUNCATE TABLE 테이블명

3. 테이블 변경


테이블 작성 뒤에도 열 구성 변경 가능 - ALTER TABLE 명령

ALTER TABLE
ALTER TABLE 테이블명 변경명령

ALTER TABLE 명령 사용 시 테이블에 저장되어 있는 데이터 그대로 남긴 채 구성만 변경이 가능하다.

  • 열 추가, 삭제, 변경
  • 제약 추가, 삭제

- 열 추가

ADD 하부 명령 통해 실행

열추가

  • ALTER TABLE 테이블명 ADD 열 정의

열 정의는 CREATE TABLE의 경우와 동일(열 이름, 자료형, 기본값, NULL제약)

  • 열 이름 동일 시 추가 불가
ALTER TABLE sample62 ADD newcol INTEGER;

ALTER TABLE ADD로 테이블에 열 추가

ADD로 열이 추가될 때, 기존 데이터행이 존재하면 추가한 열의 값이 모두 NULL이 된다. 기본값 지정시 기본값으로 지정된다. 한편 NOT NULL 제약을 붙인 열을 추가하고 싶다면 먼저 NOT NULL로 제약을 건 뒤에 NULL이외의 값으로 기본값을 지정

NOT NULL 제약이 걸린 열을 추가할 때는 기본값을 지정

- 열 속성 변경

MODIFY 하부 명령 실행

열 속성 변경

  • ALTER TABLE 테이블명 MODIFY 열 정의

열 정의는 CREATE TABLE과 동일, 열 이름 변경 X, 자료형이나 기본값/NOT NULL 제약등의 속성 변경 가능

ALTER TABLE sample62 MODIFY newcol VARCHAR(20);

기존의 데이터 행 존재시, 속성 변경에 따라 데이터 역시 변환, 테이블에 들어간 데이터의 자료형 역시 바뀐다. 에러 발생 시 명령 실행 안됨

- 열 이름 변경

CHANGE 하부 명령 으로 시행

열 이름 변경

  • ALTER TABLE 테이블명 CHANGE [기존 열이름] [신규 열 정의]

열 이름 뿐만 아니라 열 속성의 변경 또한 가능

  • Oracle: RENAME TO 하부 명령 사용
ALTER TABLE sample62 CHANGE newcol c VARCHAR(20);

- 열 삭제

DROP 하부 명령 사용

열 삭제

  • ALTER TABLE 테이블명 DROP 열명

테이블에 존재하지 않는 열인 경우 에러

ALTER TABLE sample62 DROP c;

4. ALTER TABLE로 테이블 관리


- 최대길이 연장

처음에 한 자리로 충분했던 용량이 시간이 지나면서 부족해지는 일이 많다. ALTER TABLE로 열의 자료형만 변경해서 대응한다.

  • ALTER TABLE sample MODIFY col VARCHAR(30);

    최대길이를 늘리는 경우는 많지만 줄이는 경우는 많지 않다.

- 열 추가

  • ALTER TABLE sample ADD new_col INTEGER
profile
멋쟁이 토마토

0개의 댓글