# 05강. 테이블 구조 참조하기
- `DESC` 명령으로 테이블 구조를 참조하는 방법을 알아본다.

**`DESC 명령`**
```
DESC 테이블명;
```

- 열을 지정하여 조건을 붙이거나 특정 열의 값을 읽어올 수 있다.
- 테이블에 어떤 열이 있는지 참조할 수 있으면 `SELECT` 명령을 작성하기 쉬워진다.

---

## 1. DESC 명령

```
mysql> DESC sample21;
```
위의 명령을 실행하면 아래와 같은 결과가 화면에 나타난다.

![05강 DESC 명령](https://user-images.githubusercontent.com/68052095/101595129-3f534980-3a36-11eb-867d-6981a844b1a8.PNG)

- `DESC` 명령으로 테이블에 어떤 열이 정의되어 있는지 알 수 있다(`DESC`는 `SQL` 명령이 아니다).
- 맨 앞의 `Field`에는 열 이름이 표시된다.
- `Type`은 해당 열의 `자료형`을 나타낸다.
- `int`는 `Integer(정수)`를 의미한다.
- 괄호안의 숫자는 최대 길이를 나타내는데, 예를 들어 `int(11)`은 `11자리의 정수값을 저장할 수 있는 자료형`이라는 의미이다.
- `Null`은 `NULL` 값을 허용할 것인지 아닌지를 나타내는 **제약사항**으로 `Yes`로 지정하면 `NULL` 값을 허용하게 된다.
- `Key`는 해당 열이 `키`로 지정되어 있는지를 나타낸다(행을 특정하기 위해 사용할 수 있는 열).
- `Default`는 그 열에 주어진 `기본값` 즉, 생략했을 경우 적용되는 값이며, 테이블에 행을 추가할 때 열의 데이터 값을 생략하면 이 기본값으로 채워진다.

##### DESC 명령으로 테이블 구조를 참조할 수 있다.

---

## 2. 자료형
- 테이블은 하나 이상의 열로 구성되며 `DESC` 명령으로 그 구조를 참조할 수 있다.
- 열에는 몇 가지 속성을 지정할 수 있는데 그중 가장 중요한 속성은 `자료형`이다.

### INTEGER 형
- `INTEGER 형`은 수치형의 하나로 정수값을 저장할 수 있는 자료형이다.
- 소수점은 포함할 수 없다.

### CHAR 형
- `CHAR 형`은 문자열형의 하나로 문자열을 저장할 수 있는 자료형이다.
- 문자열형에서는 열의 최대 길이를 지정해야 한다. `CHAR(10)`으로 자료형을 지정했을 경우 `최대 10문자`로 된 문자열을 저장할 수 있으며 11문자로 된 문자열은 저장할 수 없다.
- `CHAR 형`은 언제나 고정된 길이로 데이터가 저장된다.
- `고정 길이 문자열` 자료형이라고 한다.
- `CHAR 형`에서는 길이가 고정되기 때문에 최대 길이보다 작은 문자열을 저장할 경우 공백문자로 나머지를 채운후 저장하게 된다.

### VARCHAR 형
- `VARCHAR 형` 역시 문자열을 저장할 수 있는 자료형이다.
- 단, `CHAR 형`과는 달리 데이터 크기에 맞춰 저장공간의 크기도 변경된다.
- `가변 길이 문자열` 자료형이라고 한다.

### DATE 형
- `DATE 형`은 날짜값을 저장할 수 있는 자료형이다.
- 날짜값이란 `2013년 3월 23일`과 같이 `연월일의 데이터`를 저장할 수 있는 형이다.

### TIME 형
- `TIME 형`은 시간을 저장할 수 있는 자료형이다.
- 예를들어 `12시 30분 20초`와 같이 `시분초의 데이터`를 저장할 수 있는 형이다.

##### 문자열형에는 고정 길이와 가변 길이가 있다!

`자주 쓰이는 자료형 위주로 설명한 것이며, 이 외에도 많은 자료형이 있다.`

---