分为3种:数值类型、字符串类型、日期时间类型。
一、数值类型
【案例】
年龄: age TINYINT UNSIGNED——范围(0,255)够用
分数:score double(4,1)——分数0-100有小数,4—最高位数,1—小数位数
二、字符串类型
定长char(10):存1个字符,也会占用10个字符的空间,其他用空格补位---性能好
变长varchar(10) :存1一个字符,只占用1个字符的空间---性能较差(要计算空间)
【案例】
用户名(不超过50位):username varchar(50)——变化的字长
性别:gender char(1)——不是男就是女,就占用1个字符空间
【注意】
char(n)、varchar(n)——n代表字符个数,不表示字节个数,char(30)可以存储30个字符。
----------------------------------------字节和字符的区别-------------------------------------------------
字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。
字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。
一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。
- ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
- UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
- Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
- 符号:英文标点为一个字节,中文标点为两个字节。 例如:英文句号 . 占1个字节的大小,中文句号 。占2个字节的大小。
- UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。
- UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。
----------------------------------------字节和字符的区别-------------------------------------------------
三、日期时间类型
【案例】
birthday date
四、练一练
create table emp(
id int comment '编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
entrydate date comment '入职时间'
) comment '员工表';
创建新表并查看表结构: