首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据类型选择「建议收藏」

---- 1.字符串类型 类型 大小 用途 CHAR 0-255字节 定长字符串,char(n)当插入的字符串实际长度不足n时,插入空格进行补充保存。...建议用DATE数据类型来保存日期。MySQL中默认的日期格式是yyyy-mm-dd。 用MySQL的内建类型DATE、TIME、DATETIME来存储时间,而不是使用字符串。...当数据格式为TIMESTAMP和DATETIME时,可以用CURRENT_TIMESTAMP作为默认(MySQL5.6以后),MySQL会自动返回记录插入的确切时间。...在查询数据时,不管查询结果为何值,都按实际输出。...这里TINYINT(2)中2的作用就是,当需要在查询结果前填充0时,命令中加上ZEROFILL就可以实现,如: `id` TINYINT(2) UNSIGNED ZEROFILL 这样,查询结果如果是5

84730

【MySQL笔记】数字类型、时间和日期类型、字符串类型

当浮点数类型使用unsigned修饰为无符号时,取值范围将不包括负数。 注意:float的精度为6位或7位,double的精度大约为15位。...我们会发现,当插入的小数部分超出范围时,会四舍五入,当插入的小数部分四舍五入导致整数部分进位时,会插入失败。...注意:当使用YEAR类型时,一定要区分’0’和0。因为字符串格式的’0’表示YEAR值是2000,而数字格式的0表示的YEAR值是0000。...DATE类型 DATE类型用于表示日期值,不包含时间部分,可以使用以下4种格式指定DATE类型的值 1、以'YYYY-MM-DD'或者'YYYYMMDD'字符串格式表示。...注意:在查询BINARY类型时,查询条件字符串需要加上“\0”填充符,否则查询不到该记录 BLOB类型 BLOB类型用于保存数据量很大的二进制数据,如图片、PDF文档等。

4.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL中的数据类型_js中的数据类型

    定点数在MySQL内部是以 字符串 的形式进行存储,这就决定了它一定是精准的。 当DECIMAL类型不指定精度和标度时,其默认为DECIMAL(10,0)。...使用SELECT命令查询位字段时,可以用 BIN() 或 HEX() 函数进行读取。 可以看到,使用b+0查询数据时,可以直接查询出存储的十进制数据的值。...当取值为01到69时,表示2001到2069; 当取值为70到99时,表示1970到1999; 当取值整数的0或00添加的话,那么是0000年; 当取值是日期/字符串的’0’添加的话,是2000年 从MySQL5.5.27...以 YY-MM-DD 格式或者 YYMMDD 格式表示的字符串日期,此格式中,年份为两位数值或字符串满足YEAR类型的格式条件为:当年份取值为00到69时,会被转化为2000到2069;当年份取值为70...其所需要的存储空间由定义ENUM类型时指定的成员个数决定 当ENUM类型包含1~255个成员时,需要1个字节的存储空间; 当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。

    6.7K20

    MySQL数据库结构设计

    如果将stu_id设置为非空,会造成异常。 更新异常就是当更新某一个课程的学分时,那么这一门科目的选课记录都将要更新。 删除异常就是当删除某一个课程时,那么这一门科目的选课记录都要删除。...当我们为表进行物理设计时,常常为对表中的字段选择合适的数据类型进行纠结。当一个列可以选择多种数据类型时,应该优化考虑数字类型,其次是日期或者二进制类型,最后是字符串类型。...下面我们就以字符串和日期类型为例,讲一讲。 varchar和char中宽度的定义是字符长度。 varchar用于存储变长字符串,只占用必要的存储空间,最多65535。...时间范围为1000-01-01~9999-12-31 time类型用于存储时间数据,格式为HH:mm:ss 我们在存储日期格式相关的数据时,要注意以下几点: 1.不要使用字符串类型来存储日期时间数据。...2.日期时间类型通常要比字符串占用的存储空间小。 3.日期类型在进行查询过滤时,可以利用日期来进行对比,避免隐式转换造成索引全盘扫描。

    2K30

    MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解

    当取值为 01 到 69 时,表示 2001 到 2069 ; 当取值为 70 到 99 时,表示 1970 到 1999 ; 当取值整数的 0 或 00 添加的话,那么是 0000 年; 当取值是日期...类型 DATE类型表示日期,没有时间部分,格式为YYYY-MM-DD,其中,YYYY表示年份,MM表示月份,DD表示日期。...以YY-MM-DD格式或者YYMMDD格式表示的字符串日期,此格式中,年份为两位数值或字符串满足YEAR类型的格式条件为:当年份取值为 00 到 69 时,会被转化为 2000 到 2069 ;当年份取值为...检索VARCHAR类型的字段数据时,会保留数据尾部的空格。VARCHAR类型的字段所占用的存储空间为字符串实际长度加 1 个字节。...文本字符串类型 长度 长度范围 占用的存储空间 ENUM L 1 <= L <= 65535 1或2个字节 当ENUM类型包含 1 ~ 255 个成员时,需要 1 个字节的存储空间; 当ENUM类型包含

    61420

    第12章_MySQL数据类型精讲

    当取值为 01 到 69 时,表示 2001 到 2069; 当取值为 70 到 99 时,表示 1970 到 1999; 当取值整数的 0 或 00 添加的话,那么是 0000 年; 当取值是日期 /...以 YY-MM-DD 格式或者 YYMMDD 格式表示的字符串日期,此格式中,年份为两位数值或字符串满足 YEAR 类型的格式条件为:当年份取值为 00 到 69 时,会被转化为 2000 到 2069...(2)可以使用不带有冒号的字符串或者数字,格式为’ HHMMSS ' 或者 HHMMSS 。如果插入一个不合法的字符串或者数字,MySQL 在存储数据时,会将其自动转化为 00:00:00 进行存储。...检索 VARCHAR 类型的字段数据时,会保留数据尾部的空格。VARCHAR 类型的字段所占用的存储空间为字符串实际长度加 1 个字节。...文本字符串类型 长度 长度范围 占用的存储空间 ENUM L 1 <= L <= 65535 1 或 2 个字节 当 ENUM 类型包含 1~255 个成员时,需要 1 个字节的存储空间; 当

    38120

    【数据库】MySql的sql_mode模式说明

    (测试的时候,数据时原样插入的,没有转换为0000-00-00)ANSI_QUOTES :启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符。...当NO_ENGINE_SUBSTITUTION被禁用,当create表时的默认存储引擎不可使用则产生警告信息,对于alter语句产生警告并且表不会被alter。...NO_ZERO_DATE 不是严格模式的一部分,应该和严格模式一起被使用。因为NO_ZERO_DATE将会被放弃在将来的mysql中,它的影响将会被包含进严格模式中。...NO_ZERO_IN_DATE:这个模式影响着日期中的月份和天数是否可以为0(注意年份是非0的),这个模式也取决于严格模式是否被启用。如果这个模式未启用,date中的零部分被允许并且插入没有警告。...举个例子,当将’14:52:12.15’插入到time(1)的时候,是插入’14:52:12.2’还是插入’14:52:12.1′当为OFF时,进行四设五入,插入14:52:12.2;当为ON时,舍弃多余的位数

    1.7K50

    【重学 MySQL】五十七、日期与时间类型

    当取值为01到69时,表示2001到2069; 当取值为70到99时,表示1970到1999; 当取值整数的0或00添加的话,那么是0000年; 当取值是日期/字符串的'0'添加的话,是2000年。...其中D表示天,其最小值为0,最大值为34。如果使用带有D格式的字符串插入TIME类型的字段时,D会被转化为小时,计算格式为D*24+HH。...当使用带有冒号并且不带D的字符串表示时间时,表示当天的时间,比如12:10表示12:10:00,而不是00:12:10。 可以使用不带有冒号的字符串或者数字,格式为’HHMMSS’或者HHMMSS。...因此,查询时根据当前时区的不同,显示的时间值是不同的。...其他注意事项 在选择日期与时间类型时,应根据实际需求考虑使用哪种类型,以提高存储效率和查询性能,同时保证数据的准确性。

    15510

    【mysql】日期与时间类型

    当取值为01到69时,表示2001到2069; 当取值为70到99时,表示1970到1999; 当取值整数的0或00添加的话,那么是0000年; 当取值是日期/字符串的'0'添加的话,是2000年。...DATE类型 DATE类型表示日期,没有时间部分,格式为YYYY-MM-DD,其中,YYYY表示年份,MM表示月份,DD表示日期。需要3个字节的存储空间。...在向DATE类型的字段插入数据时,同样需要满足一定的格式条件。 以YYYY-MM-DD格式或者YYYYMMDD格式表示的字符串日期,其最小取值为1000-01-01,最大取值为9999-12-03。...以YY-MM-DD格式或者YYMMDD格式表示的字符串日期,此格式中,年份为两位数值或字符串满足YEAR类型的格式条件为:当年份取值为00到69时,会被转化为2000到2069;当年份取值为70到99时...(2)可以使用不带有冒号的字符串或者数字,格式为'HHMMSS'或者HHMMSS。如果插入一个不合法的字符串或者数字,MySQL在存储数据时,会将其自动转化为00:00:00进行存储。

    4.2K20

    MySQL sql_mode的坑及严格模式详解

    官方文档建议:当使用innodb存储引擎表时,考虑使用innodb_strict_mode模式的sql_mode,它能增量额外的错误检测功能。...这种模式对date和datetime类型有作用,但是对timestamp类型不起作用,timestamp总是要合法的数据。当ALLOW_INVALID_DATES启用时,服务端要求年和月时合法的。...NO_AUTO_VALUE_ON_ZERO模式会抑制这种行为,仅仅当插入null值才会生成下一个序列的自增值。这个模式是非常有用的当0值已经在表的自增序列中存储时。...当NO_ENGINE_SUBSTITUTION被禁用,当create表时的默认存储引擎不可使用则产生警告信息,对于alter语句产生警告并且表不会被alter。...NO_ZERO_DATE不是严格模式的一部分,应该和严格模式一起被使用。因为NO_ZERO_DATE将会被放弃在将来的mysql中,它的影响将会被包含进严格模式中。

    2.7K20

    MySql基础之数据类型精讲(重点)

    定点数在MySQL内部是以字符串的形式进行存储,这就决定了它一定是精准的。 当DECIMAL类型不指定精度和标度时,其默认为DECIMAL(10,0)。...1)当取值为01到69时,表示2001到2069;   2)当取值为70到99时,表示1970到1999;   3)当取值整数的0或00添加的话,那么是0000年;   4)当取值是日期/字符串的...以 YY-MM-DD 格式或者 YYMMDD 格式表示的字符串日期,此格式中,年份为两位数值或字符串满足YEAR类型的格式条件为:当年份取值为00到69时,会被转化为2000到2069;当年份取值为70...,总共需要 8 个字节的存储空间 在格式上为DATE类型和TIME类型的组合,可以表示为 YYYY-MM-DD HH:MM:SS,其中YYYY表示年份,MM表示月份,DD表示日期,HH表示小时,MM表示分钟...设置字段值时,可以取取值范围内的 0 个或多个值。 当SET类型包含的成员个数不同时,其所占用的存储空间也是不同的,具体如下: SET类型在存储数据时成员个数越多,其占用的存储空间越大。

    9810

    Mysql-2

    当视图来自多个基本表时,不允许添加和删除数据。 2.创建视图 在创建视图时,首先要确保拥有CREATE VIEW的权限,并且同时确保对创建视图所引用的表也具有相应的权限。 ...存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。减少网络流量。...DELIMITER ; CALL proc_no_para(); 2、只带IN(输入参数)的存储过程    表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值。...返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE); WEEK(date) 返回日期date为一年中第几周(0~53) YEAR(date)...返回日期date的年份(1000~9999) 5、格式化函数 DATE_FORMAT(date,fmt) 依照字符串fmt格式化日期date值 FORMAT(x,y) 把x格式化为以逗号隔开的数字序列

    2.7K50

    ClickHouse 数据类型、函数大小写敏感性

    FixedString(n)​​:定长字符串类型,n表示字符串的固定长度。日期和时间类型ClickHouse提供了日期和时间相关的数据类型,方便存储和处理时间信息。...以下是一些常见的日期和时间类型:​​Date​​:日期类型,存储年、月、日信息。​​DateTime​​:日期时间类型,存储年、月、日、时、分、秒信息。​​...函数大小写敏感性在ClickHouse中,函数的大小写敏感性是一个需要注意的问题。特别是当使用ClickHouse SQL语法编写查询时,不同的大小写形式可能导致不同的结果。...字段名称大小写与函数名称不同,在查询中使用的字段名称是大小写敏感的。这意味着当引用表中的字段时,必须使用正确的大小写形式。...product_name​​:产品名称,类型为​​String​​。​​price​​:价格,类型为​​Float64​​。​​purchase_date​​:购买日期,类型为​​Date​​。

    1.1K30

    MySQL数据类型与优化

    比如应该使用MySQL内建的类型(date/time/datetime)而不是字符串来存储日期和时间 4、应该使用整形存储IP地址,而不是字符串 5、尽量避免使用NULL,通常情况下最好指定列为NOT...3、INNODB会把过长的VARCHAR存储为BLOB(二进制方式存储的字符串)。...当BLOB和TEXT值太大时,InnoDB会使用专门的"外部"存储区域来进行存储,此时每个值在行内需要1~4个字节存储一个指针,然后在外部存储趋于存储实际的值。...日期和时间类型 MySQL可以使用许多类型来保存日期和时间值,例如YEAR和DATE。MySQL能存储的最小时间粒度为秒(MariaDB支持微妙级别的时间类型)。...DATETIME 1、这个类型能保存大范围的值,从1001年到9999年,精确度为秒。 2、它把日期和时间装到格式为YYYYMMDDHHMMSS的整数中,与时区无关。使用8个字节的存储空间。

    1.6K10

    MySQL数据类型详解

    2.3、日期与时间类型 日期与时间是重要的信息,在我们的系统中,几乎所有的数据表都用得到。原因是客户需要知道数据的时间标签,从而进行数据查询、统计和处理。...因为这个数据类型包括了完整的日期和时间信息,取值范围也最大,使用起来比较方便。毕竟,如果日期时间信息分散在好几个字段,很不容易记,而且查询的时候,SQL 语句也会更加复杂。...3、检索VARCHAR类型的字段数据时,会保留数据尾部的空格。VARCHAR类型的字段所占用的存储空间为字符串实际长度加1个字节。...1、当ENUM类型包含1~255个成员时,需要1个字节的存储空间。 2、当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。 3、ENUM类型的成员个数的上限为65535个。...(2)当SET类型包含的成员个数不同时,其所占用的存储空间也是不同的,具体如下: (3)SET类型在存储数据时成员个数越多,其占用的存储空间越大。

    36130

    day26.MySQL【Python教程】

    在数据库上右击,选择“删除数据库”可以完成删除操作 表操作 当数据库显示为高亮时,表示当前操作此数据库,可以在数据中创建表 一个实体对应一张表,用于存储特定结构的数据 点击“新建表”,弹出窗口,按提示填写信息...思考:观察两张表发现,citys表比provinces表多一个列proid,其它列的类型都是一样的 意义:存储的都是地区信息,而且每种信息的数据量有限,没必要增加一个新表,或者将来还要存储区、乡镇信息,...还有其它很多三角函数,使用时可以查询文档 日期时间函数 获取子值,语法如下 year(date)返回date的年份(范围在1000到9999) month(date)返回date中的月份数值 day(date...日期格式化date_format(date,format),format参数可用的值如下 获取年%Y,返回4位的整数 * 获取年%y,返回2位的整数 * 获取月%m,值为1-12的整数 获取日%d,返回整数...当前日期current_date() ? 当前时间current_time() ? 当前日期时间now() ?

    2.2K60

    Elasticsearch数据类型及其属性

    text 类型:当一个字段是要被全文搜索的,比如Email内容、产品描述,应该使用text类型。设置text类型以后,字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项。...4、date类型 日期类型表示格式可以是以下几种: (1)日期格式的字符串,比如 “2018-01-13” 或 “2018-01-13 12:10:30” (2)long类型的毫秒数( milliseconds-since-the-epoch...:影响距离查询或近似查询,可以设置在多值字段的数据上或分词字段上,查询时可以指定slop间隔,默认值时100 "position_increament_gap": 0 20、search_analyzer.... —— 当一个字段需要按照精确值进行过滤、排序、聚合等操作时, 就应该使用keyword类型....- date JSON没有日期数据类型, 所以在ES中, 日期可以是: 包含格式化日期的字符串, "2018-10-01", 或"2018/10/01 12:10:30".

    10.2K42

    业务系统-全球化多时区的解决思路

    仔细分析一下,主要是几个关键点: 一、数据查询 当中国用户来查看报表时,通常是在国内,查询某张报表时,传入的查询日期参数 :比如 2020-04-06 00:00:00 ~ 2020-04-07 00:...00:00,这2个字符串传到服务端,应该理解为北京时间(GMT+08:00)。...而当海外用户,比如"东京"的用户来查看时,同样还是 2020-04-06 00:00:00 ~ 2020-04-07 00:00:00,服务端收到这2个字符串时,应该理解为东京时间(GMT+09:00)...三、时间的匹配及展示 有了前面2个前提,后面的事情就好做了,先来看日期字段的sql where 匹配: 3.1 根据查询参数中的timeZone,把传入的日期字符串,视为当地时间,统一转换成北京时间(在...(), ZoneId.of(targetGMT)).format(formatter); } /** * 将原GMT时区的日期字符串->目标GMT时区的日期字符串

    4.9K21

    在 MySQL 中处理日期和时间(一)

    类型一览 MySQL 提供了五种用于存储日期和时间的类型,一些仅用于日期,另一些用于时间,还有一些包含两者。...此外,当禁用严格模式(Strict Mode)时,MySQL 会将任何无效日期(例如 2015-02-30)转换为零日期值 0000-00-00。...当表示两个事件之间的时间间隔时,MySQL 使用大于 24 小时的“HHH:MM:SS”格式。...当你从 DATETIME 列查询数据时,MySQL 会以相同的 YYYY-MM-DD HH:MM:SS 格式显示 DATETIME 值。 DATETIME 值使用 8 个字节进行存储。...对于输入 DATETIME 值,Navicat 提供了 DATETIME INPUT 控件,它结合了 DATE 和 TIME 控件: DATETIME 值可以使用包含“T”时间部分描述符的字符串文字或通过转换为

    3.6K10

    Elasticsearch 6.x Mapping设置

    ES中字段的数据类型,譬如:把字符串"5"转为integer的5 coerce默认为 true 如果coerce设置为 false,当json的值与es字段类型不匹配将会 rejected 通过 "settings...通过设定该值可以设定字段为 null 时的默认值 ignore_malformed 当数据类型不匹配且 coerce 强制转换时,默认情况会抛出异常,并拒绝整个文档的插入 若设置该参数为 true,则忽略该异常...,并强制赋值,但是不会被索引,其他字段则照常 norms norms 存储各种标准化因子,为后续查询计算文档对该查询的匹配分数提供依据 norms 参数对评分很有用,但需要占用大量的磁盘空间 如果不需要计算字段的评分...(读取需要1次IO),要取出某个字段则通过 source filtering 过滤 当字段比较多或者内容比较多,并且不需要取出所有字段的时候,可以把特定字段的store设置为true单独存储(读取需要1...由第一个非 null 值的类型决定 string 匹配为日期则设为date类型(默认开启);匹配为数字则设置为 float或long类型(默认关闭);设为text类型,并附带keyword的子字段

    3.1K30
    领券