MySQL
10. MySQL 테이블 생성
drizzle0925
2021. 3. 13. 12:11
728x90
MySQL 테이블 생성
Syntax
CREATE TABLE 테이블이름(
컬럼1 데이터타입,
컬럼2 데이터타입,
컬럼3 데이터타입,
....
);
Example
CREATE TABLE fruit(
id int(11),
name varchar(50),
weigth int(11),
price int(11),
color varchar(50)
);
Query OK
테이블이 정상적으로 생성되었다.
0 rows affected, 3 warning
이 메시지에 대해서는 잠시 무시하도록 하자.
데이터 타입의 () 값
데이터 타입 뒤에 ()에 넣는 숫자를 필드의 최대 길이를 지정해준다.
varchar(5)이면 5자리까지 입력이 가능하다.
abcde 이렇게 5자리까지 말이다.
혹시 입력값이 abcdef라면 f가 잘리고 abcde까지만 테이블에 저장된다.
하지만 int의 경우에는 varchar와 쓰임이 다르다.
// mysql 5 버전이었을 때
괄호()안에 어떤 숫자를 넣어도 int가 다룰 수 있는 최댓값을 받을 수 있다.
int의 경우 ZEROFILL을 위한 설정이다.
ZEROFILL이란 0이 채워지게 되는 개수이다.
예를 들어
int(1), int(5), int(10)이라는 컬럼을 만들어서 숫자를 1을 저장하면
1, 00001, 0000000001로 저장되는 것을 볼 수 있다.
하지만 현재는 int안에 ()값을 지정해도 타입이 그냥 int로 지정된다.
그러므로 정수타입의 범위를 바꾸고 싶으면 괄호() 안에 숫자를 변경할 것이 아니라 타입을 다르게 지정해야 된다.
Type | Bytes | Minimum Value | Maximun Value |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32768 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
int(11)로 설정하든 int(4)로 설정하든 int는 자신의 허용범위 내에 값을 모두 받아들인다.
그러므로 서비스 초기에는 smallint 또는 mediumint로 설정한 뒤 서비스가 커질 경우 int, bigint로 변경하는 것이 바람직하다.
728x90