본문 바로가기

SQL

SQL -DDL(데이터 정의어)

해당 실습은 SSH 클라이언트로 학교 실습서버에 접속해 진행했다.

 

우선 기본 데이터베이스를 조회해봤을 때 3가지의 데이터베이스가 존재한다.

 

 

이 중 DB_2021111680 데이터베이스에 테이블 생성/변경/삭제 실습을 진행할 것이다.

 


DDL(Data Definition Language)

데이터 정의어는 테이블을 생성, 변경, 제거하는 기능을 제공한다.

테이블 생성 CREATE TABLE
테이블 변경 ALTER TABLE
테이블 삭제 DROP TABLE

 

 

1️⃣ 테이블 생성(CREATE)

테이블 생성을 위한 sql 쿼리 포맷은 아래와 같다.

CREATE TABLE 테이블명 (
	컬럼명1 데이터타입1 [NOT NULL] [DEFAULT 기본값],
    컬럼명2 데이터타입2 [NOT NULL] [DEFAULT 기본값,
    ...
    [PRIMARY KEY(컬럼명1, 컬럼명2)]
);

 

제품, 고객 테이블을 생성한 모습이다.

 

 

 

생성한 테이블을 조회할 때는 아래 두 명령어중 하나를 사용해 테이블 정보를 조회할 수 있다.

1) SHOW CREATE TABLE 테이블명
2) DENSE 테이블명

SHOW CREATE TABLE 제품
DESC 고객;

 

 

 

2️⃣ 테이블 수정(ALTER)

고객 테이블의 '고객아이디' field를 primary key로 설정한다는 것을 까먹고 테이블을 생성해버렸다. 

어떻게 해야할까? 

이런 경우엔 테이블을 지우고 다시 생성하지 않아도, ALTER를 이용해 테이블에 필드를 추가하거나 삭제할 수 있다.

특정 field값을 primary key로 등록하는 것처럼 테이블에 새 칼럼을 추가하거나 삭제할 수도 있고,

테이블에 정의되어있던 제약조건을 삭제하거나 추가할 수도 있다.

1) 테이블 변경 - 칼럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터입 [NOT NULL] [DEFAULT 기본값];

2) 테이블 변경 - 칼럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

3) 테이블 변경 - 제약조건 추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건내용;

4) 테이블 변경 - 제약조건 삭제
ALTLER TABLE 테이블명 DROP CONSTRAINT 제약조건명;

 

 

mysql> ALTER TABLE 고객 ADD PRIMARY KEY(고객아이디) 쿼리문으로 '고객아이디'를 primary key로 지정한 후,

테이블을 조회했을 때 변경사항이 잘 적용된 것을 확인할 수 있다.

 

ALTER TABLE 고객 ADD 가입날짜 DATE; 쿼리문으로 '가입날짜' 필드도 새롭게 추가해보았다.

 

 

20살 이상의 고객인지를 체크하는 CHK_AGE라는 제약조건도 추가했다.

 

 

방금 생성한 CHK_AGE 제약조건을 DROP 명령어로 삭제하고 테이블을 다시 조회했을 때,

해당 제약조건 적용사항이 삭제된 것을 확인했다.

 

 

 

 

 

3️⃣테이블 삭제(DROP)

테이블 내 특정 구성요소가 아닌 테이블 자체를 삭제할 때는 아래의 포맷으로 명령어를 작성하면 된다.

DROP TABLE 테이블명;

'SQL' 카테고리의 다른 글

SQL 실습환경 셋팅  (0) 2024.02.08
관계형 데이터베이스와 SQL  (0) 2024.02.07