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

数据类型

使用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;
相关推荐
程序员夏洛12 小时前
MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
数据库·mysql
Wang's Blog12 小时前
PostgreSQL笔记34:索引优化策略全景解析——从B-tree到HOT的核心原理与实践
数据库·笔记·postgresql
l12586513 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
梦Arrebol13 小时前
Mysql内容及相关实验
数据库·mysql
OceanWaves199313 小时前
mysql 8.0.32 磁盘爆满,清理从库日志
数据库·mysql
凤山老林13 小时前
数据库读写分离与动态路由实战:Spring Boot + ShardingSphere-JDBC 生产配置
数据库·spring boot·后端·分库分表·sharding-jdbc
l12586514 小时前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
聚美智数15 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
JavaPub-rodert15 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
瀚高PG实验室16 小时前
SQL优化案例:存储过程、复杂SQL拆成简单SQL提升整体性能
数据库·sql·postgresql·瀚高数据库