一:数据类型
1. 数字类型
int:整数 -2^31 ~ 2^31-1
-2147483648 ~ 2147483647
tinyint:最小整数 -128 ~ 127
2. 字符类型
char:定长 char
varchar:变长 varchar
解析:比如你定义char和varchar都是12,当你存入一个字符串jiangwei,8位,此时char占用12位,varchar占用8位,这就是定长和变长的区别。定长可用于一些固定的字符,比如手机号,中国的手机号固定11位,char(11)就行了,varchar可以用于名字,名字两位三位四位都有。
3. 枚举类型
enum('m','f')男女
enum('A','B','C','D')试卷选择题
4. 时间类型
timestamp:'1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999'
datetime:'1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'
二: 数据属性(约束)
not null:非空
primary key:主键(数据不能重复,并且不能为空)
比如:学号,是不可以重复的,并且不能为空,可以在学号(sid后增加主键)
#可以为学号增加主键,保证不能为空并且不能重复
#查看student表的类型
mysql> desc student;
---------- --------------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
---------- --------------- ------ ----- --------- -------
| sid | int(11) | YES | | NULL | |
| sname | varchar(20) | YES | | NULL | |
| sage | tinyint(4) | YES | | NULL | |
| sgender | enum('f','m') | YES | | NULL | |
| cometime | datetime | YES | | NULL | |
---------- --------------- ------ ----- --------- -------
5 rows in set (0.00 sec)
#增加主键
mysql> alter table student add primary key pri_sid(sid);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student;
---------- --------------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
---------- --------------- ------ ----- --------- -------
| sid | int(11) | NO | PRI | 0 | |
| sname | varchar(20) | YES | | NULL | |
| sage | tinyint(4) | YES | | NULL | |
| sgender | enum('f','m') | YES | | NULL | |
| cometime | datetime | YES | | NULL | |
---------- --------------- ------ ----- --------- -------
5 rows in set (0.00 sec)
补充:一个主键创建在两个字段上,叫联合主键
unique key:唯一键(数据不能重复,但是可以为空)
unique key not null = primary key
unsigned:无符号,加上无符号就不能为负数
default:默认值
auto_increment:自增
comment:加注释