【数据库初阶】MySQL数据类型

图片名称
🎉博主首页: 有趣的中国人

🎉专栏首页: 数据库初阶

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

在这里插入图片描述

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL数据类型 帮助您轻松入门,快速掌握核心概念。


如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!

文章目录

    • @[toc]
  • 1. 数值类型
    • 🎧1.1 数值类型纵览🎧
    • 🎧1.2 smallint 类型🎧
    • 🎧1.3 类比 C/C++ 截断操作🎧
    • 🎧1.4 修改表数据类型🎧
    • 🎧1.5 无符号类型🎧
  • 2. bit 类型
    • 🎧2.1 bit 类型介绍🎧
    • 🎧2.2 bit 类型详解🎧
  • 3. 小数类型
    • 🎧3.1 float类型🎧
    • 🎧3.2 decimal 类型🎧
  • 4. 字符串类型
    • 🎧4.1 char类型🎧
    • 🎧4.2 varchar类型🎧
    • 🎧4.3 char 和 varchar 比较🎧
  • 5. 日期类型
  • 6. enum 和 set
    • 🎧6.1 enum类型🎧
    • 🎧6.2 set 类型🎧
    • 🎧6.3 查找🎧

上一篇文章中,博主介绍了 :

  • MySQL表的相关操作

建议将上一篇文章看完之后再来看这篇文章,链接如下:

【数据库初阶】Linux中表的基础操作

那么接下来正文开始:



1. 数值类型

🎧1.1 数值类型纵览🎧

  • MySQL中数据类型为数值类型的如下:
数据类型字节数带符号最小值带符号最大值无符号最小值无符号最大值
TINYINT1-128 (-2^7)127 (2^7 - 1)0255 (2^8 - 1)
SMALLINT2-32,768 (-2^15)32,767 (2^15 - 1)065,535 (2^16 - 1)
MEDIUMINT3-8,388,608 (-2^23)8,388,607 (2^23 - 1)016,777,215 (2^24 - 1)
INT4-2,147,483,648 (-2^31)2,147,483,647 (2^31 - 1)04,294,967,295 (2^32 - 1)
BIGINT8-9,223,372,036,854,775,808 (-2^63)9,223,372,036,854,775,807 (2^63 - 1)018,446,744,073,709,551,615 (2^64 - 1)
  • 接下来,博主将以SMALLINT类型为例进行讲解:

🎧1.2 smallint 类型🎧

  1. 首先创建数据库 test1,之后进入此数据库:
    • 输入如下代码:
    • create database if not exists test1;
    • use test1;
  2. 创建表 t1,在其中插入一个类型为smallintid
    • create table if not exists t1(id smallint);
  3. 插入一条数据:
  • insert into t1 (id) values (100);

在这里插入图片描述

  1. 插入一个越界数 32768 或者 -32769
  • mysql> insert into t1 (id) values (32768);
  • mysql> insert into t1 (id) values (-32769);
  • 很明显会报错。

在这里插入图片描述

🎧1.3 类比 C/C++ 截断操作🎧

  • 如果我们在 C/C++ 中输入下面代码,会发生什么呢:
char ch = 12345;
std::cout << ch << std::endl;
  • 首先,因为char类型是 1 B y t e 1Byte 1Byte,范围是 -128 ~ 127
  • 所以很明显, 12345 12345 12345 超出范围了;
  • 但是一般情况下编译器不会直接报错,而是会在编译阶段发生截断操作
  • 这就意味着编译器只会读取 12345 12345 12345 转化成 二进制的低八位
    • 12345 12345 12345的二进制: 0011 0011 0011 0000 0000 0000 0011 0011 0011 1001 1001 1001
    • 截断: 0011 0011 0011 1001 1001 1001 (BIN) -> 57 57 57 (DEC)
  • 所以结果就是 57 57 57 对应的 ASCII 码值。
  • 所以在MySQL中在我们输入的时候就给了限制,这其实是对 程序员的一种约束

🎧1.4 修改表数据类型🎧

  • 如果我们将定义时比较大范围的类型改成比较小的类型会发生什么呢?例如将smallint 改变成 tinyint

在这里插入图片描述

  • 这里会直接报错,所以系统会 约束 程序员不要将大范围的类型转换成小范围的类型。

🎧1.5 无符号类型🎧

  • MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的;
  • 可以通过UNSIGNED来说明某个字段是无符号的;
  • 输入下面代码给刚才的 t1 表添加一列:
    • mysql> alter table t1 add column age tinyint unsigned;
    • 注意这里 unsigned 要放在 tinyint 后面。

在这里插入图片描述

  • 由于无符号的tinyint的范围是 0 ~ 255 ,尝试插入 256,输入以下代码:
    • insert into t1 (id, age) values (1,256);

在这里插入图片描述

  • 很明显,这也被约束了。

2. bit 类型

🎧2.1 bit 类型介绍🎧

  • bit(M) : 位字段类型。M表示每个值的位数,范围从1 ~64。如果M被忽略,默认为1
  • 创建表 t2,字段为 id intgender bit,代码如下:
mysql> create table if not exists t2(
    -> 		id int,
    -> 		gender bit
    -> );
  • 注意细节,默认bit就是1位
    在这里插入图片描述

🎧2.2 bit 类型详解🎧

  • 在表中插入两行:(10, 0)(20, 1)

    • 输入代码:
    • mysql> insert into t2 (id, gender) values (10, 0);
    • mysql> insert into t2 (id, gender) values (20, 1);
  • 进行查询:

    • 输入语句:mysql> select * from t2;

在这里插入图片描述

  • 说明:博主这个MySQL8.0版本之后,如果是在此版本之前,bit类型会显示ASCII码对应的值,但是我这个版本就显示十六进制了。

完整操作代码:

mysql> insert into t2 (id, gender) values (10, 0);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t2 (id, gender) values (20, 1);
Query OK, 1 row affected (0.01 sec)

mysql> select * from t2;
+------+----------------+
| id   | gender         |
+------+----------------+
|   10 | 0x00           |
|   20 | 0x01           |
+------+----------------+
2 rows in set (0.00 sec)


3. 小数类型

🎧3.1 float类型🎧

  • 语法:float[(m, d)] [unsigned]

    • M 指定显示长度;
    • d 指定小数位数,占用空间4个字节。
  • 如果是 float(4,2),那么它的范围就是 -99.99 ~ 99.99,例如:

    • 插入99.99 是可以的:insert into t3 values(100, 99.99);
    • 插入 100.00 是不行的:insert into t3 values(100, 100.00);
    • 但是插入 99.994 也是可以的,但是会被优化掉(四舍五入):insert into t3 values(100, 99.994);
    • 类似的,插入-99.994是可以的,但是插入-99.995就不行了:
      • insert into t3 values(100, -99.994);
      • insert into t3 values(100, -99.995);

在这里插入图片描述

  • 完整代码:
mysql> create table t3(
    -> id int,
    -> salary float(4,2)
    -> );
Query OK, 0 rows affected, 1 warning (0.10 sec)

mysql> insert into t3 values(100, 99.99);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t3 values(100, 100);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> insert into t3 values(100, 100.00);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> insert into t3 values(100, 99.994);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t3 values(100, -99.994);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t3 values(100, -99.995);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> select * from t3;
+------+--------+
| id   | salary |
+------+--------+
|  100 |  99.99 |
|  100 |  99.99 |
|  100 | -99.99 |
+------+--------+
3 rows in set (0.00 sec)

  • 默认情况下,浮点数都是带符号的,如果不要带符号的浮点数,例如:float(4,2) unsigned 范围就是 0 ~ 99.99,这里就不尝试了。

🎧3.2 decimal 类型🎧

  • 语法:decimal(m, d) [unsigned] :

    • 定点数m指定长度;
    • d表示小数点的位数。
  • decimal(5,2) 表示的范围是 -999.99 ~ 999.99

  • decimal(5,2) unsigned 表示的范围 0 ~ 999.99

decimalfloat很像,但是有区别!

  • 他们表示的精度不一样!
  • 例如,创建下面的表:
mysql> create table t4(
    -> 		id int,
    -> 		salary1 float(10,8),
    -> 		salary2 decimal(10,8)
    -> );
  • 插入元素 23.12345612
    • mysql> insert into t4 values(100, 23.12345612, 23.12345612);
  • 查看结果:select * from t4;

在这里插入图片描述

  • 可以发现decimal的精度更准确,因此如果我们希望某个数据表示高精度,选择decimal
  • float表示的精度大约是7
    • decimal整数最大位数m65
    • 支持小数最大位数d30。如果d被省略,默认为0,如果m被省略,默认是10

完整代码:

mysql> create table t4(
    -> id int,
    -> salary1 float(10,8),
    -> salary2 decimal(10,8)
    -> );
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql>  insert into t4 values(100, 23.12345612, 23.12345612);
Query OK, 1 row affected (0.01 sec)

mysql> select * from t4;
+------+-------------+-------------+
| id   | salary1     | salary2     |
+------+-------------+-------------+
|  100 | 23.12345695 | 23.12345612 |
+------+-------------+-------------+
1 row in set (0.00 sec)


4. 字符串类型

🎧4.1 char类型🎧

  • 语法:char(L)

    • 固定长度字符串,L是可以存储的长度;
    • 单位为 字符
      • 注意这里是字符,不是字节,字符就是你实际存了多少个。
    • 最大长度值可以为255
  • 示例:

mysql> create table t5(
    -> 		id int,
    -> 		name char(3)
    -> );
  • 插入元素,下面都正确:

    • insert into t5 values(1,'张三三');
    • insert into t5 values(2,'abc');
    • insert into t5 values(3,'李四');
  • 因为存放的是字符,不管是字母还是汉字都是正确的,但是char不能超过255个字符。

🎧4.2 varchar类型🎧

  • 语法:varchar(L)
    • 可变长度字符串,
    • L表示字符长度,最大长度65535字节
      • 注意这里单位就是字节了!

关于L最大值的讲解:

  • utf8mb4中,每个字符可以是1~4个字节长度,具体可以看下图:

在这里插入图片描述

  • 那么L的最大值应该是什么呢?还需要了解下面一点:
  • 对于 VARCHAR,存储内容需要额外加上 1~2 字节的长度前缀,用于表示数据的实际字节长度:
    • 如果字段定义的最大长度 ≤ 255,使用 1 字节表示长度;
    • 如果字段定义的最大长度 > 255,使用 2 字节表示长度。
  • 因此,MySQL考虑的是最坏的情况:
    • 取出两个字节的长度,假设每个字符都是四个字节,就可以得到下面的结果:
    • ( 65535 − 2 ) / 4 = 16383 (65535 - 2) / 4 = 16383 (655352)/4=16383

在这里插入图片描述

  • 示例:
mysql> insert into t7 values(100, '我爱你,中国');
Query OK, 1 row affected (0.00 sec)

mysql> select * from t7;
+------+--------------------+
| id   | name               |
+------+--------------------+
|  100 | 我爱你,中国         |
+------+--------------------+
1 row in set (0.00 sec)


🎧4.3 char 和 varchar 比较🎧

  • 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
  • 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
  • 定长的磁盘空间比较浪费,但是效率高。
  • 变长的磁盘空间比较节省,但是效率低。
  • 定长的意义是,直接开辟好对应的空间
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

5. 日期类型

常用的日期有如下三个:

  • date :日期 'yyyy-mm-dd' ,占用三字节;

  • datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 10009999 ,占用八字节;

  • timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字节。

  • 示例:

//创建表
mysql> create table birthday (t1 date, t2 datetime, t3 timestamp);
Query OK, 0 rows affected (0.01 sec)
//插入数据:
mysql> insert into birthday(t1,t2) values('1997-7-1','2008-8-8 12:1:1'); --插入两种时间
Query OK, 1 row affected (0.00 sec)
mysql> select * from birthday;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 1997-07-01 | 2008-08-08 12:01:01 | 2017-11-12 18:28:55 | --添加数据时,时间戳自动补上当前时间
+------------+---------------------+---------------------+
//更新数据:
mysql> update birthday set t1='2000-1-1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from birthday;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 2000-01-01 | 2008-08-08 12:01:01 | 2017-11-12 18:32:09 | -- 更新数据,时间戳会更新成当前时间
+------------+---------------------+---------------------+

6. enum 和 set

🎧6.1 enum类型🎧

  • enum是枚举类型,学过C的都很熟悉;
  • 语法:
  • enum('选项1','选项2','选项3',...);

示例:

  1. 创建表
  2. 插入数据
    • 这里插入数据可以选一个插入;
    • 当然也可以用下标来插入 ,开始的下标是1
mysql> create table t8 (
    -> 		gender enum('男','女')
    -> );
mysql> insert into t8 values('男');
Query OK, 1 row affected (0.01 sec)

mysql> insert into t8 values('女');
Query OK, 1 row affected (0.01 sec)

// 或者下标:

mysql> insert into t8 values(1);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t8 values(2);
Query OK, 1 row affected (0.01 sec)


🎧6.2 set 类型🎧

  • 语法:set('选项值1','选项值2','选项值3', ...);
  • 这是一个集合类型,可以从中选择多个!
  • 创建一个表,其中包含爱好的set类型

在这里插入图片描述

  • 向其中插入元素:

在这里插入图片描述

  • set中就不可以用下标了,这里是 位图的形式
    • 例如一共有五个爱好,如果想象成5个二进制位,如果对应的位置是你的爱好,此为就是1
    • 例如这五个全都是我的爱好,那么 00001 00001 00001 1111 1111 1111 就是 31 31 31

在这里插入图片描述

  • 如果只喜欢爬山和游泳,那么就是 0000 0000 0000 0011 0011 0011,转化成十进制就是 3 3 3

在这里插入图片描述

  • 那如果是0会发生什么呢?
    • 这里是空不是没有数据!

在这里插入图片描述

🎧6.3 查找🎧

  • 现在先看一下表:
mysql> select * from t9;
+--------+---------------------------------------+
| name   | hobby                                 |
+--------+---------------------------------------+
| Alice  | 爬山                                  |
| Alan   | 足球,代码                             |
| Mikael | 爬山,游泳,乒乓球,足球,代码            |
| Peter  | 爬山,游泳                             |
| kk     |                                       |
+--------+---------------------------------------+
5 rows in set (0.00 sec)

  • 假如我要查找所有喜欢爬山的人怎么找呢?用到 find_in_set() 函数
  • 这个函数表示查找一个元素是否在集合中,返回0为假,非0为真

在这里插入图片描述

mysql> select find_in_set('a','a,b');
+------------------------+
| find_in_set('a','a,b') |
+------------------------+
|                      1 |
+------------------------+
1 row in set (0.00 sec)

  • 所以就有了下面的用法:
    • where 有点类似于 if 语句
mysql> select * from t9 where find_in_set('爬山',hobby);
+--------+---------------------------------------+
| name   | hobby                                 |
+--------+---------------------------------------+
| Alice  | 爬山                                  |
| Mikael | 爬山,游泳,乒乓球,足球,代码            |
| Peter  | 爬山,游泳                             |
+--------+---------------------------------------+
3 rows in set (0.00 sec)

  • 当然,如果想要查找喜欢爬山和游泳的人,可以用and连接两个find_in_set()函数,例如:
mysql> select * from t9 where find_in_set('爬山',hobby) and find_in_set('游泳',hobby);
+--------+---------------------------------------+
| name   | hobby                                 |
+--------+---------------------------------------+
| Mikael | 爬山,游泳,乒乓球,足球,代码            |
| Peter  | 爬山,游泳                             |
+--------+---------------------------------------+
2 rows in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

webrtc 源码阅读 make_ref_counted模板函数用法

目录 1. 模板参数解析 1.1 typename T 1.2 typename... Args 1.3 typename std::enable_if::value, T>::type* nullptr 2. scoped_refptr 3. new RefCountedObject(std::forward(args)...); 4. 综合说明 5.在webrtc中的用法 5.1 peerConnectionFactory对象的构建过…

python参数传递不可变对象含可变子对象

当传递不可变对象时。不可变对象里面包含的子对象是可变的。则方法内修改了这个可变对象&#xff0c;源对象也发生了变化。 a (10, 20, [5, 6]) print("a", id(a))def test01(m):print("m", id(m))m[2][0] 888print("修改m后m的值为{}".forma…

qt5.15.2+visual studio2022 免安装版环境配置

1.环境准备 visual studio2022qt5.15.2&#xff08;免安装版本&#xff09; 2.环境配置 2.1 打开首选项 2.2 添加Qt版本 2.3 构建套件手动添加Qt 5.15.2&#xff08;msvc2019_64&#xff09;并配置如下 3.新建项目 问题1&#xff1a;qt creator 没有欢迎界面 解决办法&#…

KOI技术-事件驱动编程(Sping后端)

1 “你日渐平庸&#xff0c;甘于平庸&#xff0c;将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的&#xff0c;那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人&#xff0c;和他们斗了那么久&#xff0c;最终却要变得和他们一样&#xff0c;…

华为消费级QLC SSD来了

近日&#xff0c;有关消息显示&#xff0c;华为的消费级SSD产品线&#xff0c;eKitStor Xtreme 200E系列&#xff0c;在韩国一家在线零售商处首次公开销售&#xff0c;引起了业界的广泛关注。 尽管华为已经涉足服务器级别的SSD制造多年&#xff0c;但直到今年6月才正式推出面向…

007-构建工具大进步:Amper Amper Amper!

Amper Amper Amper! 今天天气不好&#xff0c;送孩子上少年宫之后就在茶馆里坐着。突然看到一个帖子&#xff1a;Project configuration with Amper&#xff0c;看得心情大好。 用Kotlin也有个大概几年的时间&#xff0c;开发了几个小工具&#xff0c;感觉很是不错。但是配置…

STM32 高级 物联网通讯之LoRa通讯

目录 LoRa通讯基础知识 常见的3种通讯协议 远距离高速率的传输协议 近距离高速率传输技术 近距离低功耗传输技术 低功耗广域网 采用授权频段技术 非授权频段 LoRa简介 LoRa的特点 远距离 低功耗 安全 标准化 地理定位 移动性 高性能 低成本 LoRa应用 LoRa组…

SAP月结、年结前重点检查事项(后勤与财务模块)

文章目录 一、PP生产模块相关的事务检查二、SD销售模块相关的事务检查:三、MM物料管理模块相关的事务检查四、FICO财务模块相关的事务检查五、年结前若干注意事项【SAP系统PP模块研究】 #SAP #生产订单 #月结 #年结 一、PP生产模块相关的事务检查 1、月末盘点后,生产用料的…

重装操作系统后 Oracle 11g 数据库数据还原

场景描述&#xff1a; 由于SSD系统盘损坏&#xff0c;更换硬盘后重装了操作系统&#xff0c;Oracle数据库之前安装在D盘(另一个硬盘)&#xff0c;更换硬盘多添加一个盘符重装系统后盘符从D变成E&#xff0c;也就是之前的D:/app/... 变成了现在的 E:/app/...&#xff0c;重新安装…

2D图像测量到3D点云之物体三维尺寸测量!!!!

0&#xff0c;引言 本文将从双目采集的2D图像到3D点云进行转化&#xff0c;并进行物体尺寸测量&#xff0c;旨在为读者展示2D图像如何关联3D点云&#xff0c;并进行相关工业应用。 将2D图像转化为3D点云&#xff0c;并进行物体尺寸测量的技术&#xff0c;在工业领域有着广泛的…

python 渗透开发工具之SQLMapApi Server不同IP服务启动方式处理 解决方案SqlMapApiServer外网不能访问的情况

目录 说在前面 什么是 SQLMapAPI 说明 sqlmapApi能干什么 sqlmapApi 服务安装相关 kali-sqlmap存放位置 正常启动sqlmap-api server SqlMapApi-Server 解决外网不能访问情况 说在前面 什么是sqlmap 这个在前面已经说过了&#xff0c;如果这个不知道&#xff0c;就可以…

如何添加使用高德地图资源

‌高德地图瓦片地址包括以下几种类型‌&#xff1a;‌12 ‌矢量底图‌&#xff1a; 地址&#xff1a;https://wprd04.is.autonavi.com/appmaptile?langzh_cn&size1&scale1&style7&x{x}&y{y}&z{z}描述&#xff1a;包含路网和注记的矢量底图。 ‌卫星影…

智能家居体验大变革 博联 AI 方案让智能不再繁琐

1. 全球AI技术发展背景及智能家居市场趋势 人工智能&#xff08;AI&#xff09;技术的飞速发展正在推动全球各行业的数字化转型。国际电信联盟与德勤联合发布《人工智能向善影响》报告指出&#xff0c;全球94%的商界领袖认为&#xff0c;人工智能技术对于其企业在未来5年内的发…

第三代增强经典BADI-增强菜单栏和子屏幕

文章目录 创建经典BADI实施BADI创建屏幕绘制屏幕 定义GUI运行结果程序代码 创建经典BADI 实施BADI 创建屏幕 绘制屏幕 定义GUI 运行结果 程序代码 *&---------------------------------------------------------------------* *& Report ZRP_BADITEST *& *&-…

联通 路由器 创维SK-WR9551X 联通华盛VS010 组mesh 和 锐捷X32 PRO 无缝漫游

前言 联通路由器&#xff1a;联通创维SK-WR9551X&#xff0c;联通华盛VS010组mesh&#xff0c;并与锐捷X32 PRO混合组网&#xff0c;开启无限漫游。 1、mesh ≠ 无缝漫游 mesh是实现路由器快速组网的一种方式&#xff0c;通过mesh组网后可以实现无缝漫游。 mesh组网的设备要…

如何使用大语言模型进行事件抽取与关系抽取

诸神缄默不语-个人CSDN博文目录 文章目录 1. 什么是事件抽取与关系抽取&#xff1f;2. 示例&#xff1a;使用大语言模型进行事件抽取与关系抽取 1. 什么是事件抽取与关系抽取&#xff1f; 事件抽取是指从文本中识别出与某些“事件”相关的信息。这些事件通常包括动作、参与者、…

Mysql COUNT() 函数详解

简介 COUNT()函数定义 COUNT()函数是SQL中常用的 聚合函数 &#xff0c;用于统计满足特定条件的记录数。它可以灵活地应用于各种查询场景&#xff0c;帮助用户快速获取所需的数据统计信息。该函数不仅能够计算所有行的数量&#xff0c;还能针对特定列进行计数&#xff0c;并支…

SD卡恢复数据:快速找回丢失文件!

由于其小尺寸和便携性&#xff0c;SD卡作为外部存储设备在用户中广泛应用。它适用于各种设备&#xff0c;例如数码相机、摄像机、音乐播放器、手机、电视、无人机等。 但是&#xff0c;与其他类型的存储设备一样&#xff0c;SD卡很精致&#xff0c;使用一段时间后可能会出现程…

OpenStack系列第四篇:云平台基础功能与操作(Dashboard)

文章目录 1. 镜像&#xff08;Image&#xff09;添加镜像查看镜像删除镜像 2. 卷&#xff08;Volume&#xff09;创建卷查看卷删除卷 3. 网络&#xff08;虚拟网络&#xff09;创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对&#xff08…

HTML——43.创建表格

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>表格</title></head><body><!--table标签用来定义表格&#xff0c;border属性表示边框--><!--tr标签表示表格中的一行--><!--th标签表示表…