上篇咱们介绍了MySQL的基本情况和建库建表语句,当然必不可少的增删改查中的增删改也一并介绍了一下,此处再次强调语句,删库需谨慎,三思而后行。
内容简介
本篇会分两部分介绍:
第一部分:MySQL中的数据类型
第二部分:MySQL中的字段约束
MySQL中的数据类型
MySQL是存储数据的数据库,涉及到数据就需要有数据的类型,MySQL中的数据类型大致可以分为以下五类:
数值类型 : 例如 int, bit;
浮点数类型 : 例如 float;
时间/日期类型 : 例如 date;
字符串类型: 例如 char,varchar;
枚举类型 : enum
我们下面依次对这些数据进行说明
数值类型
MySQL中的常见数据类型如下:
类型 | 字节大小 | 有符号范围(Signed) | 无符号范围(Unsigned) |
|---|---|---|---|
tinyint | 1 | -128 ~ 127 | 0 ~ 255 |
smallint | 2 | -32768 ~ 32767 | 0 ~ 65535 |
mediumint | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
int/integer | 4 | -2147483648 ~2147483647 | 0 ~ 4294967295 |
bigint | 8 | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 18446744073709551615 |
MySQL中我们最常见到的和用到的是int类型,而具体要用到那种取决于我们字段存储的数字大小。最好使用字段合适的类型,节省数据库空间,提升效率。
浮点数类型
浮点数常见类型:
类型 | 字节大小 | 取值范围 |
|---|---|---|
float | 4 | 最小非零值:±1.175494351E – 38 |
double | 8 | 最小非零值:±2.2250738585072014E – 308 |
decimal(M,D) | 如果M>D,为M+2否则为D+2 | 可变,取值范围根据M和D进行改变 |
浮点数类型中值得一说的就是decimal(), decimal是一个可变的数据类型,数据的取值范围和占用的内存大小是可变的。
例如:decimal(5,2) 表示该字段取值最常为5位有效数字,小数点后面的占两位。
时间/日期类型
时间日期类型:
类型 | 字节大小 | 实例 |
|---|---|---|
date | 4 | '2020-11-19' |
time | 3 | '16:55:23' |
datetime | 8 | '2020-11-19 16:55:23' |
year | 1 | '2020' |
timestamp | 4 | '1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC |
实际工作环境中使用这种类型的时候很少,一般来说都是使用数字类型来进行代替。


字符串类型
字符串类型:
类型 | 字节大小 | 示例 |
|---|---|---|
char | 0 ~ 255 | name char(10) |
varchar | 0 ~ 65535 | name varchar(10) |
text | 0-65535 | 大文本 |
大家此处注意,如果大家是按照我们的这个教程进行安装的MySQL8.0的话,这个版本的varchar和char 两个类型后面的参数是表示接受多少个字符,不是字节。另外此处如果存储的数据长度超过了这个数字会报错。


枚举类型
MySQL中的枚举类型严格来说算是字符串类型,枚举类型的作用就是给出几个选项,该字段就只能在这几个选项中进行选择,类似于Excel中的下来菜单。
例如 gender enum('男', '女') 这个时候gender字段就只能在男或者女这两个中进行选择,如果是别的内容就会报错。


字段约束
MySQL中的字段约束分为6种:
NOT NULL:非空约束,用于保证该字段的值不能为空 比如姓名、学号等 DEFAULT:默认约束,用于保证该字段有默认值 比如性别 PRIMARY KEY:主键约束,用于保证该字段的值具有唯一性,并且非空 比如学生的学号、员工的编号等 UNIQUE:唯一约束,用于保证该字段的值具有唯一性,可以为空 比如座位号 FOREIGN KEY:外键约束,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值 在从表添加外键约束,用于引用主表中某列的值 比如学生表的班级编号,员工表的部门编号,员工表的工种编号
AUTO_INCREMENT :自增约束,在表中插入数据时,如果不对该字段赋值,会自动在已有最大值的基础上+1


总结
数据类型的使用取决于该字段的存储内容,一定要选择合适的类型以及约束,这样可以让数据库的性能提升不少。
本系列下篇就正式开始查询语句了,大家快快关注我!!