새소식

Database/MySQL

[MySQL] DDL (테이블/컬럼 생성/수정/삭제)

  • -

DDL (Data Definition Language)

 

데이터베이스 생성

CREATE DATABASE 데이터베이스명

 

 

데이터베이스 삭제

DROP DATABASE 데이터베이스명

 

 

데이터베이스에 테이블 생성

CREATE TABLE 데이터베이스명.테이블명 (
    컬럼1명 datatype,
    컬럼2명 datatype,
    ...
);

마지막 컬럼에는 "," 가 들어가서는 안된다!

 

 

mart라는 데이터베이스에 id, 상품명, 가격 정보가 들어있는 product 테이블을 만들고 싶다.

CREATE TABLE mart.product (
    id int,
    상품명 varchar(100),
    가격 int
);

 

 

 

컬럼에 데이터를 넣어줄 때, 특정 값에는 값이 없다면 DEFAULT를 통해 default 값을 설정해줄 수 있다.

CREATE TABLE mart.product (
	id int,
	상품명 varchar(100) DEFAULT "unnamed",
	가격 int DEFAULT 0
);

 

 

데이터베이스에 테이블 삭제

DROP TABLE 데이터베이스명.테이블명;

 

 

데이터베이스에 테이블 컬럼 추가

ALTER TABLE 데이터베이스명.테이블명 ADD 컬럼명 datatype

 

mart 데이터베이스의 product 테이블에 카테고리 컬럼을 추가하고 싶다.

ALTER TABLE mart.product
ADD 카테고리 VARCHAR(100);

 

 

 

 

데이터베이스에 테이블 컬럼 데이터타입 수정

ALTER TABLE 데이터베이스명.테이블명
MODIFY COLUMN 컬럼명 datatype;

 

mart 데이터베이스의 product 테이블의 "가격" 컬럼의 데이터타입을 varchar로 변경하고싶다.

ALTER TABLE mart.product
MODIFY COLUMN 가격 varchar(100);

 

 

그러나 컬럼에 이미 데이터가 들어있다면 타입 변경이 불가능하다.

변경이 필요하면 새로 테이블을 만들어서 옮기는 것이 일반적이다.

 

 

 

데이터베이스에 테이블 컬럼 삭제

ALTER TABLE mart.product DROP COLUMN 카테고리;

 

mart 데이터베이스의 product 테이블의 "카테고리" 컬럼을 삭제하고 싶다.

ALTER TABLE mart.product
DROP COLUMN 카테고리;

 

 

 

728x90

'Database > MySQL' 카테고리의 다른 글

[MySQL] INNER JOIN  (0) 2023.03.06
[MySQL] 컬럼에 Constraints 설정  (0) 2023.03.06
[MySQL] IF / CASE  (0) 2023.03.04
[MySQL] 그룹지어 통계내기 (GROUP BY)  (0) 2023.03.04
[MySQL] 서브쿼리  (0) 2023.03.04
Contents