首页
学习
活动
专区
圈层
工具
发布

mysql数据类型分类

MySQL 数据类型可以分为三大类:数值类型、日期和时间类型以及字符串类型。

1. 数值类型

数值类型用于存储数字,包括整数和浮点数。主要类型有:

  • 整数类型:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
  • 浮点数类型:FLOAT, DOUBLE
  • 定点数类型:DECIMAL

优势

  • 效率高,计算和存储速度快。
  • 占用空间相对较小。

应用场景

  • 存储年龄、数量等整数数据。
  • 存储价格、工资等需要精确计算的浮点数数据。

2. 日期和时间类型

日期和时间类型用于存储日期和时间值。主要类型有:

  • 日期类型:DATE
  • 时间类型:TIME
  • 日期时间类型:DATETIME, TIMESTAMP
  • 年份类型:YEAR

优势

  • 存储和处理日期和时间数据方便。
  • 支持日期和时间的范围广泛。

应用场景

  • 存储用户的注册日期。
  • 记录事件的发生时间。

3. 字符串类型

字符串类型用于存储文本数据。主要类型有:

  • 定长字符串类型:CHAR
  • 变长字符串类型:VARCHAR
  • 文本类型:TEXT, MEDIUMTEXT, LONGTEXT
  • 二进制数据类型:BINARY, VARBINARY, BLOB, MEDIUMBLOB, LONGBLOB

优势

  • 灵活存储不同长度的文本数据。
  • 支持存储二进制数据。

应用场景

  • 存储用户的姓名、地址等信息。
  • 存储图片、文件等二进制数据。

常见问题及解决方法

问题:为什么不应该使用TEXT/BLOB类型作为主键?

  • 原因:TEXT/BLOB类型的数据无法创建索引,这会导致查询效率低下。
  • 解决方法:使用VARCHAR类型代替,并为其创建索引。

问题:为什么在存储货币时应该使用DECIMAL而不是FLOAT/Doubles?

  • 原因:FLOAT和DOUBLE类型在存储和计算时可能会出现精度问题,不适合存储货币等需要精确计算的数值。
  • 解决方法:使用DECIMAL类型,并指定精度和小数位数。

示例代码

代码语言:txt
复制
-- 创建表时指定数据类型
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    birth_date DATE,
    email VARCHAR(100),
    salary DECIMAL(10, 2)
);

-- 插入数据
INSERT INTO users (name, age, birth_date, email, salary)
VALUES ('John Doe', 30, '1990-05-15', 'john.doe@example.com', 5000.50);

参考链接

通过了解这些基础概念和应用场景,你可以更好地选择合适的数据类型来优化数据库设计和性能。

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

相关·内容

  • 【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('登山','游泳','篮球','武术'), --注意:使用数字标识每个爱好的时候

    1.9K10

    【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中一般而言,数据类型本身也是一种约束,约束程序员尽可能进行正确的插入,约束使用者,如果你不是一个很好的使用者,...bit数据类型的表t3: mysql> create table if not exists t3( -> id int, -> online bit(1) -> ); Query

    1.9K30

    SQL分类与数据类型整理

    SQL分类SQL语句分为DQL、DML、DDL、DCL和TCL五大类那么关于SQL的这五大类的详细介绍,下面逐个说明:数据定义语言(Data Definition Language,简称DDL):DDL...在MySQL中,常见的数据类型包括数值型、字符串型、二进制型、日期型和其他类型。数值型MySQL支持多种数值型数据类型:包括整数型、小数型和布尔型。...布尔型Mysql布尔型数据类型,这里有的文档是这样说的,BOOLEAN或BOOL。它只占用1位,取值为TRUE或FALSE。有的文档并没有提及布尔型数据类型。...有的文档则说Mysql没有专门的布尔型数据类型。这里存疑,记录在这里大家自行判断。...而关于MySQL中常见的数据类型,包括数值型、字符串型、二进制型、日期型和其他类型(如空间数据类型),每种数据类型的用途、存储方式和取值范围都在文中详细说明。

    72220

    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类型有专有的自动更新特性,将在后面描述。

    2.8K40

    mysql 数据类型

    一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE...忽略 DECIMAL 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把所有标识为这个数据类型的字段精度设置为 10,计算方法设置为 0。...这些大型的数据用于存储文本块或图像、 声音文件等二进制数据类型。 TEXT 和 BLOB 类型在分类和比较上存在区别。BLOB 类型区分大小写,而 TEXT 不区分大小写。...根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式。...MySQL 会自动使用系统当前的日期和时间来填充它。 复合类型   MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。

    4.1K40

    MySQL数据类型

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

    3.7K40

    Mysql 数据类型

    mysql 数据类型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint...浮点型(float和double) MySQL数据类型 含义 float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位 double(m,d) 双精度浮点型 16位精度(8字节) m总个数... 字符串(char,varchar,_text) MySQL数据类型 含义 char(n) 固定长度,最多255个字符 varchar(n) 固定长度,最多65535个字符 tinytext...日期时间类型 MySQL数据类型 含义 date 日期 '2008-12-2' time 时间 '12:25:36' datetime 日期时间 '2008-12-2 22:06:44' timestamp...数据类型的属性 MySQL关键字 含义 NULL 数据列可包含NULL值 NOT NULL 数据列不允许包含NULL值 DEFAULT 默认值 PRIMARY KEY 主键 AUTO_INCREMENT

    2.3K20

    SAP ABAP——数据类型(一)【数据类型概要及分类】

    个人网站:【芒果个人日志】​​​​​​ 原文地址: SAP ABAP——数据类型(一)【数据类型概要及分类】 - 芒果个人日志 (wyz-math.cn) 作者简介: THUNDER王,一名热爱财税和...文章概要:本文主要介绍一下SAP ABAP中关于数据类型的概要以及分类,其中数据类型包括预定义的数据类型,数据字典数据类型,用户自定义数据类型,下面将依次对其进行讲解 每日一言:宝剑锋从磨砺出,梅花香自苦寒来...目录 数据类型内涵 数据类型分类 预定义数据类型 数据字典数据类型 - 案例代码演示(参照数据库表定义) - 案例代码演示(参照数据库表字段定义) - 案例代码演示(参照数据元素定义) 用户自定义数据类型...ps:数据对象是如(如文本、变量、常量),或者DATA 关键字用来声明的变量或者实体结构具有实际的内存空间 数据类型分类 数据类型分类 解释 预定义数据类型 SAP中预定义的数据类型(整数型、浮点型、...数据字典数据类型 T-CODE SE11中定义的数据类型(包括数据元素,结构,表类型,数据库表,视图,类/接口) 用户自定义数据类型 用户程序中使用TYPES关键字自定义的数据类型 ---- 预定义数据类型

    1.5K41

    Mysql数据类型

    MySQL的数据类型 在MySQL中有如下几种数据类型: (1)数值型 数值是诸如32 或153.4 这样的值。...列(字段)的类型比数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。 MySQL有整数和浮点数值的列类型,如表1所示。整数列类型可以有符号也可无符号。...MySQL > 3.23 ) 表3:数值列类型的存储需求   MySQL提供了五种整型: TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT INT...2.3日期时间列类型 MySQL 提供了几种时间值的列类型,它们分别是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。...下表给出了MySQL 为定义存储日期和时间值所提供的这些类型,并给出了每种类型的合法取值范围。

    3.5K30

    MySQL数据类型

    前言:本文详细介绍了MySQL中的数据类型分类,包括数值类型、浮点类、字符串类、日期和时间类型以及enum和set类型。解释了其存储范围及使用场景,并展示了相关测试代码。...通过这些数据类型的合理选择,可以优化数据库的存储和查询性能。希望本文能为您在MySQL数据类型选择上提供有价值的参考。...数据类型分类 一、数值类型 这里以tinyint为例进行讲解,其他类型原理相同,只是占用的字节空间不同。 注:MySQL语法是不区分大小写的,操作时使用小写更具可读性。...测试代码: mysql> create table t1(num tinyint); Query OK, 0 rows affected (0.02 sec) mysql> insert into t1...而MySQL直接报错。这也反向说明插入MySQL的数据一定是合法的。 MySQL的数据类型本身就是一种约束,它促使程序员正确填写数据。

    40710

    MySQL 数据类型

    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类型有专有的自动更新特性,将在后面描述。

    2.4K10

    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类型有专有的自动更新特性,将在后面描述。

    2.5K20
    领券