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

mysql 常用数据类型

MySQL是一种广泛使用的关系型数据库管理系统,它支持多种数据类型,每种类型都有其特定的用途和优势。以下是一些MySQL的常用数据类型:

1. 数值类型

  • INT: 用于存储整数,范围从-2147483648到2147483647。
  • FLOAT: 单精度浮点数,大约有7位小数精度。
  • DOUBLE: 双精度浮点数,大约有15位小数精度。
  • DECIMAL: 定点数,用于需要精确小数的计算,如货币。

2. 字符串类型

  • CHAR: 固定长度的字符串,如果插入的数据长度小于定义的长度,会用空格填充。
  • VARCHAR: 可变长度的字符串,只存储实际长度的数据,比CHAR更节省空间。
  • TEXT: 用于存储长文本数据,最大长度为65535个字符。

3. 日期和时间类型

  • DATE: 仅存储日期,格式为YYYY-MM-DD。
  • TIME: 仅存储时间,格式为HH:MM:SS。
  • DATETIME: 存储日期和时间,格式为YYYY-MM-DD HH:MM:SS。
  • TIMESTAMP: 存储日期和时间,与DATETIME类似,但具有时区感知特性。

4. 二进制数据类型

  • BINARY: 类似于CHAR,但用于存储二进制数据。
  • VARBINARY: 类似于VARCHAR,但用于存储可变长度的二进制数据。
  • BLOB: 用于存储大量的二进制数据。

5. 枚举和集合类型

  • ENUM: 允许列取值为预定义的一组值中的一个。
  • SET: 类似于ENUM,但可以取多个值。

应用场景

  • INTBIGINT 常用于用户ID、订单号等需要高效检索和排序的场景。
  • VARCHARTEXT 适用于存储名称、描述、文章内容等文本信息。
  • DATEDATETIME 用于记录创建时间、更新时间等时间戳信息。
  • ENUMSET 适用于有限选项的字段,如性别、状态等。

常见问题及解决方法

问题:为什么不应该在数据库中使用TEXT类型作为主键?

  • 原因:TEXT类型的数据不存储在数据库的聚簇索引中,这会导致查询效率低下。
  • 解决方法:使用VARCHAR类型或者将TEXT数据存储在单独的表中,并通过外键关联。

问题:为什么在处理货币时应该使用DECIMAL而不是FLOAT或DOUBLE?

  • 原因:FLOAT和DOUBLE类型可能会因为精度问题而导致计算结果不准确。
  • 解决方法:使用DECIMAL类型,它可以提供精确的小数点后位数,适合财务计算。

问题:如何选择合适的数据类型以优化性能?

  • 解决方法:根据数据的实际大小和使用场景选择最合适的数据类型。例如,如果一个字段的最大长度是固定的,使用CHAR而不是VARCHAR;如果不需要存储小数部分,使用INT而不是FLOAT。

了解这些基础概念和最佳实践有助于设计更高效、更可靠的数据库结构。在实际开发中,合理选择数据类型可以显著提高数据库的性能和数据的完整性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【MySQL】MySQL常用的数据类型——表的操作

    ️1.MySQL常用的数据类型 1.1数值类型 分为整型和浮点型: 注解: BIT:这里的bit是二进制的比特位,目的是为了压缩节省空间; TINYINT--BIGINT:都是表示的整型,其大小如上述图片所示...所以总结:一般用到的数据类型是 INT-----整型 DECIMAL-----浮点型 VARCHAR()-----字符类型 DATETIME------时间类型 ️2.表的简单操作 2.1...创建表 SQL执行语句:create table 表名(列名 类型,列名 类型.....); mysql> use test96; Database changed mysql> create table...2.4删除表 SQL执行语句:drop table 表名; mysql> drop table teacher; Query OK, 0 rows affected (0.01 sec) mysql>...3.总结 本期小编总结了数据库MySQL的常用数据类型,以及关于它的表的简单使用,这里的表的使用是在(use 数据库名)的前提之下。 ~~~~最后希望与诸君共勉,共同进步!!!

    8710

    MySQL数据库常用概念和数据类型

    数据库软件MDBS(数据库管理系统)在上节课教大家从MySQL官网下载并且安装的mysql-installer-community-5.7.28.0.msi就是数据库软件MDBS。...数据库中每个列都有相应的数据类型。3.2 行(Row)表中的一个记录,表中的数据都是按行存储的,垂直的列为表列,水平行为表行。二....数据类型(DataType)所容许的数据的类型,数据库中每个列都有相应的数据类型。不同数据类型的列,存储不同格式的数据。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。...数据类型 : 在设计表的列名的时候, 都要指定存储数据的类型。有字符串, 日期, 数值三大类型。如果有其他问题可以给我们留言,欢迎大家一起讨论交流~

    77220

    MySQL(六)常用语法和数据类型

    this])是可选的; ③既没有列出所有的MySQL语句,也没有列出每一条子句和选项。...一、常用语法 1、alter table:更新已存在表的模式 alter table tablename (      add column datatype [null | not null] [constarints...②允许在内部更有效的存储数据                ③允许变换排序顺序(作为数值数据类型,数值才能正确排序) 1、串数据类型 该类型为最常用的数据类型,用来存储串(比如名字、地址等);有两种串类型...,有些是完全变长的,不论哪种,指定的数据得到保存即可(灵活) PS:MySQL处理定长列比变长列快速的很多,且MySQL不许云对变长列(或一个列的可变部分)进行索引 串数据类型表: ?...; 2、数值数据类型 数值数据类型存储数值,MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围; 数值数据类型表: ?

    48520

    ES 常用数据类型

    1、ES常用数据类型 1.1 Numbers 数字类型 涉及到的类型很多,具体查阅文档 常用的有long,integer,short,double,float 1.2 Keywords 关键字类型 ...说明:keyword不会被分词,keyword类型的字段只能通过精确值(exact_value)搜索到,常用于排序、过滤、聚合....默认情况下,该字段不存储且不可搜索: 2、ES结构化数据类型 2.1、Range 范围类型 范围字段类型表示上限和下限之间的连续值范围。...但是也有限制,如只允许基本查询,不支持数值范围查询或高亮显示,具体参阅文档. 4.4 join 关联关系类型 连接数据类型是一个特殊字段,用于在相同索引的文档中创建父/子关系。...具体查看官方文档 5、ES特殊数据类型 5.1 geo_point、geo_shape、point、shape   4大类型 常用于地理位置搜索具体查看官方文档. 5.2 completion 配合Completion

    4.2K10

    【MySql】MySql的数据类型

    数据类型分类 对于数据类型分类,这里简单分为数值类型(如BIT,BOOL,INT),文本、二进制类型(如CHAR,VARCHAR),时间日期(DATE),String类型(如ENUM类型),这里简单了解一下即可...tinyint类型 用tinyint数据类型创建表t1: mysql> create table if not exists t1( -> num tinyint -> ); 插入tinyint...of range value for column 'num' at row 1 mysql> 用tinyint unsigned数据类型创建表t2: mysql> create table if not...反过来,我们如果已经有数据被插入到MySql中了,一定是插入的时候是合法的 所以MySql中一般而言,数据类型本身也是一种约束,约束程序员尽可能进行正确的插入,约束使用者,如果你不是一个很好的使用者,...日期和时间类型 常用的日期有如下三个: **date *日期 ‘yyyy-mm-dd’ ,占用三字节 datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000

    26030

    【MySQL】详解MySQL数据类型

    一、数据类型 各类型的数值范围: 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的。...mysql> insert into tt4 values ( 65 , 65 ); mysql> select * from tt4; +------+------+...insert into tt6 values(101, -99.991); #多的这一点被拿掉了 float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入。...在MySQL中,字符就真的是字符,字母或汉字都认为是字符。  1.5、varchar varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节。...mysql> create table votes( -> username varchar(30), -> hobby set('登山','游泳','篮球','武术'), --注意:使用数字标识每个爱好的时候

    12710

    MySQL 数据类型

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。...---- 数值类型 MySQL支持所有标准SQL数值数据类型。...这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。...BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。 作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。 TIMESTAMP类型有专有的自动更新特性,将在后面描述。

    1.9K20

    MySQL数据类型

    MySQL不同存储引擎可能会有不同。下面的内容以InnoDB为主。 选择数据类型的步骤 确定合适的大类型:数字、字符串、时间、二进制 确定具体的类型:有无符号、取值范围、变长定长等。...MySQL检索CHAR不会使用末尾的空格。(列是定长的,MySQL没有存储写入的字符串有多长,只好一刀切,末尾的空格都忽略掉。) VARCHAR末尾的空格不会被“干掉”,检索的时候会用到。...MySQL只能对BLOB和TEXT的前面max_sort_length各字符进行排序和索引。 BLOB和TEXT都不能有default value。...而MySQL在检索BIT的时候会将其当做字符串,而不是整数,这可能会导致一些奇怪的行为。 不建议使用这三个类型:用整数代替。 一些原则 选择最小的满足需求的数据类型。...一般情况下,应该尽量使用可以正确存储数据的最小数据类型。 简单就好。

    2.5K40

    mysql 数据类型

    一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE...忽略 DECIMAL 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把所有标识为这个数据类型的字段精度设置为 10,计算方法设置为 0。...三.日期和时间类型  在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。...这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。...MySQL 会自动使用系统当前的日期和时间来填充它。 复合类型   MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。

    2.7K40

    MySQL 数据类型

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。...---- 数值类型 MySQL支持所有标准SQL数值数据类型。...这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。...BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。 作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。 TIMESTAMP类型有专有的自动更新特性,将在后面描述。

    1.5K70

    MySQL数据类型

    MySQL数据类型优化 作者的故事 原本觉得mysql数据类型是非常简单并十分基础的知识,认为自己掌握的差不多了。但经过上一次的面试,才发现自己掌握的并不牢固,很多细节和原理并不知道。...后来翻阅了《高性能mysql》这本书,仔细阅读了第四章Schema与数据类型优化。因此,写这篇文章记录和总结下,并加深理解。...选择优化的数据类型 不管存储哪几种类型,以下几个简单的原则都有助于做出更好的选择 更小的通常更好 简单就好 尽量避免null 整数类型 数据类型 存储空间 TINYINT 8位 SMALLINT 16位...MySQL可以为整数类型指定宽度,例如INT(11),对大多数应用是没有意义的,他不会限制值的合法范围,只是规定了MySQL的一些交互工具(如MySQL命令行客户端)用来显示字符的个数。...总结 本篇文章主要是介绍MySQL常用的数据类型,如有错误或者不准确的地方,欢迎交流。

    1.1K10

    Mysql数据类型

    对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。DECIMAL数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。...忽略DECIMAL数据类型的精度和计数方法修饰符将会使 MySQL 数据库把所有标识为这个数据类型的字段精度设置为10,计数方法设置为0。...UNSIGNED 和 ZEROFILL 修饰符也可以被 FLOAT、DOUBLE 和 DECIMAL 数据类型使用。并且效果与 INT 数据类型相同。...DATETIME和TIMESTAMP类型除了日期和时间数据类型,MySQL还支持DATETIME和TIMESTAMP这两种混合类型。它们可以把日期和时间作为单个的值进行存储。...这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。

    9410

    【MYSQL】数据类型

    一、数据类型分类 ---- 二、INT类型 1.tinyint类型 (1)有符号 tinyint类型的数据范围为-128~127 我们创建好一张表,其中成员age的类型为tinyint。...当我们插入一个超过范围的数据时,我们会发现会插入失败,由此我们可以得到一个结论:我们成功插入到MYSQL中的数据,一定是合法的。这样能够约束程序员尽可能的插入正确的数据。...(2)无符号   在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。...当插入的数字太大的时候,会出现精度丢失的问题 当我们设定float类型为unsigned时,并不是和int一样把负数的范围加到整数上,mysql在处理小数类型时会直接除去负数那部分范围,保留正数范围。...定长的意义是,直接开辟好对应的空间 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少 ---- 六、日期和时间类型 常用的日期有如下三个: date :日期 'yyyy-mm-dd' ,占用三字节

    25730

    MySQL 数据类型

    它可以用来表示某个 字段(列) 的数据内容格式是数字(例123)还是字符(例"一二三") ,可以控制字段的字符长度和硬盘占用空间; MySQL常用数据类型:[数值]、[日期时间]和[字符串]类型。...一、数值 1、整型 MySQL数据类型 含义(有符号) tinyint 1个字节范围(-128~127) smallint 2个字节范围(-32768~32767) mediumint 3个字节范围(-...int(m)里的m是表示SELECT查询结果集中的显示宽度,无实际意义,不影响实际的取值范围 2、浮点型 MySQL数据类型 含义 float(m,d) 单精度浮点型8位精度(4字节)m总个数,d小数位...---- 二、字符串 MySQL数据类型 含义 char(n) 固定长度最多255个字符 varchar(n) 可变长度最多65535个字符 tinytext 短文本字符串最多255个字符 text 长文本数据最多...[字段名] 数据类型为[字符串] (字符长度小于6) ,插入数据时 [不能为空] MySQL关键字 含义 NULL 数据列可包含NULL值 NOT NULL 数据列不允许包含NULL值 DEFAULT

    1.8K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券