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

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

文章目录

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

P12.列类型有哪些?

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

image-20221017211727267image-20221017212713752

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

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

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

常用的是int

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

image-20221017213647623

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

image-20221017213723648

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

P14.位类型

# 添加数据

image-20221017215027801

image-20221017215022820

说明:

  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

image-20221017220229388

image-20221017220542780

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个字节用于记录大小)

image-20221017224219152

image-20221017224240848

注释快捷键:

image-20221017225001212

image-20221017225425240

image-20221017225452379

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

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

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

不区分中文还是英文

image-20221017230323668image-20221017230952985

也就是说:如果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:

image-20221017232330261

image-20221017232954400

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

image-20221017233456188

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

P19.创建表的练习

题目:image-20221017233850355

image-20221017235213056

相关文章:

  • 使用yolov8 进行实例分割训练
  • OCP Java17 SE Developers 复习题14
  • jvm中的垃圾回收器
  • elment-plus 中 table 左对齐
  • MajorDoMo thumb.php 未授权RCE漏洞复现(CNVD-2024-02175)
  • 基于SpringBoot + Vue 的电影售票及影院管理系统(前后端分离)
  • npm run dev和npm run serve两个命令的区别
  • 【C++】命名空间深度理解
  • iOS 通过NSURLProtocol拦截WKWebView网络请求
  • 2024数字中国创新大赛·数据要素赛道“能源大数据应用赛”正式上线!参赛指南请查收
  • Rust之构建命令行程序(四):用TDD(测试-驱动-开发)模式来开发库的功能
  • 第九届大数据与计算国际会议 (ICBDC 2024) 即将召开!
  • 认识和了解Linux文件系统。
  • Simulink 自动代码生成电机控制:基于Keil软件集成
  • 【ArchSummit】小红书缓存服务多云建设之路
  • Educational Codeforces Round 137 (Rated for Div. 2)-赛后总结
  • Python图形处理
  • 【网站架构】4核CPU的MySQL调优3万RPS吞吐量?数据库集群高可用
  • Codeforces Round #828 (Div. 3)-赛后总结
  • C语言指针个人理解
  • 网络安全系统性学习路线「全文字详细介绍」
  • 你有一份奖学金,请注意查收~浙江财经大学 MBA奖学金
  • 手把手教你Linux的服务管理
  • 实验三 Windows窗体的设计及常用控件(1)
  • 【计算机毕业设计】java SpringBoot校园大学生志愿者服务系统
  • 【深入理解Kafka系列】第六章 __consumer_offsets(位移主题)
  • 脑机接口科普0008——侵入式与非侵入式
  • Nginx网站服务
  • Python游戏嗷大喵快跑设计
  • nginx负载均衡高可用部署
  • 【附源码】计算机毕业设计SSM怦然心动网上服装商城
  • YOLOv5实现佩戴安全帽检测和识别(含佩戴安全帽数据集+训练代码)