• MySQL数据类型介绍——小数型,字符串和日期类型


    1.数值型(小数)的基本使用

    1. FLOAT/DOUBLE [UNSIGNED]
      Float 单精度精度,Double 双精度.
      cexe Taine t3 (ni FLokn,n2"Boumte, ns Decivai.(30,20));
      1NSERT
      VALUES(88.12345678912345, 88.12345678912345, 88.123456789
    2. DECIMAL[M,D][UNSIGNED]
      ・可以支持更加精确的小数位。MM是小数位数(精度)的总数, D是小数点(标度)
      后面的位数。
      ・如果D是0,则值没有小数点或分数部分。M最大65。 D最大是30。如果D被
      省略,默认是0。如果被省略,默认是10。
      建议:如果希望小数的精度高,推荐使用decimal
    3. 案例演示 floatDoubleDec.sql 文件,测试数据 88.12345678912345
    #演示decimalfloat、double使用
    #创建表
    CREATE TABLE t07 (
    num1 FLOAT,
    num2 DOUBLE,
    num3 DECIMAL(30,20));
    #添加数据
    INSERT INTO t07 VALUES(88.12345678912345, 88.12345678912345,88.12345678912345);
    SELECT * FROM t07;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    CREATE TABLE tt01 (
    num1 DECIMAL(65));
    #添加数据
    INSERT INTO tt01 VALUES(881234567891236151651651651654581234567891234513516515664512);
    SELECT * FROM tt01;
    
    
    CREATE TABLE tt02 (
    num1 BIGINT UNSIGNED);
    #添加数据
    INSERT INTO tt02 VALUES(881234567891236151651651651654581234567891234513516515664512);
    SELECT * FROM tt02;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    结论:
    DECIMAL(65)的存储范围>BIGINT

    2.字符串的基本使用

    1.字符串类型创建表

    CHAR(size) 固定长度字符串最大255 字符
    VARCHAR(size) ‘可变长度字符串最大65532字节
    【utf8编码最大21844字符 1-3个 字节用于记录大小】.

    – 可变长度字符串最大65532字节【utf8编码最大21844字符 1-3个字节用于记录大小】
    – 如果表的编码是 utf8 varchar(size) size =(65535-3)/ 3 = 21844
    – 如果表的编码是 gbk varchar(size) size =(65535-3)/ 2 = 32766

    #演示字符串类型使用char varcharl
    #注释的快捷键 shift+ctrl+c ,注销注释 shift+ctrl+r
    -- CHAR(size)
    -- 固定长度字符串最大255 字符
    -- VARCHAR(size)0~65535字节
    CREATE TABLE t09 (
    `name`CHAR(255));
    CREATE TABLE t10 (
    `name`VARCHAR(21844));
    CREATE TABLE t8 (
    `name`VARCHAR(32766)) CHARSET gbk;
    DROP TABLE t8
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    表都正常创建成功

    2.字符串使用细节

    1. 细节1 charVarcharDetail.sql
      char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都
      是放四个,按字符计算.
      varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码
      来存放数据.
      不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的.
    #演示字符串类型的使用细节
    #char(4)和 varchar(4)这个4表示的是等
    ,而不是字节,不区分字符是汉字还是字母
    CREATE TABLE t11(
    `name`CHAR(4));
    INSERT INTO t11 VALUES('哈哈哈哈');
    SELECT * FROM t11;
    
    CREATE TABLE t12(
    `name` VARCHAR(4));
    INSERT INTO t12 VALUES('哇哇哇哇');
    INSERT INTO t12 VALUES('ab选哟');
    SELECT * FROM t12;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    在这里插入图片描述

    *2.细节2
    char(4)是定长(固定的大小),就是说,即使你插入’aa’,也会占用分配的
    4个字符.
    varchar(4)是变长,就是说,如果你插入了’aa’,实际占用空间大小并不是4’
    个字符,而是按照实际占用空间来分配(说明:varchar本身还需要占
    用1-3个字节来记录存放内容长度)

    #如果varchar_不够用,可以考虑使用mediumtext 或者longtext,
    #如果想简单点,可以使用直接使用text
    CREATE TABLE t13( 
    	content TEXT, 
    	content2 MEDIUMTEXT , 
    	content3 LONGTEXT);
    INSERT INTO t13 VALUES('哇哇哇哇哇' , '哈哈哈哈哈100','嘿嘿额嘿嘿1000~~');
    SELECT * FROM t13;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    3.日期类型

    1. 日期类型的基本使用
      CREATE TABLE birthday6(
      t1 DATE,
      t2 DATETIME,
      t3 TIMESTAMP NOT NULL DEFAULT
      CURRENT_TIMESTAMP ON UPDATE
      CURRENT_TIMESTAMP );timestamp时间戳

    2. mysql> INSERT INTO birthday (t1,t2)
      VALUES(‘2022-11-11’,‘2022-11-11 10:10:10’);
      日期类型的细节说明
      TimeStamp在Insert和update时,自动更新

    #演示时间相关的类型
    #创建一张表, date , datetime , timestamp
    CREATE TABLE t14 (
    	birthday DATE , -- 生日
    	job_time DATETIME, -- 记录年月日 时分秒
    	login_time TIMESTAMP 
    		NOT NULL DEFAULT CURRENT_TIMESTAMP 
    		ON UPDATE CURRENT_TIMESTAMP); -- 登录时间, 如果希望login_time列自动更新, 需要配置
    		
    SELECT * FROM t14;
    INSERT INTO t14(birthday, job_time) 
    	VALUES('2022-11-11','2022-11-11 10:10:10');
    -- 如果我们更新 t14表的某条记录,login_time列会自动的以当前时间进行更新
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

  • 相关阅读:
    新入手Mac配置前端环境教程
    一举双得,刷完阿里P8架构师spring学习笔记+源码剖析,涨薪8K
    Kibana介绍(五)
    数据优化 | CnOpenData中国工业企业绿色专利及引用被引用数据
    MySQL MHA高可用配置及故障切换
    Matebook13右侧USB-C/Type-C接口无法识别
    设计模式20——职责链模式
    Portainer.io
    python 比较图像相似度实战
    阿里云服务 安装 Node.js
  • 原文地址:https://blog.csdn.net/qq_59708493/article/details/126416244