데이터베이스/SQL

[SQL 명령어] CREATE, DROP, ALTER (DDL)

DS지니 2021. 3. 21. 14:15
728x90
반응형

1. Creating table  테이블 추가

새로운 테이블의 구조가 스키마로 정의될 경우 테이블 생성이 가능하다.
이미 같은 이름의 열이 존재하면 error가 나타난다. 그렇기에 IF NOT EXISTS를 사용한다.

CREATE TABLE IF NOT EXISTS mytable (
    column DataType TableConstraint DEFAULT default_value,
    another_column DataType TableConstraint DEFAULT default_value,
    …
	);

 

2. Dropping table 전체 테이블 제거

DROP TABLE IF EXISTS mytable;

드문 경우이긴 하지만 모든 데이터 및 메타데이터를 포함하는 전체 테이블을 제거할 수 있습니다. 이렇게 하려면 테이블 스키마를 데이터베이스에서 완전히 제거한다는 점에서 DELETE 문과 다른 DROP TABLE 문을 사용할 수 있습니다.

CREATE TABLE 문과 마찬가지로 지정된 테이블이 없으면 데이터베이스에서 오류가 발생할 수 있어 IF EXISTS 절을 사용할 수 있습니다.

또한 제거할 테이블의 열에 종속된 다른 테이블이 있는 경우(예: FOREIGN KEY 종속성이 있는 경우) 종속된 행을 제거하거나 해당 테이블을 완전히 제거하려면 먼저 모든 종속 테이블을 업데이트해야 합니다.

ex) DROP TABLE IF EXISTS Movies;

 

3. Altering tables

: to add, remove, or modify columns and table constraints.

 

  • Adding columns

ALTER TABLE mytable ADD column DataType OptionalTableConstraint DEFAULT default_value;- MySQL과 같은 데이터베이스들에서 FIRST, AFTER 을 사용해 추가할 열을 지정할 수 있다.

예시

ALTER TABLE MoviesADD 
COLUMN Language 
TEXTDEFAULT "English";


-> Add another column named Language with a TEXT data type to store the language that the movie was released in. Ensure that the default for this language is English.

 

 

  • Removing columns

-일부 데이터베이스(SQLite 포함)는 이 기능을 지원하지 않는다. 대신 새 테이블을 만들고 데이터를 옮길 수 있다.

ALTER TABLE mytable DROP column_to_be_deleted;

 

 

  • Renaming the table
ALTER TABLE mytable RENAME TO new_table_name;
  • 그 외
    각 데이터베이스 구현은 테이블을 변경하는 다양한 방법을 지원하므로 진행하기 전에 항상 데이터베이스 문서 (MySQL, Postgres, SQLite, Microsoft SQL Server)를 참조하는 것이 가장 좋습니다.

 

 

728x90
반응형