数据类型
在创建表的时候需要为表中字段指定数据类型,存储数据时,只有数据符合类型要求才能存储起来。
常用数据类型如下:
- 整数:tinyint,smallint,mediumint,int,bigint
参考文档:https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
- 小数:decimal,double,float
decimal(M,N),如decimal(5,2)表示共存5位数,小数占2位,存储小数要求没有误差时使用,比如:金钱
- 字符串:varchar,char,text
char表示固定长度的字符串,如char(3),如果补充'ab'时会补一个空格位'ab'',3表示字符数
varchar表示可变长度的字符串,如varchar(3),补充'ab'时就会存储'ab'',3表示字符数
- 日期时间:date,time,datetime
如何选择数据类型
选择数据类型的一般性原则如下:
- 根据存储数据值的不同,选择合适的数据类型。 如:姓名、年龄、身高、手机号
- 同样的数据类型,在满足后续需求的前提下,尽量选择取值范围小的,够用就行,节省存储空间。 如:存储年龄,tinyint比int更合适
数据约束
数据类型本身就是一种约束,数据约束是指在数据类型限定的基础上额外增加的要求。
常见的约束如下(暂时只做了解):
- 主键primary key:唯一标识符中的一行记录。MySQL建议所有表的主键字段都叫 id,类型为 int unsigned。一个表只能有一个主键,不能为NULL
- 非空not null:此字段不允许填写空值。NULL表示空。
- 唯一unique:此字段的值不允许重复。一个表可以有多个唯一,而且列值可以为NULL
- 默认default:当不填写字段对应的值会使用默认值,如果填写时以填写为准。
- 外键foreig key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常。
MySQL常用数据类型 + 五大约束
1.基本语法
CREATE TABLE 数据表名称(
字段名称1 字段类型 [字段约束],
字段名称2 字段类型 [字段约束],
字段名称3 字段类型 [字段约束]
)DEFAULT CHARSET =UTF8;
2.常用类型
整数int,无符号unsigned
小数float、double、decimal(M,N)
字符串char、varchar => 更大字符串text
日期时间date、time、datetime
3.五大约束
①主键约束:非空、唯一、一个表中只能有1个 => primary key
create table student(
id int unsigned (auto_increment) primary key,
name varchar(20),
age tinyint,
mobile char(11)
) default charset =utf8;
- 扩展:编号自增:auto_increment => 不需要手动录入编号,系统会自动生成编码
②唯一约束:唯一,可以为空,一个表中可以有多个 => unique
③非空约束:not null,不允许字段值为null => not null
④默认值约束:default 默认值,插入数据时,如果不写内容,则填充默认值
⑤外键约束:表示两个表的关联关系,插入、修改、删除时候,都会到另外一张表中检查是否有关联,数据是否合法(了解)