【韩顺平老师讲MySQL】数据类型详解

文章目录

  • P12.列类型有哪些?
  • P13.列类型之整型和浮点型
  • P14.位类型
  • P15.小数类型
  • P16.17.字符串类型
  • P18.日期类型
  • P19.创建表的练习

P12.列类型有哪些?

MySQL中常用的数据类型就是MySQL的列类型,整体来看:

【韩顺平老师讲MySQL】数据类型详解_第1张图片【韩顺平老师讲MySQL】数据类型详解_第2张图片

类型虽然有很多,但是常用的就只有这么几个:[哪些是重要的]

  1. 整型:int
  2. 小数类型:double decimal
  3. 文本类型:char varchar text
  4. 日期类型:datetime,timestamp

P13.列类型之整型和浮点型

常用的是int

类型选择基本规则:在满足需求的情况下,尽量选择占用空间小的类型

【韩顺平老师讲MySQL】数据类型详解_第3张图片

打开表查询插入结果:(只能插入-128)

【韩顺平老师讲MySQL】数据类型详解_第4张图片

CREATE TABLE t3 ( 
	id TINYINT);# 无符号的
CREATE TABLE t3 (
	id TINYINT UNSIGNED);# 有符号的

P14.位类型

# 添加数据

【韩顺平老师讲MySQL】数据类型详解_第5张图片

【韩顺平老师讲MySQL】数据类型详解_第6张图片

说明:

  1. bit字段显示的时候,按照位的方式显示
  2. 查询的时候,依然可以用使用 添加的数值来查询
  3. 如果某一个值只有0和1,可以考虑用bit(1),节约空间
  4. 位类型,M指定位数,默认为1,范围1-64
  5. 使用不多

P15.小数类型

常用的是double和decimal

这里重点讲decimal:

decimal可以支持更加精确的小数位

M是小数位数(精度)的总和,D是小数点(标度)后面的位数

如果D是0,则值没有小数点和分数部分,可以看成整型里的数据类型

M最大是65,D最大是30

没写的话,M默认为10,D默认是0

建议:如果希望小数的精度高,推荐使用decimal

【韩顺平老师讲MySQL】数据类型详解_第7张图片

【韩顺平老师讲MySQL】数据类型详解_第8张图片

P16.17.字符串类型

字符串的基本使用:

char(size) size的范围是0-255,也就是mysql中只能最大写char(255)

固定长度字符串,最大255字符

varchar(size) size范围0-65535字节,在utf8中对应21844字符(字符*3=字节),也就是mysql中只能最大写varchar(21844)

可变长度字符串 最大65532字节(utf8字符集编码最大21844字符,1-3个字节用于记录大小)

【韩顺平老师讲MySQL】数据类型详解_第9张图片

【韩顺平老师讲MySQL】数据类型详解_第10张图片

注释快捷键:

【韩顺平老师讲MySQL】数据类型详解_第11张图片

【韩顺平老师讲MySQL】数据类型详解_第12张图片

【韩顺平老师讲MySQL】数据类型详解_第13张图片

char(4) 4代表的是字符(而不是字节)(对应多少个字节取决于你用的字符集—-比如utf8字符集中:字符*3=字节)

但是varchar 的65535是字节,等于21844个字符

无论中文还是英文,都最多只能放4个字符

不区分中文还是英文

【韩顺平老师讲MySQL】数据类型详解_第14张图片【韩顺平老师讲MySQL】数据类型详解_第15张图片

也就是说:如果char(4)中的4我如果放的都是中文,就是4个字符,对应4*3个字节(一个中文–一个字符就是三个字节)

如果我放的都是英文,也是4个字符,对应的却是4个字节(一个英文字母–字符就是一个字节)

关于定长和可变:

char(4)是定长,1就是说,即使你插入‘aa’,也会占用分配的4个字符的空间,这是一次性开辟的空间,像一个不可伸缩的盒子

varchar(4)是可变的,就是或,如果你插入‘aa’,实际占用的是实际占用的空间,而不是4个字符,是实时分配的,像一个可以伸缩的盒子.(但是老韩说明:varchar本身还需要占用1-3个字节来记录存放内容的长度信息,1-3是因为实际数据大小的长度信息不一定的)

关于什么时候用char?什么时候用varchar?

可能你以为varchar已经很完美了,a.范围大 b.可变长度,节约空间

但是实际上char既然存在就有自己的道理:

选择依据:

  1. 如果数据是定长的话,推荐使用char,比如md5的密码,邮编,手机号,身份证号,查询速度:char>varchar
  2. 如果一个字段的产犊不确定,我们使用varchar,比如留言,文章

image-20221017232156507

P18.日期类型

主要讲timestamp:

【韩顺平老师讲MySQL】数据类型详解_第16张图片

【韩顺平老师讲MySQL】数据类型详解_第17张图片

-- 如果希望login_time自动更新,需要配置信息TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
CREATE TABLE t12 (

【韩顺平老师讲MySQL】数据类型详解_第18张图片

看到这里,你是不是看到上面的login_time的时间我没有插入信息,但是他自动记录了插入这条记录时的时间.这就是timestamp的用法.(ps:注意时间信息的插入都要带单引号,并且注意格式—:::: YYYY-MM-DD HH:mm:ss

P19.创建表的练习

题目:【韩顺平老师讲MySQL】数据类型详解_第19张图片

【韩顺平老师讲MySQL】数据类型详解_第20张图片

你可能感兴趣的:(韩顺平老师讲MySQL,mysql,数据库,sql)