MySQL基础——基本数据类型(重点:CHAR、VARCHAR)

创建表的基本语法

在这里插入图片描述

MySQL常用数据类型

在这里插入图片描述

常用的数据类型

在这里插入图片描述

在这里插入图片描述

DECIMAL 详解

DECIMAL[M,D] [UNSIGNED]

  1. 可以支持更加精确的小数位。M 是整数位数与小数位数的总和,D 是小数位数。
  2. 如果 D0 ,则值没有小数点或分数部分。
  3. M 最大 65D 最大是 30
  4. 如果 D 被省略,默认是 0 。如果 M 被省略,默认是 10
  5. 建议:如果希望小数的精度高,推荐使用 DECIMAL
    在这里插入图片描述

CHAR 和 VARCHAR 详解

  1. CHAR(size)CHAR(255) 固定长度字符串,可存储最大 255 字符
  2. VARCHAR(size)0~65535:可变长度字符串最大 65532 字节
    根据编码不同可存储的最大字符数也不同【例:utf8 编码最大可保存 65532 / 3 = 21844 个字符;gbk 编码最大可保存 65532 / 2 = 32766 个字符】。最大可存 65535 个字节,因为会预留 1~3 个字节来保存字符串的大小所以用 65532 / 编码
细节
  1. CHAR(4):这个 4 表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算

  2. VARCHAR(4):这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据

  3. 简单来说,CHARVARCHAR 所指定的都是字符数,只不过所存储的内容占多少空间(即所占字节数)是不确定的,取决于定义表时的编码。只不过对于 VARCHAR 来说还要加上 1~3 个预留的字节【例:utf8 编码存放四个字符,则所占字节数为:4 * 3 = 12】

  4. CHAR(4): 是定长(固定的大小),就是说,即使你插入 aa,也会占用分配的 4 个字符的空间.

  5. VARCHAR(4): 是变长(变化的大小),就是说,如果你插入了 aa,实际占用空间大小并不是 4 个字符,而是按照实际占用空间来分配(说明:VARCHAR 本身还需要占用 1~3 个字节来记录存放内容长度)。

  6. 什么时候使用 CHAR 什么时候使用 VARCHAR
    如果数据是定长,推荐使用char,比如 md5 的密码,邮编,手机号,身份证号码等
    如果一个字段的长度是不确定,我们使用 VARCHAR,比如留言,文章
    查询速度: CHAR > VARCHAR

  7. 在存放文本时,也可以使用 TEXT 数据类型,可以将 TEXT 列视为VARCHAR 列,注意 TEXT 不能有默认值,大小 0~2^16 字节。如果希望存放更多字符,可以选择 MEDIUMTEXT 02^24 或者 LONGTEXT0~2^32

在这里插入图片描述
TEXT 所占字节数与 VARCHAR 计算方式一样。

日期类型



-- 演示和时间相关的类型
-- 创建一张表,date、datetime、timestamp:时间戳
CREATE TABLE t04 (
birthday DATE, -- 年月日
job_time DATETIME, -- 年月日 时分秒
login_time TIMESTAMP 
           NOT NULL DEFAULT CURRENT_TIMESTAMP
           ON UPDATE CURRENT_TIMESTAMP
); -- 登陆时间,如果希望 login_time 列自动更新,需要配置

INSERT INTO t04 (birthday, job_time) VALUES (
'2001-01-01', '2018-09-13 08:00:00'
);

SELECT * FROM t04;
-- 如果我们更新 t04 表的某条记录,login_time 列会自动的以当前时间进行更新



在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值