美文网首页
0317-sql数据类型

0317-sql数据类型

作者: 小咕咕coco | 来源:发表于2020-03-17 21:54 被阅读0次

小数值:float/double/decimal:
http://blog.leanote.com/post/weibo-007/mysql_float_double_decimal
日期/时间:
https://www.cnblogs.com/Jie-Jack/p/3793304.html

对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出。

关于时间戳的使用:
https://blog.csdn.net/dreamer2020/article/details/51794458

用法
## 在表中定义一个timestamp类型的字段,如下所示:
create table test(
    id integer primary key auto_increment,
    name varchar(256) not null,
    createdAt timestamp default current_timestamp on update current_timestamp
);
createdAt字段被定义为timestamp类型,而且默认值是当前时间戳,当记录发生更新时,该字段同时会更新为当前时间戳。timestamp等于是提供了对一条对数据自身修改时间的记录。 
依据不同的场景,一般timestamp会有几类用法:

## 在记录创建和修改时都刷新
参见上面的例子,在sql语句上,要同时注明default字段和on update字段。
createdAt timestamp default current_timestamp on update current_timestamp

## 只在记录创建时刷新时间,以后修改时不再刷新
如下所示,在定义字段时删去on update语句。
createdAt timestamp default current_timestamp

(就是extra字段

字符串:
https://www.cnblogs.com/xrq730/p/8446246.html
(这是一个整体数据类型的整理贴

  1. char/varchar/binary
mysql的binary、char、varchar区别:
binary:
保存二进制字符串,它保存的是字节而不是字符,没有字符集限制。
binary(8)可以保存8个字符,每个字符占1个字节,共占8个字节
进行比较时是按字节进行比较,而不是按字符(char),按字节比较比字符简单快速.
按字符比较不区分大小写,而binary区分大小写
char:
使用固定长度的空间进行存储,char(4)存储4个字符,根据编码方式的不同占用不同的字节,
gbk编码方式,不论是中文还是英文,每个字符占用2个字节的空间,utf8编码方式,每个字符占用3个字节的空间.
如果需要存储的字符串的长度跟所有值的平均长度相差不大,适合用char,如MD5
对于经常改变的值,char优于varchar,原因是固定长度的行不容易产生碎片
对于很短的列,char优于varchar,原因是varchar需要额外一个或两个字节存储字符串的长度
varchar:
保存可变长度的字符串,使用额外的一个或两个字节存储字符串长度,varchar(10),除了需要存储10个字符,还需要1个字节存储长度信息(10),超过255的长度需要2个字节来存储
char和varchar后面如果有空格,char会自动去掉空格后存储,varchar虽然不会去掉空格,但在进行字符串比较时,会去掉空格进行比较

注意指定的n是显示长度,存储的长度都是各自有规定的
  1. varchar/text/blob
text和blob两种数据类型,它们的设计初衷是为了存储大数据使用的,因为之前说了,MySql单行最大数据量为64K(varchar的65535字节)。

先说一下text,text和varchar是一组既有区别又有联系的数据类型,其联系在于当varchar(M)的M大于某些数值时,varchar会自动转为text:

M>255时转为tinytext
M>500时转为text
M>20000时转为mediumtext
所以过大的内容varchar和text没有区别,同事varchar(M)和text的区别在于:

单行64K即65535字节的空间,varchar只能用63352/65533个字节,但是text可以65535个字节全部用起来
text可以指定text(M),但是M无论等于多少都没有影响
text不允许有默认值,varchar允许有默认值
varchar和text两种数据类型,使用建议是能用varchar就用varchar而不用text(存储效率高),varchar(M)的M有长度限制,之前说过,如果大于限制,可以使用mediumtext(16M)或者longtext(4G)。

至于text和blob,简单过一下就是text存储的是字符串而blob存储的是二进制字符串,简单说blob是用于存储例如图片、音视频这种文件的二进制数据的。

相关文章

  • 0317-sql数据类型

    小数值:float/double/decimal:http://blog.leanote.com/post/wei...

  • JAVA 之路第一讲

    数据类型: 基础数据类型 包装器数据类型 引用数据类型 null 数据类型 基础数据类型: 整型 byte(字节型...

  • php 数据类型和数据类型转化

    一、数据类型 基础数据类型 复合数据类型 特殊数据类型 二、获取数据类型 三、打印数据类型和值 四、数据类型判断 ...

  • OC和C中的数据类型

    数据类型对比 C语言数据类型C语言数据类型 OC数据类型

  • JAVA 核心笔记 || [2] 数据类型

    JAVA数据类型分为两大数据类型: 1.内置数据类型2.引用数据类型 内置数据类型 引用数据类型 上篇 : 开篇 ...

  • 数据类型

    数据类型作用:数据类型不同,空间大小不同。 数据类型分类:基本数据类型、引用数据类型基本数据类型:整数型、浮点型、...

  • Java知识之数据类型

    Java数据类型图表## Java数据类型分为:### 基础数据类型 引用数据类型 null类型 基础数据类型分別...

  • JAVA基础第四天

    JAVA数据类型---布尔类型; 数据类型转换自动数据类型转换 强制数据类型转换

  • Java数据类型(慢慢积累,对于事物的理解也会不一样)

    Java的数据类型: 1. 内置数据类型(基本数据类型); 2. 引用数据类型; Java基本数据类型:(...

  • 【IOS 开发】 数据类型详解

    1. 数据类型简介及输出 (1) 数据类型简介 数据类型简介: Object - C 数据类型 分为 基本数据类型...

网友评论

      本文标题:0317-sql数据类型

      本文链接:https://www.haomeiwen.com/subject/aoxxyhtx.html