第二章 数据类型、表的约束

数据类型

使用MySQL数据库存储数据时,不同的数据类型决定了MySQL存储数据方式的不同。

整数类型

整数类型分为5种

复制代码
TINYINT(tiny int)  占用1个字节,8位
SMALLINT(small int)
MEDIUMINT(medium int)
INT(int)
BIGINT(big int)
浮点数类型和定点数类型

存储的小数使用浮点数和定点数来表示,

复制代码
浮点数:
单精度FLOAT(float)
双精度DOUBLE(double)
复制代码
定点数:DECIMAL(decimal)
日期与时间类型
复制代码
YEAR(year) 
DATE(date)
TIME(time)
DATETIME(datetime)
TIMESTAMP(timestamp)
字符串和二进制类型
复制代码
CHAR(char)
VARCHAR(varchar)
BINARY(BINARY)
VARBINARY(varBINARY)
TEXT(text)
BLOB(blob)
ENUM(enum)
SET(set)
BIT(bit)

表的约束

为了防止数据表中插入错误数据,在MySQL中,定义了一些维护数据库完整性的规则,即表的约束。

主键约束primary key

通过主键可以快速查找表中的某条信息,它可以唯一标识表中的记录,就好比身份证可以用来标识人的身份一样。

每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段,不能有重复值,不能为NULL值。

1.单子段主键

由一个字段构成的主键。

复制代码
字段名 数据类型  PRIMARY KEY
2.多字段主键

由多个字段组合而成的主键。

复制代码
PRIMARY KEY (字段名1,……)
非空约束not null

非空约束指的是字段的值不能为NULL

复制代码
字段名 数据类型 NOT NULL;
唯一约束unique

唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。

复制代码
字段名 数据类型 UNIQUE;
默认约束default

默认约束用于给表中字段指定默认值,即当在表中插入一条新记录时,如果没有给这个字段赋值,那么,数据库系统会自动为这个字段插入默认值。

复制代码
字段名 数据类型  DEFAULT 默认值;
设置表的字段值自动增加auto_increment

在数据表中,若想为表中插入的新记录自动生成唯一的ID,可以使用AUTO_INCREMENT约束来实现。

AUTO_INCREMENT约束的字段可以是任何整数类型,默认情况下,该字段的值是从1开始自增的。

复制代码
字段名 数据类型 AUTO_INCREMENT;
相关推荐
天天喝旺仔26 分钟前
MySQL 索引原理与慢查询优化实战:从 B+ 树到执行计划调优
数据库·sql·mysql·性能优化
liulilittle40 分钟前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
DongQiShanRen1 小时前
玄龙(上):TICK 主循环——意识心跳怎么跳
linux·jvm·数据库·人工智能·数据挖掘·rust
数据库小学妹1 小时前
存算分离到底分离了什么?四条架构变化与选型判断
数据库·数据库架构·云原生数据库·缓存一致性·存算分离
FPGA小徐1 小时前
【一生一芯 / PA】异常响应机制:RISC-V 中 ecall → mtvec → mret 的完整代
开发语言·数据库·c#
m0_646429972 小时前
MySQL 初始化 SQL 中文乱码问题总结
数据库·sql·mysql
实战派K8S&DB2 小时前
TDSQL 核心模块与进程体系
运维·数据库·分布式·sql·mysql
FfHUCisI2 小时前
Go 性能分析工具 pprof:CPU、Heap 与 Goroutine 实战
数据库·golang
仍然.2 小时前
Redis---分布式锁
数据库·redis·分布式
ly76892 小时前
MongoDB 副本集选举风暴排查:从心跳超时到 Journal 刷盘阻塞
数据库·mongodb·php·mongodb 副本集·选举风暴·journal 刷盘·writeconcern