-
在mysql中不存在的数据类型_mysql中的数据类型
2021-01-19 23:12:521 整型2 定点型 decimal, numeric, 在mysql中以binary形式储存,用于精确存储数值。decimal(m,n): m为最大有效位数(不超过65,默认为10),用于控制数值的精度,n为最大小数位数3 浮点型 float(4 bytes), double(8...1 整型
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';
-
在mysql中不存在的数据类型是_Mysql中的数据类型
2021-01-21 02:00:441.实践经验部分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之MYSQL中的数据类型
2020-11-13 10:32:40文章目录数值型字符串型日期时间型Mysql中的注释用 # 或者 -- 数值型 整数型: 浮点型: 字符串型 ...TEXT列不能有默认值,检索的时候不存在大小写转换 日期时间型 Mysql中的注释用 # 或者 – ... -
mysql视图数据没有更新数据类型_mysql 视图的数据刷新存在延迟
2021-01-21 14:53:37问题描述请问一下各位大佬,我在一个请求中更新了一个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列不能有默认值,检索的时候不存在大小写转换 日期时间类型 二进制类型 ... -
int类型存小数 mysql_mysql中慎用float数据类型
2020-12-24 20:18:56今天有同学反映,从idb查出来的数据,是以科学计数方式显示的,所以在此需要确认下是idb显示的问题,还是db存储的问题,如果是db存储的时候就是float类型(科学计数),那么可能存在数据不准确的问题,建议用int或者... -
mysql 数据类_MySQL数据类型
2021-01-18 23:12:59四、字符串类型在MySQL中,字符串类型包括CHAR、VARCHAR、BLOB、TEXT、ENUM、...另外,由于MySQL在建库时就指定了字符集,因此就不存在nchar、nvarchar、ntext这种数据类型了。char最长可取255;varchar最长可取6553... -
mysql number float_mysql中慎用float数据类型
2021-02-02 15:11:13今天有同学反映,从idb查出来的数据,是以科学计数方式显示的,所以在此需要确认下是idb显示的问题,还是db存储的问题,如果是db存储的时候就是float类型(科学计数),那么可能存在数据不准确的问题,建议用int或者... -
MySQL数据类型不一致_java向mysql插入时间类型的数据,取出后跟插入前的值不一致...
2021-01-28 03:39:27我在java程序中,使用了mybatis框架,当使用java向mysql中插入时间类型的数据后,然后取出这个数据,发现取出的数据跟插入前的数据不一致了,例如,我插入数据库前的时间类型的属性转为long类型的数值为... -
对MySQL中JSON数据类型的操作和分析
2017-08-15 21:34:32JSON作为以键值对为主的存储形式,符合很多业务场景,尤其对于python中dict字典数据类型,能直接相互转换,更加适应了python...这里本文先列举MySQL中对一些JSON数据类型的常用语句和函数(参考MySQL官方文档,建议大家 -
Mysql中数据类型括号中的数字代表的含义
2019-04-07 14:17:34首先我们先来讲讲字符和字节的概念。 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。...字符和字节不存在绝对的关系,只是在不同的编码格式里... -
mysql 数据类型 image_mysql基本数据类型和引擎
2021-02-07 18:54:29声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员...在mysql中存在着引擎,通俗来说引擎就是对于我们数据库里面数据进行的管理方案。mysql里有六种引... -
mysql 一对多更新数据类型_MYSQL 一对多的关联表的数据更新问题
2021-01-19 05:26:531.更新article的时候,更新关联表的时候,把关联表中的数据全部删除,在重新写入新的关联数据。这个比较安全,但是弊端是,每次更新文章,都要对关联表进行删除又写入数据,造成浪费,而且如果这个关联表存在多个... -
redis和mysql数据不一致_Redis和MySQL数据一致中出现的几种情况
2021-01-27 05:24:01不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis处理不同的数据... -
mysql base64数据类型_mysql – 将base64编码的数据存储为BLOB或TEXT数据类型
2021-02-04 19:14:25如果您不希望MySQL将数据视为文本执行,则不会在存储和连接字符集(如果适用)之间进行字符转换,也不会对每个排序规则进行字符等效/排序,那么您可能会处理属于的二进制数据在BLOB列中.使用Base64,底层数据可能是二进制... -
mysql表字段类型长度_mysql数据表字段的类型和长度
2021-01-19 03:12:17在代码里"零长度字符串"用一对没有间隔的英文引号''表示,它的数据类型是明确的即属于字符型,存储"零长度字符串"是要占用物理磁盘空间的;而null值其数据类型是未知的,它不会占用物理磁盘空间。在不存在约束限制的... -
mysql忽略数据类型_Mysql:整型数据类型详解,其中有一个知识点是我们比较容易忽略的...
2021-02-08 08:58:01在翻看老的数据表设计时,发现一个问题:数据表结构中存在 bigint(20) 类型的字段,但是 Java 中 Long 的最大值为 9223372036854775807,总共 19 位长度,那么问题来了,bigint(20) 的数据类型设计是否会造成 Java ... -
mysql 有十进制类型吗_使用十进制数据类型(MySQL / Postgres)是否存在性能问题
2021-01-19 13:59:17帕维尔说得对,我只想解释一下.假设您的意思是与浮点或固定点偏移量整数相比较的性能影响(即,将百分之一百分之一作为整数...如果您在数据库中没有做很多计算,则影响仅限于BCD与整数或浮点相比所需的更大的存储空间,因... -
mysql 范式化_Mysql范式与数据类型选择
2021-01-18 23:13:25良好的逻辑设计与物理设计是高性能的基石,当我们在设计数据表结构的时候,应该跟根据业务逻辑来分析具体情况,然后设计出比较合理,高效的数据表结构在数据表结构设计中,不得不提的就是范式与数据类型了Mysql三... -
mysql 字段类型转换导致查询不到部分数据问题
2019-11-15 10:47:57使用where条件检索数据库中某个字段,如果where条件存在类型转换,有一定几率会查询不到该条数据,该条数据确实在数据库中存在 查询字段类型是varchar类型,内容都是数字 查询时使用整型查询(查询条件的值不带引号... -
MySQL中的数据完整性约束
2017-04-07 00:55:16预备阅读:MySQL中常用的数据类型 MySQL中表的操作 前言 前面已经学习了常用数据类型和表的操作,其中表的操作中提到了数据完整性约束条件,今天来详细说一下各种完整性约束条件。 关系模型的完整性规则是对关系... -
mysql 复合数据类型_Oracle--plsql复合数据类型
2021-02-07 16:34:13Oracle--plsql复合数据类型,复合组合变量也叫做...复合变量类型不是数据库中已经存在的数据类型,因此复合变量在声明类型之前,首先要先创建复合类型,复合类型创建后可以多次使用,以便定义多个复合变量。复合数... -
mysql基本数据类型和引擎
2017-12-14 21:54:36声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员...在mysql中存在着引擎,通俗来说引擎就是对于我们数据库里面数据进行的管理方案。mysql里有六种引擎 -
先访问redis再访问mysql_Redis和MySQL数据一致中出现的几种情况
2021-01-18 21:50:47不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis处理不同的数据... -
Mysql 数据文件类型解析
2014-12-17 15:15:31在mysql 中每一个数据库都会在定义好的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。不同的Mysql 存储引擎有各自不同的数据文件,存放的位置也有区别。多数存储引擎的数据文件都... -
mysql datatime 2 年份_MySQL数据类型 - 日期和时间类型(3)
2021-02-01 15:07:101.时间值中的小数秒MySQL 的TIME、DATETIME和TIMESTAMP类型的值都支持小数秒,精度高达微秒(6位):●要定义包含小数秒部分的列,请使用语法type_name(fsp),其中type_name是TIME、DATETIME或TIMESTAMP,fsp是小数秒... -
mongo查询mysql数据类型_MongoDB-基本使用及数据类型
2021-01-21 13:09:03一 , 基本使用show dbs 查看所有存在磁盘...表名 创建表******如果使用了不存在的对象,那么会在内存中创建该对象,添加了数据后才可以用命令查到******二 , 数据类型Object ID :Documents 自生成的 _id1 "_id" : Obj... -
mysql schema 保存数据_在MySQL中,所有触发器的定义都保存在information_schema数据库下的()表中。...
2021-02-01 18:30:08【判断题】连续选择边线创建倒角时,不能单独修改某一边线的倒角大小【判断题】创建筋特征时截面必须是闭和的【填空题】Hibernate 的会话接口同时又是一个工厂类型:创建一个 HQL 查询接口的方法是 createQuery ,创建... -
mysql blob hibernate_Hibernate保存Blob和Clob类型的数据
2021-01-19 00:38:16虽然非常不建议在数据库中保存Blob和Clob类型的数据,但真的要有这样的需求呢?这里记录一下使用Hibernate如何向数据库中保存Blob和Clob数据。Oracle和MySql在Blob类型上没什么区别,但是Mysql没有Clob类型,...