표 4-1의 내용을 토대로 실제 칼럼을 정의해 봅시다. 칼럼을 정의한다는 것은 칼럼명과 칼럼의 데이터 타입을 정의하는 것입니다. 항목별 칼럼명과 데이터 타입을 표 4-2에 정리했습니다. 한글 칼럼명도 사용할 수 있지만, 칼럼명은 영어로 짓는 것이 보통입니다.
표 4-2 학생 정보 칼럼 정의
항목 |
칼럼명 |
데이터 타입 |
학번 |
student_no |
VARCHAR(20) |
이름 |
student_name |
VARCHAR(100) |
학년 |
grade |
TINYINT |
반 |
class |
VARCHAR(50) |
성별 |
gender |
VARCHAR(20) |
나이 |
age |
SMALLINT |
입학일 |
enter_date |
DATE |
각 칼럼의 데이터 타입과 크기를 지정했습니다. 해당 칼럼에 입력될 정확한 값을 알 수 없으니 크기를 넉넉히 잡았습니다. 이름은 VARCHAR(100)으로 100자리까지 지정했는데, 이름이 100자인 사람은 거의 없죠. 하지만 존재할 수도 있으므로 크게 잡았습니다. VARCHAR는 실제 입력되는 값의 크기만큼 용량을 차지하므로 별문제는 없습니다.
학년은 1, 2, 3이 될 테니 정수형 중 가장 작은 TINYINT를, 나이는 그보다 큰 SMALLINT를 지정했습니다. 꼭 입력 값의 크기에 맞게 지정할 필요는 없습니다. 두 칼럼 모두 더 큰 정수형인 INT로 지정해도 됩니다. 하지만 가급적 크기에 맞춰 지정하는 것이 좋겠죠. 입학일도 마찬가지입니다. DATE를 써도 되고 DATETIME을 써도 됩니다.
다시 강조하지만, 크기 지정 시 입력될 값의 최대 크기를 잘 모른다면 일단 넉넉히 크게 지정하는 것이 좋습니다. 크게 지정해 놓고 실제로는 작은 값이 들어가는 것은 전혀 문제가 안 됩니다. 하지만 작게 지정해 놨는데 큰 값을 입력하면 오류가 발생합니다. 따라서 항상 넉넉하게 지정하세요.