五:MySQL数据类型和属性

时间:2022-04-10 04:13:09

一:数据类型

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:加注释