当前位置:   article > 正文

MySQL数据类型介绍——小数型,字符串和日期类型_mysql中字符串和小数的区别记录小数

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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/904484
推荐阅读
相关标签
  

闽ICP备14008679号