3.3.2 테이블 만들기
데이터베이스 만들기 쉬운 부분이지만, SHOW TABLES
알 수 있듯이이 시점에서 비어 있습니다.
mysql> SHOW TABLES;
Empty set (0.00 sec)
어려운 부분은 데이터베이스의 구조, 즉 어떤 테이블이 필요 각 테이블에 어떤 컬럼을 포함 시킬지를 결정하는 것입니다.
각 펫 기록을 저장하는 테이블이 필요합니다. 이 테이블에는 pet
이라는 이름을 붙일 수 적어도 각 애완 동물의 이름을 포함해야합니다. 이름 자체에는 깊은 의미가 없으므로이 테이블에는 다른 정보도 포함시킬 것입니다. 예를 들어, 가족의 여러 멤버가 애완 동물을 기르고있는 경우 각 애완 동물 소유자를 기록 할 수 있습니다. 종이나 성별 등의 기본적인 설명도 기록 할 수 있습니다.
나이는 어떨까요. 중요한 정보는 있지만 데이터베이스에 저장하려면 적합하지 않습니다. 나이는 시간이 지남에 따라 변화하기 때문에 기록을 수시로 업데이트 할 필요가 생깁니다. 대신, 생년월일 등의 고정 값을 저장하는 것이 좋습니다. 이렇게 해두면 나이가 필요할 때 현재 날짜와 생년월일의 차이로 계산 할 수 있습니다. MySQL은 날짜 연산을 수행하는 함수가 준비되어 있기 때문에, 이것은 어렵지 않습니다. 나이 대신 생년월일을 저장하는 것에는 다른 장점도 있습니다.
예를 들어, 애완 동물의 생일이 다가 오면 알림을 생성하는 등의 작업에 데이터베이스를 사용할 수 있습니다. (이러한 쿼리는 의미가 없다고 판단되면 현재 주와 달에 생일 축하 메시지를 전송해야하는 클라이언트를 식별하기 위해 비즈니스 데이터베이스를 사용하는 경우와 컴퓨터 지원 접객 점 에서 같은 문제가 있는지에 주목하십시오.)
현재 날짜가 아닌 다른 날짜를 기준으로하여 나이를 계산 할 수 있습니다. 예를 들어, 데이터베이스에 사망 날짜를 저장하면 애완 동물이 몇 살에 죽었는지를 쉽게 계산할 수 있습니다.
pet
테이블에 포함하면 도움이 될 것 인 정보 외에도 있겠지만 지금까지 언급 한 이름 (name) 소유자 (owner), 종 (species), 성별 (sex), 생년월일 (birth) 및 사망 연월일 (death)으로 충분합니다.
CREATE TABLE
문을 사용하여 테이블의 레이아웃을 지정합니다.
mysql>CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
->species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
name
, owner
및 species
의 각 컬럼은 컬럼 값의 길이가 변화하기 때문에 이러한 컬럼에 VARCHAR
를 선택하는 것이 좋습니다. 이러한 컬럼 정의의 길이는 모두 같을 필요는없고, 20
일 필요도 없습니다. 일반적으로 1
에서 65535
까지의 범위에서 가장 적절하다고 생각되는 임의의 길이를 선택할 수 있습니다. 선택이 잘못되어 나중에보다 긴 필드가 필요할 경우에는 MySQL의 ALTER TABLE
문을 사용할 수 있습니다.
애완 동물의 레코드 성별을 나타내는 값으로는 'm'
과 'f'
또는 'male'
과 'female'
등 몇 가지 종류를 선택할 수 있습니다. 단일 문자 'm'
과 'f'
를 사용하는 것이 가장 간단합니다.
birth
컬럼과 death
컬럼에 DATE
데이터 형식을 사용하는 것은 매우 분명한 선택입니다.
테이블을 만든 후에는 SHOW TABLES
에 뭔가 출력 될 것입니다.
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet |
+---------------------+
예상대로 테이블이 생성 된 것을 확인하려면 DESCRIBE
문을 사용합니다.
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
DESCRIBE
문은 테이블의 컬럼의 이름과 형태를 잊은 경우 언제든지 사용할 수 있습니다.
MySQL 데이터 형식에 대한 자세한 내용은 11 장 "데이터 형식" 을 참조하십시오.