did_story

[MySQL / DDL] CREAET 부터 MODIFY 까지! (제약 조건 x) 본문

BackEnd🍃/DB & SQL

[MySQL / DDL] CREAET 부터 MODIFY 까지! (제약 조건 x)

어제시작 2025. 1. 13. 17:35

데이타베이스 기초부터 저자가 보고 정리하기 위해 쓴 글임을 밝힙니다.

CREATE

새로운 데이타 베이스나 테이블을 만드는데 사용한다.

CREATE DATABASE newDatabase;

❓: newDatabase란 이름의 데이타 베이스를 만들겠다.

 

CREATE TABLE newDatabase.Products (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    price DECIMAL(10, 2)
);

❓: newDatabase의 Products라는 table 생성.

 

CREATE TABLE newDatabase.Products AS
SELECT * FROM oldDatabase.Products;

❓: oldDatabase.Products 테이블의 데이터를 가져와 newDatabase.Products 에 새 테이블로 복사합니다.

  • 이는 특정 column만 불러올 수 도 있다( '*' → 다른 column // 으로 대체한다면!)
CREATE TABLE newDatabase.Product
LIKE oldDatabase.Product;

❓: 이 명령은 oldDatabase.Products의 스키마만 복사합니다. 데이터는 포함되지 않습니다! 신기하죠?!


DROP

이미 존재하는 데이타 베이스나 테이블을 삭제하는데 사용한다.

DROP DATABASE oldDatabase;

❓: oldDatabase를 삭제하겠다!

DROP TABLE oldDatabase.Products;

❓: oldDatabase의 Products table을 삭제하겠다!.

 

✨ 주의할 점:

  • 만약 Product 테이블이 다른 테이블과 Foreign Key 관계를 가지고 있다면, 삭제 시 오류가 발생할 수 있습니다.
  • Foreign Key 제약 조건이 있을 경우, 먼저 Foreign Key를 제거해야 합니다:

→ 즉 다른 테이블과의 관계를 끊어 내고 삭제해야한다.

 

✨ 스키마만 다 삭제하는 방법!

TRUNCATE TABLE Product;

❓: Product table의 모든 스키마를 삭제하겠다. (데이타 유실 가능성이 있다는 것에 생각하니 쓰기 무서워서 안써봤어요.)


ALTER TABLE

  • 이미 기존에 있는 테이블에서 열(column)을 추가, 수정, 삭제의 활동을 하는데 사용합니다.
  • 기존 테이블에 다양한 제약 조건을 추가하고 삭제하는 데도 사용됩니다.

1. ADD COLUMN

ALTER TABLE Product
ADD Name varchar(255);

❓: Product table에 Name column을 추가하겠다.

2.  MODIFY COLUMN

ALTER TABLE Product
MODIFY COLUMN Name varchar(50);

❓: Product table에서 Name의 데이타 타입을 varchar(50)으로 바꾸겠다..!

✨ 데이터가 기존 VARCHAR(50) 길이를 초과하는 경우, 변경 중 오류가 발생할 수 있다는 것을 생각해보아야 합니다!

2. DROP COLUMN

ALTER TABLE Product
DROP COLUMN Name;

❓: Product table에서 Name column을 삭제하겠다.

✨ 일부 데이타 베이스에서는 삭제가 안될 수도 있습니다.