精华内容
下载资源
问答
  • 1 整型2 定点型 decimal, numeric, 在mysql中以binary形式储存,用于精确存储数值。decimal(m,n): m为最大有效位数(超过65,默认为10),用于控制数值精度,n为最大小数位数3 浮点型 float(4 bytes), double(8...

    1 整型

    4c90a1a55baf1d3196300d996cde9e01.png

    2 定点型 decimal, numeric, 在mysql中以binary形式储存,用于精确存储数值。

    decimal(m,n): m为最大有效位数(不超过65,默认为10),用于控制数值的精度,n为最大小数位数

    3 浮点型 float(4 bytes), double(8bytes) , 用于近似存储数值。

    float(m,n): m为最大有效位数(0-23), n为最大小数位数

    double(m, n):m为最大有效位数(24-53), n为最大小数位数

    但是这里的m并不能用于控制精度,而是用于确定存储空间的大小(是float还是double).

    为了保持最大的可移植性,一般最好不要对m和n进行限制。

    4 日期时间类型

    date: mysql默认以'YYYY-MM-DD'格式展现date数据, 有效范围是'1000-01-01'到'9999-12-31'

    datetime: 默认展现格式'YYYY-MM-DD HH:MM:SS[.fraction]', 有效范围'1000-01-01 00:00:00.000000'到'9999-12-31 23:59:59.999999',最高时间精度可以到微秒(6位小数)

    timestamp: 有效范围'1970-01-01 00:00:01.000000'到'2038-01-19 03:14:07.999999', timestamp会将当地时间转化成UTC进行存储,然后再转化成当地时间进行展示,默认当前时区为服务器所在时区。

    注:

    1. mysql会将无效的date, datetime, timestamp 所有位都置零进行保存。

    2. 2位年份转化为4位的规则:00-69==》2000-2069;70-99==》1970-1999;

    time: 默认展现为'HH:MM:SS[.fraction]'或者'HHH:MM:SS[.fraction]'格式, 有效范围为'-838:59:59'到'838:59:59'。大的时间主要用于表征事件的时间差。

    注意:'1234'表示'00:12:34', '12:34'表示'12:34:00'

    year:占1byte。 可以限定为year(4)(有效范围:1901to2155)和year(2)(有效范围:1970-2069)

    注意:'00'在year(2)和year(4)中代表的分别是2000和0000.

    非法年份会记录成0000.

    年份可以为'1999',也可以为数字1999.

    年份可以用now()返回值赋值。

    5 字符串类型

    char(m): 定长字符串,m取值范围0-255

    varchar(m): 变长字符串,m为字符串的最大长度,取值范围0-65535。 varchar在字符串前会有1-2bytes的长度前缀,用于标记可变字符串的长度。

    注意:1. 对于过长的字符串,varchar类型会在插入前截断,并且输出警告, char 类型直接截断无反馈。

    2. char类型读取时会截断尾部空白字符,而varchar不会

    3. 除了模式匹配外,mysql中的字符串比较都是忽略尾部空白字符的。

    6 二进制类型

    bit(m): 用于存储二进制值,m为最大二进制位数(1-64)。赋值可以用b'value', 例如 b'10001000'等等。

    binary(m): 类似char,但是其存储的是二进制字符串,而没有包含字符集,因此所有的排序比较都是根据二进制代表的数值来进行的。m为最大可储存的byte数, 0<=m<=255.

    varbinary: 类似varchar, m<65535, 其实际所占空间为存入的内容长度+1或者2.

    注意:1. binary插入数据时,位数不足会用ox00在最右边填充, 而varbinary没有填充。

    2. binary没有字符集和字符规则,而char binary存储的是普通字符串通过二进制规则进行存储,这二者是不一样的。

    blob (TINYBLOB-2^8+1bytes,BLOB-2^16+1bytes,MEDIUMBLOB-2^24+2bytes, andLONGBLOB-2^32+2bytes):blob是binary large object.

    text (TINYTEXT-2^8+1bytes,TEXT-2^16+1bytes,MEDIUMTEXT-2^24+2bytes, andLONGTEXT-2^32+2bytes):

    注意:blob和text的存取无填充无截断。

    enum:可取的选项数小于65535, 实际操作中一般不多于3000.

    1. 索引从1开始

    2. 插入enum中的字符串如果不存在与选项中,则会插入空字符串,索引为0.

    3. 如果enum列可以为空,则默认为空,否则默认为第一个索引的值。

    4. enum的排序是根据索引值来进行的。如果要按字母顺序表来进行,则 要使用ORDER BY CAST(colAS CHAR)

    5. enum的内容只能通过常量来建立

    set: 最多可以有64个不同的成员

    1. 重复的成员会导致警告,或者报错(strict mode)

    2. 自动删除结尾空白

    3. set以数值存储。每个成员代表一个bit位,若以数值返回成员则分别为1, 2, 4, 8......

    4. 插入数据时,每个成员都只计入一次

    5. 查询, 使用find_in_set或者like, 例如:

    mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;

    mysql> SELECT * FROM tbl_name WHERE set_col LIKE '%value%';

    也可以查找索引和多个成员, 如:

    mysql> SELECT * FROM tbl_name WHERE set_col & 1;

    mysql> SELECT * FROM tbl_name WHERE set_col = 'val1,val2';

    展开全文
  • 1.实践经验部分Oracle--->mysqlNUMBER(12)--->INT(12)NUMBER(12,2)--->DECIMAL(12,2)或FLOAT(12,2)或DOUBLE(12,2)VARCHAR2--->...DATE(或DATETIME)Oracle:long可以存储2G大小字符,clob可以...

    1.实践经验部分

    Oracle--->mysql

    NUMBER(12)--->INT(12)

    NUMBER(12,2)--->DECIMAL(12,2)或FLOAT(12,2)或DOUBLE(12,2)

    VARCHAR2--->VARCHAR

    CLOB--->BLOB DATE--->DATE(或DATETIME)

    Oracle中:long可以存储2G大小字符,clob可以存储4G大小字符(CLOB:4GB的字符数据 )

    Mysql中:BLOB,二进制字符串变量;2 + 实际字符串长度,存储二进制数据 ,例如:图片,附件,二进制文档 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    2.百度部分: CHAR (M):CHAR数据类型用于表示M长度的字符串。 VARCHAR (M):VARCHAR可以保存可变长度的字符串, VARCHAR数据类型所支持的最大长度也是255个字符。 INT (M) [Unsigned]:INT数据类型用于保存从- 2147483647 到2147483648范围之内的任意整数数据。如果用户使用Unsigned选项,则有效数据范围调整为0-4294967295。 FLOAT [(M,D)]:FLOAT数据类型用于表示数值较小的浮点数据,可以提供更加准确的数据精度。其中,M代表浮点数据的长度(即小数点左右数据长度的总和),D表示浮点数据位于小数点右边的数值位数。 DATE:DATE数据类型用于保存日期数据,默认格式为YYYY-MM-DD。 TEXT / BLOB:TEXT和BLOB数据类型可以用来保存255 到65535个字符,TEXT不区分大小写,而BLOB对字符的大小写敏感。 SET:SET数据类型是多个数据值的组合,任何部分或全部数据值都是该数据类型的有效数据。SET数据类型最大可以包含64个指定数据值。 ENUM:ENUM数据类型和SET基本相同,唯一的区别在于ENUM只允许选择一个有效数据值。 Text 类型: 数据类型 描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255个字符。 VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255个字符。注释:如果值的长度大于255 ,则被转换为TEXT类型。 TINYTEXT 存放最大长度为255个字符的字符串。 TEXT 存放最大长度为65,535个字符的字符串。

    TINYTEXT 存放最大长度为255个字符的字符串。 TEXT 存放最大长度为65,535个字符的字符串。 BLOB 用于BLOBs (Binary Large OBjects) 。存放最多65,535 字节的数据。 MEDIUMTEXT 存放最大长度为 16,777,215个字符的字符串。 MEDIUMBLOB 用于BLOBs (Binary Large OBjects) 。存放最多16,777,215 字节的数据。 LONGTEXT 存放最大长度为4,294,967,295个字符的字符串。 LONGBLOB 用于BLOBs (Binary Large OBjects) 。存放最多4,294,967,295 字节的数据。 ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在ENUM列表中列出最大65535个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z') SET 与ENUM类似,SET最多只能包含64个列表项,不过SET可存储一个以上的值。 Number 类型: (*这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED属性,那么范围将从0开始,而不是某个负数。 ) 数据类型 描述 TINYINT(size) -128 到127 常规。0到255 无符号*。在括号中规定最大位数。 SMALLINT(size) -32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。 MEDIUMINT(size) -8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位 数。 INT(size) -2147483648 到2147483647 常规。0到4294967295 无符号*。在括号中规定最大位数。 BIGINT(size) -9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。 FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。 DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。 DECIMAL(size,d) 作为字符串存储的DOUBLE类型,允许固定的小数点。 Date 类型: (*即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD 。) 数据类型 描述 DATE() 日期。格式:YYYY-MM-DD 。注释:支持的范围是从'1000-01-01' 到'9999-12-31' DATETIME() *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS 。注释:支持的范围是从'1000-01-01 00:00:00' 到'9999-12-31 23:59:59' TIMESTAMP() *时间戳。TIMESTAMP值使用Unix纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 。注释:支持的范围是从'1970-01-01 00:00:01' UTC 到'2038-01-09 03:14:07' UTC TIME() 时间。格式:HH:MM:SS 。注释:支持的范围是从'-838:59:59'到'838:59:59' YEAR() 2 位或 4 位格式的年。 注释:4 位格式所允许的值:1901 到2155。2 位格式所允许的值:70到69 , 表示从1970到2069。

    展开全文
  • 文章目录数值型字符串型日期时间型Mysql中的注释用 # 或者 -- 数值型 整数型: 浮点型: 字符串型 ...TEXT列不能有默认值,检索时候不存在大小写转换 日期时间型 Mysql中的注释用 # 或者 – ...

    数值型

    整数型:
    在这里插入图片描述
    浮点型:

    在这里插入图片描述

    字符串型

    在这里插入图片描述

    CHAR效率高于VARCHAR,CHAR相当于拿空间换时间,VARCHAR拿时间换空间

    CHAR默认存储数据的时候,后面会用空格填充到指定长度;而在检索的时候会去掉后面空格;VARCHAR在保存的时候不进行填充,尾部的空格会留下

    TEXT列不能有默认值,检索的时候不存在大小写转换

    日期时间型

    在这里插入图片描述

    Mysql中的注释用 # 或者 –

    展开全文
  • 问题描述请问一下各位大佬,我一个请求更新了一个mysql的数据,请求结束以后立马另一个请求查询包含这个表的视图,会查到修改之前的旧数据,请求一次才能查到新的数据了,而且不是每次都会出现这种情况...

    问题描述

    请问一下各位大佬,我在一个请求中更新了一个mysql表的数据,请求结束以后立马在另一个请求中查询包含这个表的视图,会查到修改之前的旧数据,在请求一次才能查到新的数据了,而且不是每次都会出现这种情况。select h.*,i.staff_name person_name from (SELECT

    a.ec_id AS ec_id,

    a.region_id AS region_id,

    e.region_name AS region_name,

    a.production_process_id as production_process_id,

    a.production_process_name as production_process_name,

    a.production_process_type as production_process_type,

    g.entry_name as production_process_type_name,

    a.entity_id AS entity_id,

    a.create_time as create_time,

    a.create_id as create_id,

    a.status as status,

    max(IF ((d.tag = 'BeginTime'),b.attr_value,NULL)) AS begin_time,

    max(IF ((d.tag = 'EndTime'),b.attr_value,NULL)) AS end_time,

    max(IF ((d.tag = 'Person'),b.attr_value,NULL)) AS person,

    max(IF ((d.tag = 'Event'),b.attr_value,NULL)) AS event

    FROM erp_production_process a

    LEFT JOIN (select * from entity_attr_value where inure_time <= now() and expire_time >now()) b on b.instance_id = a.production_process_id

    left join entity_attr_cfg c on c.attr_id = b.attr_id and c.entity_id = a.entity_id

    left join entity_attr_lib d on d.attr_id = b.attr_id

    left join ec_produce_region e on e.region_id = a.region_id,

    dict_def g

    WHERE g.dict_type = 2003

    and g.dict_class = 1003

    and g.entry_id = a.production_process_type

    GROUP BY

    a.ec_id ,

    a.production_process_id ,

    a.production_process_name ,

    a.production_process_type ,

    g.entry_name ,

    a.entity_id ,

    a.create_time ,

    a.create_id ,

    a.status )h

    left join ec_staff i on i.staff_id = h.person

    ;

    问题出现的环境背景及自己尝试过哪些方法

    我的项目是用spring-boot+mybatis开发的

    展开全文
  • MYSQL中的数据类型

    2020-07-10 16:53:55
    整数型 浮点型 字符串类型 CHAR效率高于VARCHAR,CHAR相当于拿空间换时间,VARCHAR拿时间换空间 ...TEXT列不能有默认值,检索时候不存在大小写转换 日期时间类型 二进制类型 ...
  • 今天有同学反映,从idb查出来的数据,是以科学计数方式显示的,所以此需要确认下是idb显示的问题,还是db存储的问题,如果是db存储的时候就是float类型(科学计数),那么可能存在数据准确的问题,建议用int或者...
  • 四、字符串类型在MySQL中,字符串类型包括CHAR、VARCHAR、BLOB、TEXT、ENUM、...另外,由于MySQL在建库时就指定了字符集,因此就不存在nchar、nvarchar、ntext这种数据类型了。char最长可取255;varchar最长可取6553...
  • 今天有同学反映,从idb查出来的数据,是以科学计数方式显示的,所以此需要确认下是idb显示的问题,还是db存储的问题,如果是db存储的时候就是float类型(科学计数),那么可能存在数据准确的问题,建议用int或者...
  • java程序中,使用了mybatis框架,当使用java向mysql中插入时间类型的数据后,然后取出这个数据,发现取出的数据跟插入前的数据不一致了,例如,我插入数据库前的时间类型的属性转为long类型的数值为...
  • MySQL中JSON数据类型的操作和分析

    万次阅读 2017-08-15 21:34:32
    JSON作为以键值对为主存储形式,符合很多业务场景,尤其对于python中dict字典数据类型,能直接相互转换,更加适应了python...这里本文先列举MySQL中对一些JSON数据类型的常用语句和函数(参考MySQL官方文档,建议大家
  • 首先我们先来讲讲字符和字节概念。 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量一种计量单位。...字符和字节不存在绝对关系,只是不同编码格式里...
  • 声明:本栏目所使用素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员...在mysql中存在着引擎,通俗来说引擎就是对于我们数据库里面数据进行管理方案。mysql里有六种引...
  • 1.更新article的时候,更新关联表的时候,把关联表中的数据全部删除,重新写入新的关联数据。这个比较安全,但是弊端是,每次更新文章,都要对关联表进行删除又写入数据,造成浪费,而且如果这个关联表存在多个...
  • 要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis处理不同的数据...
  • 如果您希望MySQL数据视为文本执行,则不会存储和连接字符集(如果适用)之间进行字符转换,也不会对每个排序规则进行字符等效/排序,那么您可能会处理属于二进制数据在BLOB列.使用Base64,底层数据可能是二进制...
  • 代码里"零长度字符串"用一对没有间隔的英文引号''表示,它的数据类型是明确的即属于字符型,存储"零长度字符串"是要占用物理磁盘空间的;而null值其数据类型是未知的,它不会占用物理磁盘空间。在不存在约束限制的...
  • 翻看老的数据表设计时,发现一个问题:数据表结构中存在 bigint(20) 类型的字段,但是 Java Long 的最大值为 9223372036854775807,总共 19 位长度,那么问题来了,bigint(20) 的数据类型设计是否会造成 Java ...
  • 帕维尔说得对,我只想解释一下.假设您意思是与浮点或固定点偏移量整数相比较性能影响(即,将百分之一百分之一作为整数...如果您数据库没有做很多计算,则影响仅限于BCD与整数或浮点相比所需更大存储空间,因...
  • 良好的逻辑设计与物理设计是高性能的基石,当我们设计数据表结构的时候,应该跟根据业务逻辑来分析具体情况,然后设计出比较合理,高效的数据表结构数据表结构设计,不得提的就是范式与数据类型Mysql三...
  • 使用where条件检索数据库某个字段,如果where条件存在类型转换,有一定几率会查询到该条数据,该条数据确实数据库中存在 查询字段类型是varchar类型,内容都是数字 查询时使用整型查询(查询条件带引号...
  • MySQL中的数据完整性约束

    千次阅读 2017-04-07 00:55:16
    预备阅读:MySQL中常用的数据类型  MySQL中表的操作 前言 前面已经学习了常用数据类型和表的操作,其中表的操作中提到了数据完整性约束条件,今天来详细说一下各种完整性约束条件。 关系模型的完整性规则是对关系...
  • Oracle--plsql复合数据类型,复合组合变量也叫做...复合变量类型不是数据库已经存在的数据类型,因此复合变量声明类型之前,首先要先创建复合类型,复合类型创建后可以多次使用,以便定义多个复合变量。复合数...
  • 声明:本栏目所使用素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员...在mysql中存在着引擎,通俗来说引擎就是对于我们数据库里面数据进行管理方案。mysql里有六种引擎
  • 要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis处理不同的数据...
  • Mysql 数据文件类型解析

    千次阅读 2014-12-17 15:15:31
    在mysql 每一个数据库都会在定义好的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库各种表数据文件。不同的Mysql 存储引擎有各自不同的数据文件,存放的位置也有区别。多数存储引擎的数据文件都...
  • 1.时间值中的小数秒MySQL TIME、DATETIME和TIMESTAMP类型的值都支持小数秒,精度高达微秒(6位):●要定义包含小数秒部分列,请使用语法type_name(fsp),其中type_name是TIME、DATETIME或TIMESTAMP,fsp是小数秒...
  • 一 , 基本使用show dbs 查看所有存在磁盘...表名 创建表******如果使用了不存在的对象,那么会内存创建该对象,添加了数据后才可以用命令查到******二 , 数据类型Object ID :Documents 自生成的 _id1 "_id" : Obj...
  • 【判断题】连续选择边线创建倒角时,能单独修改某一边线倒角大小【判断题】创建筋特征时截面必须是闭和【填空题】Hibernate 会话接口同时又是一个工厂类型:创建一个 HQL 查询接口方法是 createQuery ,创建...
  • 虽然非常建议数据库保存Blob和Clob类型的数据,但真的要有这样的需求呢?这里记录一下使用Hibernate如何向数据库保存Blob和Clob数据。Oracle和MySql在Blob类型上没什么区别,但是Mysql没有Clob类型,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 414
精华内容 165
关键字:

在mysql中不存在的数据类型

mysql 订阅