Web (웹), Server (서버)

[MySQL] 테이블 생성과 제약 조건 설정 / 테이블 삭제 - CREATE TABLE / DROP TABLE

Oscar:) 2023. 3. 26. 19:47

 

지난 포스팅에서, DB 사용할 준비를 마쳤다.

 

이제 DB 안에 테이블을 생성 & 삭제하는 방법에 대해 알아보자.

 


 

DB에 테이블 생성 

 

사용할 DB를 선택했으면, 테이블을 만들어줄 차례이다.

 

여기서 테이블이란, DB에서 실제로 데이터가 저장되는 곳이다.

테이블이란 말 그대로, 표의 형태를 지닌다.

 


 

테이블을 생성할 때는 테이블과 필드의 이름을 지정하는 동시에,

제약 조건을 사용해야 한다.

 

테이블과 필드의 이름은 본인이 알아서 지어주면 되고,

제약 조건에 대해 알아보자.

 

 

*제약 조건(CONSTRAINT) : 데이터를 입력받을 때 지켜져야 하는 검사 규칙이다.

자주 사용되는 제약 조건의 종류는 다음과 같다.

 

● INT(), VARCHAR() 등
해당 컬럼에 사용될 자료형을 지정해 줘야 한다.
소괄호 안에는 허용할 글자 수를 작성해준다.

● NOT NULL
NULL 값을 허용하지 않는다.
즉, 무조건 데이터가 입력되어야만 하는 컬럼이다.
작성하지 않을 시, NULL 값이 허용된다.
 
● UNIQUE
해당 컬럼의 데이터는 서로 중복될 수 없다.

● DEFAULT
해당 컬럼 데이터의 기본 값을 설정해줄 수 있다.
해당 컬럼에 NULL 값이 입력되었을 때, DEFAULT 값으로 대체된다.
NOT NULL 조건과는 무관하게 사용 가능하다.

● AUTO_INCREMENT
해당 필드의 데이터는 1부터 시작하며,
새로운 데이터가 추가될 때마다 1씩 자동으로 증가한다.

● PRIMARY KEY
해당 테이블의 기본 키를 지정해줄 수 있다.
UNIQUE 조건과 NOT NULL 조건의 특징을 모두 포함한다.
한 테이블 당 하나의 컬럼에만 설정할 수 있다.

 

 

제약 조건에 대해 알아보았으니, 이제 테이블을 생성해보자.

문법)
CREATE TABLE '테이블 이름' (필드 이름 + 제약 조건);

예시)
CREATE TABLE user (num INT(11) NOT NULL AUTO_INCREMENT,
id VARCHAR(30) NOT NULL,
nickname VARCHAR(30) NOT NULL,
phone VARCHAR(30),
PRIMARY KEY (num));

 

문법은 간단해 보이지만, 제약 조건을 작성하다 보니 복잡해 보일 수 있다.

 

요약해서 설명하자면, 다음과 같다.

 

· 'user' 라는 이름의 테이블을 생성한다.
· 테이블의 필드로는 'num', 'id', 'nickname', 'phone' 을 지정한다.
· 각 필드를 지정할 때 제약 조건을 함께 작성해준다.
· 마지막 줄에 PRIMARY KEY 를 'num' 필드로 지정했는데,
첫째 줄에 'num' 필드 제약 조건으로 작성해도 무방하다.

 

'num' 필드에 유난히 많은 제약 조건을 달아주었는데,

앞으로 추가될 데이터들에 자동으로 번호를 매겨주는 역할을 해줄 필드이다.

사용자에게 입력받아서 저장할 데이터는 'id', 'nickname', 'phone' 3개 뿐이다.

 

 


 

테이블을 성공적으로 생성하였다면, 테이블을 확인해 볼 차례이다.

● 모든 테이블 확인
문법)
SHOW TABLES;

● 테이블 구조 확인
문법)
DESC '테이블 이름';

예시)
DESC user;

 

테이블 생성 > 테이블 확인 > 테이블 구조 확인 의 결과는 다음과 같다.

 

가독성을 위해 명령어 입력 시 빨간 밑줄 표시했다.

 

정말 테이블(=표)의 형태로 표시되는 것을 확인할 수 있다.

 

 


 

테이블 삭제

 

테이블을 생성해 봤다면, 삭제하는 방법도 알아보자.

 

문법)
DROP TABLE '테이블 이름';

예시)
DROP TABLE user;

 

실행 결과는 다음과 같다.

*Empty : 텅 비어있는

 

테이블이 삭제된 것을 확인할 수 있다.

 

 


 

이번 포스팅에서는 테이블 생성과 삭제, 제약 조건에 대해 알아보았다.

 

테이블 수정은 양이 너무 많아서 다음 게시글로 따로 포스팅하겠다.