当前位置: 首页 > article >正文

MySQL的字段类型

MySQL 字段类型可以简单分为三大类

  • 数值类型:整型(TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT)、浮点型(FLOAT 和 DOUBLE)、定点型(DECIMAL)
  • 字符串类型:CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB 等,最常用的是 CHAR 和 VARCHAR。
  • 日期时间类型:YEAR、TIME、DATE、DATETIME 和 TIMESTAMP 等。

整数类型的 UNSIGNED 属性的作用

可用于扩大正数取值范围。例如:

  • 有符号 INT:范围是 -2147483648 到 2147483647
  • 无符号 INT(使用 UNSIGNED 属性):由于不使用符号位,所有 32 位都用于表示数值,范围是 0 到 4294967295

常用场景:对于从 0 开始递增的 ID 列,使用 UNSIGNED 属性可以非常适合,因为不允许负值并且可以拥有更大的上限范围,提供了更多的 ID 值可用。

CHAR 和 VARCHAR 的区别

区别:CHAR 是定长字符串,VARCHAR 是变长字符串。

  • CHAR 在存储时会在右边填充空格以达到指定的长度,检索时会去掉空格;
  • VARCHAR 在存储时需要使用 1 或 2 个额外字节记录字符串的长度,检索时不需要处理。
  • CHAR 更适合存储长度较短或者长度都差不多的字符串,例如 Bcrypt 算法、MD5 算法加密后的密码、身份证号码。
  • VARCHAR 类型适合存储长度不确定或者差异较大的字符串,例如用户昵称、文章标题等。
  • CHAR(M) 和 VARCHAR(M) 的 M 都代表能够保存的字符数的最大值,无论是字母、数字还是中文,每个都只占用一个字符。

NULL 和 '' 的区别是什么

NULL 跟 ''(空字符串)是两个完全不一样的值,区别如下:

  • NULL 代表一个不确定的值,就算是两个 NULL,它俩也不一定相等。例如,SELECT NULL=NULL的结果为 false,但是在我们使用DISTINCT,GROUP BY,ORDER BY时,NULL又被认为是相等的。
  • ''的长度是 0,是不占用空间的,而NULL 是需要占用空间的。
  • NULL 会影响聚合函数的结果。例如,SUM、AVG、MIN、MAX 等聚合函数会忽略 NULL 值。
  • COUNT 的处理方式取决于参数的类型。如果参数是 *(COUNT(*)),则会统计所有的记录数,包括 NULL 值;如果参数是某个字段名(COUNT(列名)),则会忽略 NULL 值,只统计非空值的个数。
  • 查询 NULL 值时,必须使用 IS NULL 或 IS NOT NULLl 来判断,而不能使用 =、!=、 <、> 之类的比较运算符。而''是可以使用这些比较运算符的。
     


http://www.kler.cn/a/539381.html

相关文章:

  • Linux 创建进程 fork()、vfork() 与进程管理
  • Photoshop自定义键盘快捷键
  • TCP三次握手全方面详解
  • SpringSecurity:授权服务器与客户端应用(入门案例)
  • 智慧停车场解决方案(文末联系,领取整套资料,可做论文)
  • 【Pandas】pandas Series sum
  • Django开发入门 – 0.Django基本介绍
  • 【Matlab优化算法-第13期】基于多目标优化算法的水库流量调度
  • SQL中 的exists用法
  • 用户管理(MySQL)
  • Rust语言的计算机基础
  • 畅快使用DeepSeek-R1的方法
  • Git提交错误解决:missing Change-Id in message footer
  • 【开发日记】Uniapp对指定DOM元素截长图
  • 第三十二周:Informer学习笔记
  • 通信模组认识
  • 重生之我要当云原生大师(十四)分析和存储日志
  • 打家劫舍3
  • 迁移学习 Transfer Learning
  • ESP32-C6通过Thread 1.4认证,设备无线交互联动,物联网通信方案
  • 【数据库创建】用ij工具部署Derby数据库并验证
  • 视觉硬件选型和算法选择(CNN)
  • 01单片机上电后没有正常运行怎么办
  • 升级RAG应用程序与Redis向量库
  • 25寒假周报1,2
  • Deep Dive into LLMs like ChatGPT - by Andrej Karpathy