数据类型【MySQL】

建立表

mysql> create table if not exists  user1(-> id int ,-> name varchar (20) comment '用户名' ,-> password  char (32)  comment '用户名的密码' ,-> birthday  date comment '用户的生日'-> )character set utf8 collate utf8_general_ci engine MyIsam;
Query OK, 0 rows affected (0.00 sec)
mysql> create table if not exists user2(-> name varchar (20) comment '用户名' ,-> birthday date comment'用户的生日'-> )character set utf8 collate utf8_general_ci engine=InnoDB;
Query OK, 0 rows affected (0.01 sec)

查看表

mysql> show tables;
+-------------------+
| Tables_in_user_db |
+-------------------+
| user1             |
| user2             |
+-------------------+
2 rows in set (0.00 sec)

查看具体的表中的详细信息

mysql> desc user1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| password | char(32)    | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

查看当时创建user1表中的语法细节

mysql> show create table user1  \G
*************************** 1. row ***************************Table: user1
Create Table: CREATE TABLE `user1` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL COMMENT '用户名',`password` char(32) DEFAULT NULL COMMENT '用户名的密码',`birthday` date DEFAULT NULL COMMENT '用户的生日'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

删除表

mysql> show tables;
+-------------------+
| Tables_in_user_db |
+-------------------+
| user1             |
| user2             |
+-------------------+
2 rows in set (0.00 sec)mysql> drop table user2 ;
Query OK, 0 rows affected (0.01 sec)

修改表的名字

alter table user1 rename to user

mysql> show tables;
+-------------------+
| Tables_in_user_db |
+-------------------+
| user1             |
| user2             |
+-------------------+
2 rows in set (0.00 sec)mysql> alter table user1 rename to user ;

向表中插入信息

mysql> insert  into user values (1 , '张三', '12345','2010-10-1');
Query OK, 1 row affected (0.00 sec)mysql> insert  into user values (2 , '李四', '54321','2015-10-1');
Query OK, 1 row affected (0.00 sec)mysql> select * from user ;
+------+--------+----------+------------+
| id   | name   | password | birthday   |
+------+--------+----------+------------+
|    1 | 张三   | 12345    | 2010-10-01 |
|    2 | 李四   | 54321    | 2015-10-01 |
+------+--------+----------+------------+
2 rows in set (0.00 sec)

新增一列,对原来数据无影响

mysql> select * from user ;
+------+--------+----------+------------+
| id   | name   | password | birthday   |
+------+--------+----------+------------+
|    1 | 张三   | 12345    | 2010-10-01 |
|    2 | 李四   | 54321    | 2015-10-01 |
+------+--------+----------+------------+
2 rows in set (0.00 sec)mysql> alter table user add image_path varchar(128) comment '这个是用户的头像路径' after birthday;
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql>  select * from user ;
+------+--------+----------+------------+------------+
| id   | name   | password | birthday   | image_path |
+------+--------+----------+------------+------------+
|    1 | 张三   | 12345    | 2010-10-01 | NULL       |
|    2 | 李四   | 54321    | 2015-10-01 | NULL       |
+------+--------+----------+------------+------------+
2 rows in set (0.00 sec)

alter table user modify name varchar (60),修改指定列中的属性, 将name改为60

这种修改是覆盖式修改

mysql> desc user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| password | char(32)    | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)mysql> alter table user modify name varchar (60) ;
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> desc user ;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| name       | varchar(60)  | YES  |     | NULL    |       |
| password   | char(32)     | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| image_path | varchar(128) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

删除一列

mysql> desc user ;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| name       | varchar(60)  | YES  |     | NULL    |       |
| password   | char(32)     | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| image_path | varchar(128) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)mysql> select * from user ;
+------+--------+----------+------------+------------+
| id   | name   | password | birthday   | image_path |
+------+--------+----------+------------+------------+
|    1 | 张三   | 12345    | 2010-10-01 | NULL       |
|    2 | 李四   | 54321    | 2015-10-01 | NULL       |
+------+--------+----------+------------+------------+
2 rows in set (0.00 sec)mysql> alter table user drop password;
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> desc user ;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| name       | varchar(60)  | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| image_path | varchar(128) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

修改表的名字

to可以省略不写

mysql> alter table user rename to User;
Query OK, 0 rows affected (0.00 sec)mysql> show tables;
+-------------------+
| Tables_in_user_db |
+-------------------+
| User              |
+-------------------+
1 row in set (0.00 sec)

修改表中列的名称

ysql> alter table user change name xingming varchar (60) DEFAULT NULL;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

在这里插入图片描述

删除表

mysql> show tables;
+-------------------+
| Tables_in_user_db |
+-------------------+
| user              |
+-------------------+
1 row in set (0.00 sec)mysql> drop table user;
Query OK, 0 rows affected (0.00 sec)

数据类型

数值类型:

BIT(M) 位类型:M指定位数,默认值为1,范围为1-64
BOOL 布尔类型:使用1表示真,使用0表示假
TINYINT [UNSIGNED] 占用1字节,默认为有符号
SMALLINT [UNSIGNED] 占用2字节,默认为有符号
MEDIUMINT [UNSIGNED] 占用3字节,默认为有符号
INT [UNSIGNED] 占用4字节,默认为有符号
BIGINT [UNSIGNED] 占用8字节,默认为有符号
FLOAT[(M,D)] [UNSIGNED] M指定显示长度,D指定小数位数,占用4字节
DOUBLE[(M,D)] [UNSIGNED] M指定显示长度,D指定小数位数,占用8字节
DECIMAL(M,D) [UNSIGNED] M指定显示长度,D指定小数位数,每4个字节表示9个数字,小数点占用1字节

文本、二进制类型:

CHAR(L)固定长度字符串:L指定字符串长度,最大为255
VARCHAR(L)可变长度字符串:L指定字符串长度上限,最多占用65535字节
BLOB用于存储二进制数据
TEXT用于存储大文本数据

时间日期:

DATE / DATETIME日期类型:YYYY-MM-DD格式 / YYYY-MM-DD HH:MM:SS格式
TIMESTAMP时间戳:以YYYY-MM-DD HH:MM:SS格式进行显示

字符串类型:

ENUM 枚举类型:ENUM类型的取值范围需要在定义字段时进行指定,设置字段值时只允许从成员中选取单个值,其所需的存储空间由定义ENUM类型时指定的成员个数决定
SET 集合类型:SET类型的取值范围需要在定义字段时进行指定,设置字段值时可以从成员中选取一个或多个值,其所需的存储空间由定义SET类型时指定的成员个数决定

注意:MySQL本身是不支持bool类型的,当把一个数据设置成bool类型时,数据库会自动将其转换成tinyint(1)的数据类型,其实这个就是变相的bool类型,因为tinyint(1)只有1和0两种取值,可以分别对应bool类型的true和false。

float

mysql> create table if not exists t6(-> id bigint ,-> salary float (4,2) unsigned -> );
Query OK, 0 rows affected (0.01 sec)

decima

mysql> create table if not exists t7 (-> f1 float (10, 8) ,-> f2 decimal(4,2)-> );
Query OK, 0 rows affected (0.01 sec)

char

创建一个表,表当中包含一个char(2)的name列

mysql> create table  if not exists t8 (-> id int ,-> name char (2)-> );
Query OK, 0 rows affected (0.01 sec)

由于char(2)中最多可存储2个字符,只要插入的字符个数不超过2个都是能够成功插入的

如果插入的字符个数超过了2个,那么在插入数据时就会产生报错

mysql> insert into t8 (id ,name ) values (1,'a');
Query OK, 1 row affected (0.00 sec)mysql> insert into t8 (id ,name ) values (1,'b');
Query OK, 1 row affected (0.00 sec)mysql> insert into t8 (id ,name ) values (1,'ab');
Query OK, 1 row affected (0.01 sec)
mysql> insert into t8 (id ,name ) values (1,'abc');
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql> select * from t8;
+------+------+
| id   | name |
+------+------+
|    1 | a    |
|    1 | b    |
|    1 | ab   |
+------+------+
3 rows in set (0.00 sec)

字符并不只是指一个英文字母,一个汉字也是一个字符,因此只要插入的汉字个数不超过2个也是可以插入的

varchar

创建一个表,表当中包含一个varchar(6)的name列

mysql> create table if not exists t9 (-> id int ,-> name varchar (6)-> );
Query OK, 0 rows affected (0.03 sec)
mysql> insert into t9 (id ,name ) values (123,'sasaa');
Query OK, 1 row affected (0.00 sec)mysql> insert into t9 (id ,name ) values (123,'sasaadd');
ERROR 1406 (22001): Data too long for column 'name' at row 1

由于varchar(6)中最多可存储6个字符,只要插入的字符个数不超过6都是能够成功插入的

如果插入的字符个数超过了6个,那么在插入数据时就会产生报错

varchar类型可指定的字符个数上限

varchar类型最多占用65535字节,其中有1~2字节用来表示实际数据长度,还有1字节来存储其他控制信息,因此varchar类型的有效字节数最多是65532字节。

而varchar类型可指定的字符个数上限,与表的编码格式有关:

对于utf8编码来说,一个字符占用三个字节,因此varchar(L)中的L最大可指定为 65532 ÷ 3 = 21844
对于gbk编码来说,一个字符占用两个字节,因此varchar(L)中的L最大可指定为 65532 ÷ 2 = 32766

char&&varchar

char类型可存储字符上限为255,varchar类型可存储字符上限与表的编码格式有关。
char(L)定义后,无论存储的字符串长度是否到达L,都会开辟用于存储L个字符的定长空间,如果存储的字符串长度超过L则会报错。
varchar(L)定义后,会根据存储字符串的长度按需开辟空间,并且需要使用1-3字节的空间用于表示存储字符串的长度以及其他控制信息,如果存储的字符串长度超过L则会报错。

如何选取char和varchar类型?

char和varchar的优缺点如下:

char类型的数据是定长的,因此磁盘空间比较浪费,但是效率高(直接访问定长的空间)。
varchar类型的数据是变长的,因此磁盘空间比较节省,但是效率低(需要先读取存储字符串的长度,再访问指定长度的空间)。
如果要存储的数据是定长的,那就使用char类型进行存储,比如身份证号码、手机号、md5等。如果要存储的数据是变长的,那就使用varchar类型进行存储,比如名字、地址等。

时间日期类型

  • date:日期格式为YYYY-MM-DD,占用三字节。
  • datetime:时间日期格式为YYYY-MM-DD HH:MM:SS,占用八字节。
  • timestamp:时间戳,格式为YYYY-MM-DD HH:MM:SS,占用四字节。

创建一个表,表当中包含date、datetime和timestamp三种时间日期类型的列

mysql> create table  if not exists t11 (t1 date, t2 datetime , t3 timestamp);
Query OK, 0 rows affected (0.01 sec)
mysql> desc t11 ;
+-------+-----------+------+-----+-------------------+-----------------------------+
| Field | Type      | Null | Key | Default           | Extra                       |
+-------+-----------+------+-----+-------------------+-----------------------------+
| t1    | date      | YES  |     | NULL              |                             |
| t2    | datetime  | YES  |     | NULL              |                             |
| t3    | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------+-----------+------+-----+-------------------+-----------------------------+
3 rows in set (0.00 sec)

timestamp类型的t3列是不允许为空的,它的默认值为CURRENT_TIMESTAMP

如果插入数据时不插入t3列,那么就会自动插入当前的时间戳

mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| t1                |
| t11               |
| t2                |
| t3                |
| t4                |
| t5                |
| t6                |
| t7                |
| t8                |
| t9                |
+-------------------+
10 rows in set (0.00 sec)mysql> desc t11 ;
+-------+-----------+------+-----+-------------------+-----------------------------+
| Field | Type      | Null | Key | Default           | Extra                       |
+-------+-----------+------+-----+-------------------+-----------------------------+
| t1    | date      | YES  |     | NULL              |                             |
| t2    | datetime  | YES  |     | NULL              |                             |
| t3    | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------+-----------+------+-----+-------------------+-----------------------------+
3 rows in set (0.00 sec)mysql> insert into t11 (t1,t2) values ('2010-10-01','1949-10-01 08:00:00' );
Query OK, 1 row affected (0.00 sec)mysql> select * from t11;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 2010-10-01 | 1949-10-01 08:00:00 | 2024-10-23 22:39:32 |
+------------+---------------------+---------------------+
1 row in set (0.00 sec)

将t1更新 ,timestamp也会更新

mysql> select * from t11;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 2010-10-01 | 1949-10-01 08:00:00 | 2024-10-23 22:39:32 |
+------------+---------------------+---------------------+
1 row in set (0.00 sec)mysql> update t11 set t1='1999-01-01';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from t11;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 1999-01-01 | 1949-10-01 08:00:00 | 2024-10-23 22:42:38 |
+------------+---------------------+---------------------+
1 row in set (0.00 sec)

enum和set

enum和set类型的区别:

  • 在定义enum字段时需要提供若干个选项的值,在设置enum字段值时只允许选取其中的一个值。
  • 在定义set字段时需要提供若干个选项的值,在设置set字段值时可以选取其中的一个或多个值。

例如:

人的性别只能从男和女中进行二选一,定义成enum类型,人的爱好可能存在多个,定义成set

mysql> create table if not exists votes  ( username varchar (30), gender enum('nan' ,'nu') , hobby set('daima','yumaoqiu','zuqiu') )  ;
Query OK, 0 rows affected (0.01 sec)mysql> desc votes;
+----------+---------------------------------+------+-----+---------+-------+
| Field    | Type                            | Null | Key | Default | Extra |
+----------+---------------------------------+------+-----+---------+-------+
| username | varchar(30)                     | YES  |     | NULL    |       |
| gender   | enum('nan','nu')                | YES  |     | NULL    |       |
| hobby    | set('daima','yumaoqiu','zuqiu') | YES  |     | NULL    |       |
+----------+---------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into votes values ('lisi','ddsd' , 'daima' ) ;
ERROR 1265 (01000): Data truncated for column 'gender' at row 1

在这里插入图片描述

mysql> desc votes;
+----------+---------------------------------+------+-----+---------+-------+
| Field    | Type                            | Null | Key | Default | Extra |
+----------+---------------------------------+------+-----+---------+-------+
| username | varchar(30)                     | YES  |     | NULL    |       |
| gender   | enum('nan','nu')                | YES  |     | NULL    |       |
| hobby    | set('代码','羽毛球','足球') | YES  |     | NULL    |       |
+----------+---------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)mysql> insert into votes values ('caocao','nan','足球,羽毛球') ;
Query OK, 1 row affected (0.01 sec)

enum和set可以通过数字的方式进行设置

enum : 数字代表下标,下标从1开始,依次增加

​ 例如:

​ nan:1

​ nu : 2

set: 数字代表位图 ,比特位从低位向高位,比特位的位置代表哪一个爱好

代码、 羽毛球 、足球对应三个比特位 ,代码就是001 , 羽毛球就是010,足球就是100

代码、羽毛球和足球就是111

enum和set查找

select * from votes where hobby=‘代码’;查找爱好中只有代码

mysql> select  * from votes where gender='nan';
+----------+--------+----------------+
| username | gender | hobby          |
+----------+--------+----------------+
| zhangfei | nan    | 代码          |
| caocao   | nan    | 代码,yumaoqiu |
| 曹操     | nan    |                |
+----------+--------+----------------+
3 rows in set (0.00 sec)
mysql> select  * from votes where hobby='代码';
+----------+--------+-------+
| username | gender | hobby |
+----------+--------+-------+
| zhangfei | nan    | 代码 |
+----------+--------+-------+
1 row in set (0.00 sec)

查找爱好中代码,

mysql> select *from votes;
+----------+--------+------------------+
| username | gender | hobby            |
+----------+--------+------------------+
| 曹操     | 男     | 羽毛球,足球      |
| 曹操     | 男     | 羽毛球,足球      |
| 曹操     | 男     | 羽毛球           |
| 刘备     | 男     | 羽毛球           |
| 刘备     | 男     | 代码             |
+----------+--------+------------------+
5 rows in set (0.00 sec)mysql> select * from  votes where find_in_set('羽毛球' ,hobby);
+----------+--------+------------------+
| username | gender | hobby            |
+----------+--------+------------------+
| 曹操     | 男     | 羽毛球,足球      |
| 曹操     | 男     | 羽毛球,足球      |
| 曹操     | 男     | 羽毛球           |
| 刘备     | 男     | 羽毛球           |
+----------+--------+------------------+
4 rows in set (0.00 sec)
mysql> select * from  votes where find_in_set('羽毛球' ,hobby) and find_in_set('足球', hobby);
+----------+--------+------------------+
| username | gender | hobby            |
+----------+--------+------------------+
| 曹操     | 男     | 羽毛球,足球      |
| 曹操     | 男     | 羽毛球,足球      |
+----------+--------+------------------+
2 rows in set (0.00 sec)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考(中级-软件设计师)算法分析篇(1024)

三、算法设计与分析 #1024程序员节|正文# 一、分治法 1.1 分而治之 对于一个规模为n的问题,若该问题可以容易的解决(比如说规模较小,则直接解决,否则将其分解为k个规模较小的问题,这些子问题相互独立且与原问题形…

数组类型应用举例

在main.cpp里输入程序如下&#xff1a; #include "stdio.h" //使能printf()函数 #include <stdlib.h> //使能exit(); #define My_array_Size 10 //定义用My_array_Size代替 unsigned char My_array[My_array_Size]; //声明数组My_arra…

集群分发脚本

我的后端学习大纲 我的Linux环境搭建学习大纲 8.2.scp安全拷贝: 1.命令格式&#xff1a;scp -r $pdir/$fname $user$host:$pdir/$fname2.具体命令&#xff1a; scp -r jdk1.8.0_321/ rootHadoop104:/opt/module 3.实际操作&#xff1a; 3.1.在hadoop2和hadoop3&#xff0c;had…

Verilog 0x01 基础

硬件描述语言 0x00 数电逻辑符号 与 & 或 | 异或 ^ 同或 ~^0x01 基本结构 1.1 线网&#xff08;wire&#xff09; wire 类型表示硬件单元之间的物理连线&#xff0c;由其连接的器件输出端连续驱动 如果没有驱动元件连接到 wire 型变量&#xff0c;缺省值一般为 “Z” …

h5页面与小程序页面互相跳转

小程序跳转h5页面 一个home页 /pages/home/home 一个含有点击事件的元素&#xff1a;<button type"primary" bind:tap"toWebView">点击跳转h5页面</button>toWebView(){ wx.navigateTo({ url: /pages/webview/webview }) } 一个webView页 /pa…

数据结构——队列和栈

目录 一、栈 1、概念与结构 2、栈的结构与初始化 3、入栈 4、出栈 5、取栈顶元素 6、取栈中有效元素个数 7、栈是否为空 二、队列 1、概念与结构 2、队列的结构与初始化 3、入队列 4、出队列 5、取队头数据 6、取队尾数据 7、队列判空 8、队列中有效元素个数 练习题目链 一…

(一)Mysql篇---Mysql整体架构

MySql框架浅析 首先&#xff0c;上一张图先让各位看看大致结构&#xff1a; 从上到下&#xff0c;依次说一下结构&#xff1a; 连接层&#xff1a;这里主要是处理客户端和数据库连接的&#xff0c;直接使用的Tomcat的连接池&#xff0c;可以调整最大连接数&#xff1b; 服务…

精益思维在新能源汽车研发中的应用体现

近年来&#xff0c;新能源汽车作为绿色出行的重要载体&#xff0c;其研发与生产模式正经历着深刻的变革。精益思维&#xff0c;这一源自制造业的管理理念&#xff0c;正逐步渗透并深刻影响着新能源汽车的研发过程&#xff0c;不仅提升了产品质量与生产效率&#xff0c;还促进了…

汽车级DC-DC转换器英飞凌TLF35584

上汽荣威都在用的汽车级DC-DC转换器英飞凌TLF35584 今天平台君从IPBrain数据库中给大家带来的一款由Infineon(英飞凌)推出的一款多路输出安全电源芯片,具备高可靠性和安全性。适用于汽车电子系统中的多种应用场景,如车身控制、安全气囊、防抱死制动系统,电子稳定控制系统等。…

数据结构:堆的应用

堆排序 假定有一组数据极多的数&#xff0c;让我们进行排序&#xff0c;那我们很容易想到一种经典的排序方法&#xff0c;冒泡排序&#xff0c;我们对冒泡排序的时间复杂度进行分析&#xff1a; 显然&#xff0c;冒泡排序的时间复杂度是O&#xff08;n^2&#xff09;,当数据量…

软考(中级-软件设计师)计算机系统篇(1024)

#1024程序员节|正文# 六、树和二叉树 6.1 树的基本概念 描述结果结点的度子结点的个数树的度最大结点的度叶子结点没有子结点的结点内部结点除根结点和叶子结点外的结点父节点有子结点的结点子节点有父结点的结点兄弟节点有同一个父结点的结点层次4层 6.2 二叉树的基本概念…

【Javaee】网络原理—TCP协议的核心机制

前言 TCP/IP五层协议是互联网中的主流模型&#xff0c;为网络通信提供了一个稳固的框架。 主要包含了应用层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层&#xff0c;物理层。 本篇主要介绍传输层的TCP协议的核心机制 一. 确认应答&#xff08;ack&#xf…

线程本地变量-ThreadLocal

一、ThreadLocal简介 ThreadLocal叫做线程变量&#xff0c;意思是ThreadLocal中填充的变量属于当前线程&#xff0c;该变量对其他线程而言是隔离的&#xff0c;也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本&#xff0c;那么每个线程可…

量子纠错--shor‘s 码

定理1 (量子纠错的条件) C是一组量子编码&#xff0c;P是映射到C上的投影算子。假设是一个算子元素描述的量子操作&#xff0c;那么基于量子编码C&#xff0c;存在一个能对抗描述的噪声的纠错操作R的充要条件是 对某个复元素厄米矩阵成立。 将算子元素称为导致的错误。如果这样…

[C++进阶数据结构]红黑树(半成品)

我们讲完了AVL树,它追求绝对平衡&#xff0c;从而导致插入和删除性能较差。今天我们来讲讲&#xff0c;红黑树&#xff0c;它是另一种平衡二叉搜索树&#xff0c;它追求相对平衡&#xff0c;使得增删查改的性能都极佳&#xff0c;时间复杂度皆为O(log2N)。 一、红黑树的概念 …

CSS3 动画相关属性实例大全(三)(columns、filter、flex、flex-basis 、flex-grow、flex-shrink属性)

CSS3 动画相关属性实例大全&#xff08;三) &#xff08;columns、filter、flex、flex-basis 、flex-grow、flex-shrink属性&#xff09; 本文目录&#xff1a; 一、columns属性&#xff08;设置元素的列宽和列数&#xff09; 二、filter属性&#xff08;调整图像、背景和边…

Ribbon客户端负载均衡策略测试及其改进

文章目录 一、目的概述二、验证步骤1、源码下载2、导入IDE3、运行前修改配置4、策略说明5、修改策略 三、最终结论四、改进措施1. 思路分析2. 核心代码3. 测试页面 一、目的概述 为了验证Ribbon客户端负载均衡策略在负载节点失效的情况下&#xff0c;是否具有故障转移的功能&a…

【逆向基础】十七、PE文件格式(二)

一、简介 本篇章主要PE文件组成部分中使用的结构体&#xff1b;根据结构体的成员变量去了解各个字节的含义。&#xff08;ps:我们依旧以”cmd.exe“为例展开解析&#xff1b;) 二、DOS Header 1、结构体&#xff1a;IMAGE_DOS_HEADER IMAGE_DOS_HEADER结构体的背景是为了兼…

忘记7-zip文件7-zip文件,还可以解压zip文件吗?

文件压缩与解压已成为我们日常处理数据和存储信息的常规操作。7-Zip&#xff0c;作为一款开源且功能强大的文件压缩工具&#xff0c;凭借其高压缩率、支持多种格式以及免费使用的特点&#xff0c;赢得了广大用户的青睐。然而&#xff0c;出于保护文件内容安全的考虑&#xff0c…

基于NVIDIA NIM平台—生成属于自己的DIY食谱

目录 一、介绍NVIDIA NIM平台 二、生成DIY食谱Demo 三、小结 一、介绍NVIDIA NIM平台 NVIDIA NIM&#xff08;Nvidia Inference Microservices&#xff09;平台是NVIDIA推出的一个微服务套件&#xff0c;旨在加速生成式AI模型在云端、数据中心和工作站上的部署和使用。以下是…