数据库的数据类型
Posted jianhaozhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的数据类型相关的知识,希望对你有一定的参考价值。
数据存储引擎
涉及到数据存储的代码,我们称之为数据引擎
mysql中支持多种数据引擎
查看mysql中所有支持的数据引擎的语法是
show engines;
在mysql中默认的搜索引擎为InnoDB
创建表的完整语句
create table 表名(字段名 数据类型[(长度) 约束条件])
其中[]中的可以不填写,不填写时表示使用有默认值.
提示:其中的长度表示的是显示的长度,如果超过该长度,就会丢弃超过的部分
数据类型
整型
数据类型 tinyint smallint mediumint int bigint
字节数 1 2 3 4 8
1 默认情况下整型有符号,需一个二进制来存符号
2 给整型加上约束条件 unsigned 来表示无符号
3 如果数据超过范围,超出部分就会丢弃
以上特征的出现是因为mysql处于非严格模式
查看当前的模式 show variables like "sql_mode";
修改为默认模式 set global sql_mode = "STRICT_TRANS_TABLES";
长度限制对于整型的意义:
1 长度限制的是显示的宽度
2 如果你的数据超过了显示的宽度,就会舍弃掉超出的部分
3 若不足mysql会自动的用空格补全也可以用0补全语法为:
create table 表名(id int(5) zerofill);
浮点型
数据类型 float double decimal
字节数 4 8 手动指定
相同点:小数部分最大长度都是30,float和double整体最大长度255
不同点:decimal的整体最大长度是65,float和double都是不准确的,而decimal是准确的
给浮点型设置宽度:
例如:
float(m,n)
m表示的是整体的长度
n表示的是小数部分的长度
字符型
char 定长字符
varchar 变长字符
char 无论你存储的数据有多长,占用的容量都一样
varchar 存储的数据有多长就占用多长
由于是可变的,存入硬盘中,无法知道数据的开头和结尾,所以会在数据的头加一位置用于存储数据的长度信息
能支持的最大长度是65535,用于数据长度信息的数据为最大占2个字节
char和varchar的优缺点:
char:
存取效率高
浪费空间
varchar:
存取效率低
节省空间
模糊查询:
select * from 表名 where 字段like "张%"
%任意个数的任意字符
_1个任意字符
大文本类型
TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT 文本是带有编码
BLOB 系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB 也是字符数据 但是不带编码
二进制类型: 用于存储多媒体数据 比如视频 但是我们一般不会将多媒体数据存到数据 而是存储文件路径地址
BINARY系列 BINARY VARBINARY 存储二进制数据
时间:
time 时分秒 HH:MM:SS
year 年份
date 年月日 Y-M-D 是字符串形式
datetime 日期加时间 年份最大是9999
timestamp 时间戳 年份最大是2037 当插入为null时,会自动插入当前的时间,当更新数据时,会自动的更新当前的时间
datetime和timestamp都可以用now()来获取当前的时间
枚举
用于描述一个已知范围的数据 例如性别等
enum("man","woman","other")
1 枚举中的值只能是字符串
2 添加的数据只能是已经出现在枚举中的值
3 你也可以使用枚举值的序号来插入值
集合
用于描述一堆数据 比如你的兴趣爱好
set("watch movie","listen music","play")
以上是关于数据库的数据类型的主要内容,如果未能解决你的问题,请参考以下文章
1.19.6.数据类型数据类型列表结构化的数据类型其他数据类型数据类型注解