02-mysql基础-数据类型
来源:互联网 发布:手机淘宝如何看直播 编辑:程序博客网 时间:2024/06/05 11:14
02-Mysql数据类型
数据完整性
- 一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中
- 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。
数据类型
- 使用数据类型的原则:够用就行,尽量使用取值范围小的,而不用大的。这样可以更多的节省存储空间
- 常用的数据类型如下:
- 整数:int,bit
- 小数:decimal
- 字符串:varchar,char
- 日期时间: date, time, datetime
- 枚举类型(enum)
- 特别说明的类型如下:
- ecimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
- char表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ‘
- varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’
- 字符串text表示存储大文本,当字符大于4000时推荐使用
- 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
约束
主键primary key:物理上存储的顺序
非空not null:此字段不允许填写空值
惟一unique:此字段的值不允许重复
默认default:当不填写此值时会使用默认值,如果填写时以填写为准
外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制
1、数据类型
- 整型(int)
- 浮点型(float和double)
- 定点数(decimal)
- 字符串(char、varchar、text)
- 二进制数据(Blob)
- 日期和时间类型
2、整数
m代表的是最大的显示宽度,整数类型中,int用的最多。
3、浮点型(float和double)
4、定点数
浮点型在数据库中存放的是近似值,而定点类型在数据库存放的是精确值。
decimal(m,d),参数m是定点类型数字的最大个数(精度),范围是0-65。d小数点右侧数字的个数,范围0-30,但不得超过m,对定点数的就算能精确到65位数字。
5、字符串
- char和varchar:
- char(n)若存入字符数小于n,则以空格补于其后,查询之后再将空格去掉,所以char类型存储的字符串末尾不能有空格,varchar不限于此。
- char(n)固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符+1个字节(n<=255)或2个字节(n>255),所以varchar(4)存入3个字符将占用4个字节。
- char类型的字符串检索的速度要比varchar的快。
- varchar和text:
- varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节
- text类型不能有默认值
- varchar就可以直接创建索引,text创建索引指定前多少个字符,varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。
6、二进制数据
- BLOB和TEXT存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而BLOB是以二进制的方式存储,不区分大小写。
- BLOB存储的数据只能整体读出
- TEXT可以指定字符集,BLOB不用指定字符集。
7、日期和时间类型
注意:若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候字段刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。
8、数据类型的属性
- 02-mysql基础-数据类型
- mysql -- 基础 -- 数据类型
- MySQL数据类型基础
- mysql基础总结 数据类型
- [MySQL] 基础数据类型优化
- Mysql基础篇之数据类型
- 针对mysql基础数据类型测试
- MySQL基础之字段数据类型
- mysql基础:4、mysql支持的数据类型
- MySQL数据库基础:数据类型及列类型
- MySQL数据库基础:数据类型及列类型
- MySQL数据库基础:数据类型及列类型
- MySQL数据库基础:数据类型及列类型
- Mysql 基础数据类型(无时间相关类型)
- MySQL 基础 —— 数据类型、各种变量
- mysql(4):基础,数据库的数据类型
- 学习笔记:(2)Mysql基础-数据类型
- 02 mysql中的数据类型
- JAVA异常
- PHP验证码的制作教程
- URG和PSH
- 关于Android Studio:error:connection timed out:connect问题的解决方法
- 继承实例
- 02-mysql基础-数据类型
- 多CPU和多核CPU有什么区别
- 移动前端开发之viewport的深入理解
- OpenGL零碎知识点记录<仅供自己查看>
- CSS3的使用方法解析
- MACBOOK JDK安装位置以及环境变量配置
- C++ SDL学习之路 2nd —— 第一个显示图片的SDL程序
- PAT 乙等 1030 完美数列
- 我的项目自述