导图社区 mysql-数据类型与约束
数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束。
今天我们就来介绍一下对单表执行查询操作时,MySQL有哪些查询数据的方式。很详细,有兴趣的可以看下。
mysql数据库的基本操作包括数据库创建、数据库创表、选中数据库、使用命令创建等等。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
数据类型与约束
数据类型
数字类型
整数类型
tinint
一个字节
无符号:0~255
有符号:-128~127
smallint
两个字节
mediumint
3个字节
int
4个字节
bigint
8个字节
无符号数据类型:用unsigned修饰
int:有符号int类型
int unsigned:无符号int类型
取值范围不包括负数
可能参与数学计算
定点数类型
通过decimal(m,d)设置位数和精度
系统会自动根据储存的数据来分配储存空间
若不允许保存负数,可以用unsigned修饰
设置合理的范围可以使计算更为准确
浮点数类型
float
精度:6~7位
double
精度:15位左右
超出精度导致给定的数值与实际保存的数值不一致,发生精度损失
可以设置位数和精度,但仍可能损失精度
直接常量
mysql中直接编写的字面常量
十进制数
二进制数
十六进制数
null:表示没有值或值不确定等含义
BIT类型
用于存储二进制数据
语法:BIT(M)
M表示位数,范围1~64
显示宽度:默认是取值范围所能表示的最大宽度
对于有符号类型:符号也振勇一个宽度
显示宽度与取值范围无关
若数值宽度小于显示宽度,会在左侧填充0(负数不支持)
时间和日期类型
year
YYYY
date
YYYY-MM-DD
输入当前系统时间
current_date
now()
time
HH:MM:SS
表示时间值
current_time
datetime
YYYY-MM-DD HH:MM:SS
表示日期和时间
表示当前时间
timestamp
取值范围比datetime小
输入系统当前日期和时间
current_timestamp
无输入或null时实际保存的时系统当前的日期和时间
字符串类型
只能用来显示
转义字符:在字符前加“\“转义
类型
char:固定长度的字符串
char(M)
无论插入值的长度,占用4个字节
varchar:可变长度的字符串
varchar(M)
占用字节数为实际长度+1
text:大文本数据
enum:枚举类型
set:字符串对象
binary:固定长度的二进制数据
varbinary:可变长度的二进制数据
blob:二进制大对象
储存类型选择
表的主键推荐使用整数类型
表的约束
默认约束
字段名 数据类型 default 默认值
blob text数据类型不支持默认约束
为数据表中的字段指定默认值
非空约束
字段的值不能为null
字段名 数据类型 not null
唯一约束
保证数据表中字段的唯一性
列级约束:字段名 数据类型 unique;
表级约束:unique(字段名1,字段名2...)
完整语法:unique key 索引名(字段列表)
允许存在多个null
主键约束
唯一标识表的记录
列级约束:字段名 数据类型 primary key
表级约束:primary key (字段名1,字段名2...)
被约束字段不允许重复
不允许出现null值
每个表最多只允许含有一个主键
自动增长
字段名 数据类型 auto_increment
一个表中只能有一个自动增长字段
数据类型是整数类型
必须定义为键
若为自动增长字段插入null、0、default或在插入时省略该字段,该字段就会使用自动增长值
自动增长值从1开始自增,每次加1
插入值大于自动增长值,下次插入的自动增长值就会自动使用最大值加1
插入值小于自动增长值,不会对自动增长值产生影响
delete删除记录时,自动增长值不会减小或填补空缺
字符集与校对集
字符集与校对集概述
字符集
字符编码:将用户输入的字符,按照一定规则转换为二进制保存的过程
字符集:字符编码规则组合
latin1
西欧字符、希腊字符
gbk
2个字节
简体和繁体中文、日文、韩文等
utf8
世界上大部分国家的文字
charset:字符集名称
description:描述信息
default collation:默认校对集
maxlen:单字符的最大长度
校对集
为不同字符集指定比较和排序规则
ci:不区分大小写
cs:区分大小写
bin:以二进制方式比较
collation:校对集名称
charset:对应的字符集
id:校对集id
default:是否为对应字符集的默认校对集
compiled:是否已编译
sortlen:排序的内存需求量
字符集与校对集的设置