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

『 MySQL数据库 』数据库之表的约束

文章目录

  • 前言 💻
    • 空属性约束(非空约束) 🔖
    • default约束(默认值约束,缺省) 🔖
    • 列描述comment 🔖
    • 数字类型长度zerofill 🔖
    • 主键primary key 🔖
      • 📍 追加主键 📍
      • 📍 删除主键 📍
      • 📍 复合主键 📍
    • 自增长 🔖
        • 📍 在InnoDB存储引擎中自增值的跳跃 📍
    • 唯一键unique 🔖
    • 外键 🔖


前言 💻

数据库是一个用来管理、组织、存储数据的一个工具,一个数据库可以存放大量的数据,而为了存放这些数据并将这些数据进行组织,那么为了便于组织和管理,所存储的数据必然要使用分区以特定的格式进行存储;

而对于各个用户来说用户不一定会将所存储的数据以特定的形式表标准准的进行存放,为了能使用户以更加正确的方式进行存放,数据库中有了一个为表的约束的概念;

表的约束实际上约束的是用户,使用户必须以规定的格式或者类型才能将数据存放进数据库;


空属性约束(非空约束) 🔖

NULLNOT NULL;

  • NULL

    默认可以为空(非必填);

    语法(例如):

    CREATE TABLE IF NOT EXISTS Students(->	name varchar(20) null comment'姓名',->	gender enum('男','女') null comment'性别',->	numbers char(11) null comment'电话号码'->	);
    

    其中关键字为null且若是有comment时这个注释将加在最后;

  • NOT NULL

    默认不能为空(必填);

    语法(例如):

    CREATE TABLE IF NOT EXISTS Students(->	name varchar(20) not null comment'姓名',->	gender enum('男','女') not null comment'性别',->	numbers char(11) not null comment'电话号码'->	);
    

    其中关键字为not null且若是有comment时这个注释将加在最后;

    当约束为not null时插入数据不插入当前字段时将会报错;

    在这里插入图片描述


default约束(默认值约束,缺省) 🔖

  • default

    该约束为默认值,意思也为缺省值;

    语法(例如):

    CREATE TABLE IF NOT EXISTS Students(->	name varchar(20) default'xxx' comment'姓名',->	gender enum('男','女') default'男' comment'性别',->	numbers char(11) default'123456' comment'电话号码'->	);
    

在这里插入图片描述

在MySQL的语法中支持default约束与not null约束同时定义(不冲突),

若是这两个约束同时出现,在插入数据时若是没有指定需要插入的数据则使用default约束所指定的缺省值,

若是指定插入数据则使用插入的数据,当然这个数据必须符合该类型,同时该数据不能为NULL,这就是default约束与not null约束共同定义的条件;

CREATE TABLE IF NOT EXISTS Students(->	name varchar(20) not null default'xxx' comment'姓名',->	gender enum('男','女') not null default'男' comment'性别',->	numbers char(11) not null default'123456' comment'电话号码'->	);

insert into Students values(NULL,NULL,NULL) #error 可以缺省不传,但是传入的参数要符合类型且不能为NULL

在这里插入图片描述


列描述comment 🔖

列描述通常是在创建一个列(字段)时对该字段的描述(注释);

CREATE TABLE IF NOT EXISTS Students(->	name varchar(20) comment'姓名',->	gender enum('男','女') comment'性别',->	numbers char(11) comment'电话号码'->	);

其中comment即为列描述;

使用desc查看表结构的时候不能看见comment列描述,使用show create table可以;


数字类型长度zerofill 🔖

假设存在一个表,且表内数据类型为int,在使用desc查看表结构时将会看到实际上int类型后跟了一个(11);

在这里插入图片描述

当给这个字段加上zerofill属性后将会发现其实就是0填充;

在这里插入图片描述


主键primary key 🔖

主键一般是用来约束唯一的字段,它约束了用户在插入该字段的数据不能重复,不能为空,且主键只能有一个;

一般主键字段用来当作一个数据的唯一标识符;

主键一般为整数类型;

在这里插入图片描述


📍 追加主键 📍

当一个字段一开始没有设定主键也可以在创建之后设置主键;

但是使用这种方式设定主键时应该注意在此之前应确保该表中的要设为主键的字段不存在重复数据

alter table table_name modify 字段属性 primary key comment'描述';

在这里插入图片描述

如果已经需要成为主键的字段内存在重复的数据时,再将该字段设置为主键时将会报错;

在这里插入图片描述


📍 删除主键 📍

alter table table_name drop primary key;

使用该命令可以删除primary key主键,由于表中只能拥有一个主键,所以在删除主键时指定主键即可;


📍 复合主键 📍

在一个表中只能拥有一个主键但不代表一个主键内只能拥有一个字段;

mysql> create table if not exists t4(-> id1 int not null,-> id2 int(5) unsigned zerofill not null,-> name varchar(20) not null default'xxx',-> primary key(id1,id2)-> ); # 将id1与id2设为复合主键mysql> desc t4;
+-------+--------------------------+------+-----+---------+-------+
| Field | Type                     | Null | Key | Default | Extra |
+-------+--------------------------+------+-----+---------+-------+
| id1   | int(11)                  | NO   | PRI | NULL    |       |
| id2   | int(5) unsigned zerofill | NO   | PRI | NULL    |       |
| name  | varchar(20)              | NO   |     | xxx     |       |
+-------+--------------------------+------+-----+---------+-------+

从上面可以看出成功的创建出了一个复合主键;

mysql> desc t4;
+-------+--------------------------+------+-----+---------+-------+
| Field | Type                     | Null | Key | Default | Extra |
+-------+--------------------------+------+-----+---------+-------+
| id1   | int(11)                  | NO   | PRI | NULL    |       |
| id2   | int(5) unsigned zerofill | NO   | PRI | NULL    |       |
| name  | varchar(20)              | NO   |     | xxx     |       |
+-------+--------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)mysql> ^C
mysql> insert into t4 values(1,1,'xxx');
Query OK, 1 row affected (0.00 sec)mysql> insert into t4 values(1,2,'xxx');
Query OK, 1 row affected (0.00 sec)mysql> insert into t4 values(2,1,'xxx');
Query OK, 1 row affected (0.00 sec)mysql> insert into t4 values(2,2,'xxx');
Query OK, 1 row affected (0.00 sec)mysql> select * from t4;
+-----+-------+------+
| id1 | id2   | name |
+-----+-------+------+
|   1 | 00001 | xxx  |
|   1 | 00002 | xxx  |
|   2 | 00001 | xxx  |
|   2 | 00002 | xxx  |
+-----+-------+------+
4 rows in set (0.00 sec)mysql> insert into t4 values(2,1,'xxx'); #报错
ERROR 1062 (23000): Duplicate entry '2-00001' for key 'PRIMARY'

自增长 🔖

当一个字段需要进行自增长时(例如id主键),则需要一个约束来帮助其进行自增;

在MySQL中auto_increment可以使一个字段内的数据在一次插入时进行自增长+1(不插入该值的情况下);

但是在使用自增长的时候也有一定的条件:

  • 任何一个字段要做自增长,前提是本身是一个索引(key栏有值)
  • 自增长的字段必须是整数
  • 一张表中最多只能有一个自增长
mysql> desc t5;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)      | YES  |     |         |                |
+-------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)mysql> insert into t5 (name)value('Zhangsan');
Query OK, 1 row affected (0.00 sec)mysql> insert into t5 (name)value('Zhangshan');
Query OK, 1 row affected (0.00 sec)mysql> insert into t5 values(100,'Zhangshan');
Query OK, 1 row affected (0.00 sec)mysql> insert into t5 (name)values('Zhangshang');
Query OK, 1 row affected (0.00 sec)mysql> select * from t5;
+-----+------------+
| id  | name       |
+-----+------------+
|   1 | Zhangsan   |
|   2 | Zhangshan  |
| 100 | Zhangshan  |
| 101 | Zhangshang |
+-----+------------+
4 rows in set (0.00 sec)
📍 在InnoDB存储引擎中自增值的跳跃 📍

如果表的存储引擎是InnoDB的话当数据插入失败则会出现auto_increment自增值跳跃的情况;

在这里插入图片描述


唯一键unique 🔖

一张表中有一般有很多的字段所存储的数据都需要具有唯一性,如(身份证,银行卡号,邮箱)等等;

在MySQL中除了主键以外还存在一个约束为唯一键;

当然唯一键与主键也有很多的不同之处,最主要的一点就是:

  • 对于主键来说,一般主键一般是来维护数据的唯一性,在绝大多数情况下主键一般是作每个数据的标识符,使得用户在对该数据进行操作的时候能够通过这个标识符达到精确搜索到该数据;
  • 对于唯一键来说,唯一键更多的是在业务上来维护数据的唯一性,如(一个人的邮箱,身份证,银行卡等等);

除了这两点以外,唯一键在使用的性质等等也与主键不同;

  • 主键不能为空,唯一键可以为空;
  • 一张表中至多只能有1个主键,而一张表中可以有n个唯一键;
mysql> desc t6;
+-------+--------------------------+------+-----+---------+----------------+
| Field | Type                     | Null | Key | Default | Extra          |
+-------+--------------------------+------+-----+---------+----------------+
| id    | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)              | NO   |     | NULL    |                |
| tel   | char(11)                 | YES  | UNI | NULL    |                |
| email | char(20)                 | YES  | UNI | NULL    |                |
+-------+--------------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)mysql> insert into t6 (name,tel,email)values('Lihua','123456','12345@xx.com');
Query OK, 1 row affected (0.00 sec)mysql> insert into t6 (name,tel,email)values('Zhangsan','123456','12345@xx.com');
ERROR 1062 (23000): Duplicate entry '123456' for key 'tel'
mysql> insert into t6 (name,tel,email)values('Zhangsan','123455','12345@xx.com');
ERROR 1062 (23000): Duplicate entry '12345@xx.com' for key 'email'
mysql> insert into t6 (name,tel,email)values('Zhangsan','123455','12344@xx.com');
Query OK, 1 row affected (0.00 sec)mysql> select * from t6;
+-----+----------+--------+--------------+
| id  | name     | tel    | email        |
+-----+----------+--------+--------------+
| 001 | Lihua    | 123456 | 12345@xx.com |
| 004 | Zhangsan | 123455 | 12344@xx.com | #这里的自增值越过是因为默认存储引擎为InnoDB
+-----+----------+--------+--------------+

外键 🔖

外键是用来维护两个表之间的关系,有些有关联的表可以分为主表从表;

一般外键约束是在从表上定义,同时当定义外键后,要求外键列数据必须在主表的主键列存在主表的主键列或为null;

forgen key (字段名) reference 主表(列)

mysql> create table if not exists t7_class(-> class_id int(2) unsigned zerofill primary key commentt'专业班级',-> class_name varchar(20) not null comment'班级名字'-> );
Query OK, 0 rows affected (0.01 sec)mysql> desc t7_class-> ;
+------------+--------------------------+------+-----+---------+-------+
| Field      | Type                     | Null | Key | Default | Extra |
+------------+--------------------------+------+-----+---------+-------+
| class_id   | int(2) unsigned zerofill | NO   | PRI | NULL    |       |
| class_name | varchar(20)              | NO   |     | NULL    |       |
+------------+--------------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> insert into t7_class values(1,'计科一班');
Query OK, 1 row affected (0.00 sec)mysql> insert into t7_class values(2,'计科二班');Query OK, 1 row affected (0.00 sec)mysql> select * from t7_class;
+----------+--------------+
| class_id | class_name   |
+----------+--------------+
|       01 | 计科一班     |
|       02 | 计科二班     |
+----------+--------------+mysql> create table if not exists t7_stu(-> id int(3) unsigned zerofill primary key auto_increment comment'设置主键',-> name varchar(20) not null comment'姓名',-> class int(2) unsigned zerofill comment'外键',-> foreign key (class) references t7_class(class_id)-> );
Query OK, 0 rows affected (0.01 sec)mysql> system clear;

此时主表与从表的外键关系已经创建完毕;

mysql> show create table t7_class\G #查看该表详细信息
*************************** 1. row ***************************Table: t7_class
Create Table: CREATE TABLE `t7_class` (`class_id` int(2) unsigned zerofill NOT NULL COMMENT '专业班级',`class_name` varchar(20) NOT NULL COMMENT '班级名字',PRIMARY KEY (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)mysql> show create table t7_stu\G #查看该表详细信息
*************************** 1. row ***************************Table: t7_stu
Create Table: CREATE TABLE `t7_stu` (`id` int(3) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '设置主键',`name` varchar(20) NOT NULL COMMENT '姓名',`class` int(2) unsigned zerofill DEFAULT NULL COMMENT '外键',PRIMARY KEY (`id`),KEY `class` (`class`),CONSTRAINT `t7_stu_ibfk_1` FOREIGN KEY (`class`) REFERENCES `t7_class` (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

插入数据时从表中建立外键约束的字段插入数据时只能是主表内对应的数据或者为空,否则将报错;

mysql> desc t7_class;
+------------+--------------------------+------+-----+---------+-------+
| Field      | Type                     | Null | Key | Default | Extra |
+------------+--------------------------+------+-----+---------+-------+
| class_id   | int(2) unsigned zerofill | NO   | PRI | NULL    |       |
| class_name | varchar(20)              | NO   |     | NULL    |       |
+------------+--------------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> desc t7_stu;
+-------+--------------------------+------+-----+---------+----------------+
| Field | Type                     | Null | Key | Default | Extra          |
+-------+--------------------------+------+-----+---------+----------------+
| id    | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)              | NO   |     | NULL    |                |
| class | int(2) unsigned zerofill | YES  | MUL | NULL    |                |
+-------+--------------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)mysql> insert into t7_stu (name,class)value('Lihua',01);
Query OK, 1 row affected (0.00 sec)mysql> insert into t7_stu (name,class)value('Lihua',02);
Query OK, 1 row affected (0.00 sec)mysql> insert into t7_stu (name,class)value('Liming',03);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test`.`t7_stu`, CONSTRAINT `t7_stu_ibfk_1` FOREIGN KEY (`class`) REFERENCES `t7_class` (`class_id`))
mysql> select * from t7_stu;
+-----+-------+-------+
| id  | name  | class |
+-----+-------+-------+
| 001 | Lihua |    01 |
| 002 | Lihua |    02 |
+-----+-------+-------+
2 rows in set (0.00 sec)mysql> 

相关文章:

『 MySQL数据库 』数据库之表的约束

文章目录 前言 💻空属性约束(非空约束) 🔖default约束(默认值约束,缺省) 🔖列描述comment 🔖数字类型长度zerofill 🔖主键primary key 🔖📍 追加主键 📍📍 删除主键 &…...

flink 8081 web页面无法被局域网内其他机器访问

实现 http://localhost:8081/#/overview 可以被局域网其他机器访问...

零基础安装分布式数据服务注册系统

一、先安装VM虚拟机,安装最新的ubuntu22系统, 先安装mysql, sudo apt install mysql-server sudo mysql_secure_installation 根据自己需求选择 密码安全级别时,选择n 删除匿名用户?(按y|Y表示是&…...

2023最新最全【OpenMV】 入门教程

1. 什么是OpenMV OpenMV 是一个开源,低成本,功能强大的 机器视觉模块。 OpenMV上的机器视觉算法包括 寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪 等。 以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上&a…...

【Java并发编程三】线程的基本使用一

基本使用一 将类继承Runnable,创建Thread,然后调用Thread的start方法启动: package myTest;public class myTest implements Runnable {public static void main(String[] args) throws InterruptedException {myTest test new myTest();Th…...

企业邮箱认证指南:安全与高效的邮箱认证方法

企业邮箱是专门为企业提供的电子邮件服务,安全性和专业性更高。在开始使用企业邮箱之前,很多人会有一些问题,比如企业邮箱需要认证吗、如何开通企业邮箱,以及哪款企业邮箱好。 1、企业邮箱在使用前需要认证吗? 答案是肯…...

Django(八、如何开启事务、介绍长见的字段类型和参数)

文章目录 ORM事务操作开启事务 常见的字段类型和参数ORM还支持用户自定义字段类型ORM常用字段参数外键相关参数 ORM事务操作 引入事务 1.事务的四大特性原子性、一致性、隔离性、持久性 2.相关SQL关键字start transaction;rollback;commit;savapoint; 3.相关重要概念脏读、幻…...

机器学习第5天:多项式回归与学习曲线

文章目录 多项式回归介绍 方法与代码 方法描述 分离多项式 学习曲线的作用 场景 学习曲线介绍 欠拟合曲线 示例 结论 过拟合曲线 示例 ​结论 多项式回归介绍 当数据不是线性时我们该如何处理呢,考虑如下数据 import matplotlib.pyplot as plt impo…...

MSYS2介绍及工具安装

0 Preface/Foreword 1 MSYS2 官网:MSYS2...

Swift开发中:非逃逸闭包、逃逸闭包、自动闭包的区别

1. 非逃逸闭包(Non-Escaping Closure) 定义:默认情况下,在 Swift 中闭包是非逃逸的。这意味着闭包在函数结束之前被调用并完成,它不会“逃逸”出函数的范围。内存管理:由于闭包在函数返回前被调用&#xf…...

栈结构应用-进制转换-辗转相除法

// 定义类class Stack{// #items [] 前边加#变为私有 外部不能随意修改 内部使用也要加#items []pop(){return this.items.pop()}push(data){this.items.push(data)}peek(){return this.items[this.items.length-1]}isEmpty(){return this.items.length 0}size(){return th…...

【Azure 架构师学习笔记】-Azure Storage Account(6)- File Layer

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account(5)- Data Lake layers 前言 上一文介绍了存储帐户的概述,还有container的一些配置,在…...

idea 环境搭建及运行java后端源码

1、 idea 历史版本下载及安装 建议下载和我一样的版本,2020.3 https://www.jetbrains.com/idea/download/other.html,idea分为专业版本(Ultimate)和社区版本(Community),前期可以下载专业版本…...

掌握Shell:从新手到编程大师的Linux之旅

1 shell介绍 1.1 shell脚本的意义 1.记录命令执行的过程和执行逻辑,以便以后重复执行 2.脚本可以批量处理主机 3.脚本可以定时处理主机 1.2 脚本的创建 #!/bin/bash # 运行脚本时候执行的环境1.3 自动添加脚本说明信息 /etc/vimrc # vim主配置文件 ~/.vimrc # 该…...

有重复元素的快速排序

当涉及到处理重复元素的快速排序时,可以使用荷兰国旗问题的方法,也就是三路划分。下面是使用 Java 实现的示例代码: import java.util.Arrays;public class QuickSort {public static void quickSort(int[] arr, int low, int high) {if (lo…...

Bert浅谈

优点 首先,bert的创新点在于利用了双向transformer,这就跟openai的gpt有区别,gpt是采用单向的transformer,而作者认为双向transformer更能够融合上下文的信息。这里双向和单向的区别在于,单向只跟当前位置之前的tocke…...

产品运营的场景和运营策略

一、启动屏 1.概念 启动屏,特指 APP 产品启动时即显示的界面,这个界面一般会停留几秒钟时间,在这个时间内 APP 会在后台加载服务框架、启动各种服务 SDK 、获取用户地理位置、判断有无新版本、判断用户账户状态以及其他系统级别的…...

C#异常捕获try catch详细介绍

在C#中,异常处理是通过try、catch、finally和throw语句来实现的,它们提供了一种结构化和可预测的方法来处理运行时错误。 C#异常基本用法 try块 异常处理以try块开始,try块包含可能会引发异常的代码。如果在try块中的代码执行过程中发生了…...

切换阿里云ES方式及故障应急处理方案

一、阿里云es服务相关问题及答解 1.1 ES7.10扩容节点时间 增加节点数量需要节点拉起和数据Rebalance两步,拉起时间7.16及以上的新版本大概10分钟以内,7.16以前大概一小时,数据迁移的时间就看数据量了,一般整体在半小时以内 (需进行相关测试验证) 1.2 ES7.10扩容数据节点…...

CTFhub-RCE-过滤空格

1. 查看当前目录&#xff1a;127.0.0.1|ls 2. 查看 flag_890277429145.php 127.0.0.1|cat flag_890277429145.php 根据题目可以知道空格被过滤掉了 3.空格可以用以下字符代替&#xff1a; < 、>、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 $IFS在li…...

无需添加udid,ios企业证书的自助生成方法

我们开发uniapp的app的时候&#xff0c;需要苹果证书去打包。 假如申请的是个人或company类型的苹果开发者账号&#xff0c;必须上架才能安装&#xff0c;异常的麻烦&#xff0c;但是有一些app&#xff0c;比如企业内部使用的app&#xff0c;是不需要上架苹果应用市场的。 假…...

【PTA题目】6-20 使用函数判断完全平方数 分数 10

6-20 使用函数判断完全平方数 分数 10 全屏浏览题目 切换布局 作者 张高燕 单位 浙大城市学院 本题要求实现一个判断整数是否为完全平方数的简单函数。 函数接口定义&#xff1a; int IsSquare( int n ); 其中n是用户传入的参数&#xff0c;在长整型范围内。如果n是完全…...

Nas搭建webdav服务器并同步Zotero科研文献

无需云盘&#xff0c;不限流量实现Zotero跨平台同步&#xff1a;内网穿透私有WebDAV服务器 文章目录 无需云盘&#xff0c;不限流量实现Zotero跨平台同步&#xff1a;内网穿透私有WebDAV服务器一、Zotero安装教程二、群晖NAS WebDAV设置三、Zotero设置四、使用公网地址同步Zote…...

一句话总结敏捷实践中不同方法

敏捷实践是指一组优先考虑灵活性、协作和客户满意度的软件开发和项目管理原则和方法。 不同方法论的敏捷实践&#xff1a; 1、敏捷&#xff1a; Sprints&#xff1a;限时迭代&#xff08;通常 2-4 周&#xff09;&#xff0c;在此期间创建潜在的可交付产品增量。每日站立会议…...

【数据结构】线段树(点修区查)

数据结构-线段树&#xff08;点修区查&#xff09; 前置知识 分治递归二叉树 思路 我们需要维护一个支持单点修改&#xff0c;区间查询的数据结构&#xff0c;并且要求在线&#xff0c;一般使用线段树解决。 线段树是一个二叉树形的数据结构。 线段树的思想很简单&#xff0c…...

Ansys Lumerical | 用于增强现实系统的表面浮雕光栅

在本示例中&#xff0c;我们使用 RCWA 求解器设计了一个斜面浮雕光栅 (SRG)&#xff0c;它将用于将光线耦合到单色增强现实 (AR) 系统的波导中。光栅的几何形状经过优化&#xff0c;可将正常入射光导入-1 光栅阶次。 然后我们将光栅特性导出为 Lumerical Sub-Wavelength Model …...

QT day3作业

1.思维导图 2、 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密…...

【Ubuntu】设置永不息屏与安装 dconf-editor

方式一、GUI界面进行设置 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal打开 Ubuntu 桌面环境的设置菜单。你可以通过点击屏幕右上角的系统菜单&#xff0c;然后选择设置。在设置菜单中&#xff0c;…...

gRPC 的原理 介绍带你从头了解gRPC

gRPC 的原理 什么是gRPC gRPC的官方介绍是&#xff1a;gRPC是一个现代的、高性能、开源的和语言无关的通用 RPC 框架&#xff0c;基于 HTTP2 协议设计&#xff0c;序列化使用PB(Protocol Buffer)&#xff0c;PB 是一种语言无关的高性能序列化框架&#xff0c;基于 HTTP2PB 保…...

Apriori算法

Apriori算法由R. Agrawal和R. Srikant于1994年在数据集中寻找布尔关联规则的频繁项集。该算法的名称是Apriori&#xff0c;因为它使用了频繁项集属性的先验知识。我们应用迭代方法或逐层搜索&#xff0c;其中k-频繁项集用于找到k1个项集。 为了提高频繁项集逐层生成的效率&…...

肖sir__linux讲解(2.1)

linux命令 cp 复制命令 a、cp 原文件名称 新文 件名称&#xff08;不存在的文件&#xff09; 案例&#xff1a;cp a k 截图&#xff1a; b.cp 原文件名称 原有文 件名称&#xff08;存在的文件&#xff09; 案例:cp a b 截图&#xff1a; c、cp 指定路径复制 格式&#xff…...

The ultimate UI kit and design system for Figma 组件库下载

Untitled UI 是世界上最大的 Figma UI 套件和设计系统。可以启动任何项目&#xff0c;为您节省数千小时&#xff0c;并祝您升级为专业设计师。 采用 100% 自动布局 5.0、变量、智能变体和 WCAG 可访问性精心制作。 900全局样式、变量&#xff1a;超级智能的全局颜色、排版和效…...

Selenium——利用input标签上传文件

Selenium利用input标签上传文件 完整流程 打开文件上传页面选择要上传的文件点击上传按钮确认文件上传成功介绍怎么方便的获取对应元素的Xpath或者Css 简单介绍 在使用Selenium进行浏览器自动化测试时&#xff0c;文件上传是一个常见的需求。而 标签就是实现文件上传功能的…...

C++初阶 日期类的实现(下)

目录 一、输入输出(>>,<<)重载的实现 1.1初始版 1.2友元并修改 1.2.1简单介绍下友元 1.2.2修改 1.3>>重载 二、条件判断操作符的实现 2.1操作符的实现 2.2!操作符的实现 2.3>操作符的实现 2.4>,<,<操作符的实现 三、日期-日期的实现 …...

大师学SwiftUI第16章 - UIKit框架集成

其它相关内容请见​​虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记​​ SwiftUI是一套新框架&#xff0c;因此并没有包含我们构建专业应用所需的所有工具。这意味着我们会需要求助于UIKit&#xff08;移动设备&#xff09;和AppKit&#xff08;Mac电脑&#xff09;等原…...

7.docker运行redis容器

1.准备redis的配置文件 从上一篇运行MySQL容器我们知道&#xff0c;需要给容器挂载数据卷&#xff0c;来持久化数据和配置&#xff0c;相应的redis也不例外。这里我们以redis6.0.8为例来实际说明下。 1.1 查找redis的配置文件redis.conf 下面这个网址有各种版本的配置文件供…...

unity教程

前言 伴随游戏行业的兴起&#xff0c;unity引擎的使用越来越普遍&#xff0c;本文章主要记录博主本人入门unity的相关记录大部分依赖siki学院进行整理。12 一、认识unity引擎&#xff1f; 1、Unity相关信息&#xff1a; Unity的诞生&#xff1a;https://www.jianshu.com/p/550…...

未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘Link‘

报错 检查对函数"Link"得调用中是否缺失参数或参数数据类型不正确。 未定义与"double"类型的输入参数相对应的函数"Link"。 问题描述 网上搜了搜一般说是toolbox没有下载导致的&#xff0c;相当于调用的包本地没有。 但是我看看了 Robotics…...

为什么Transformer模型中使用Layer Normalization(Layer Norm)而不是Batch Normalization(BN)

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

Vite - 配置 - 文件路径别名的配置

为什么要配置别名 别名的配置&#xff0c;主要作用是为了缩短代码中的导入路径。例如有如下的项目目录&#xff1a; project-name| -- src| -- a| --b| --c| --d| --e| -- abc.png| -- index.html| -- main.js如果想在 main.js 文件中使用 abc.png ,则使用的路径是 &#xff1…...

phpStorm Xdebug调试 加FireFox浏览器

步骤1&#xff1a; [Xdebug] zend_extension“D:\phpstudy_pro\Extensions\php\php5.4.45nts\ext\php_xdebug.dll” xdebug.collect_params1 xdebug.collect_return1 xdebug.remote_enableOn xdebug.remote_hostlocalhost xdebug.remote_port9001 xdebug.remote_handlerdbgp ;…...

多维时序 | MATLAB实现PSO-BiGRU-Attention粒子群优化双向门控循环单元融合注意力机制的多变量时间序列预测

多维时序 | MATLAB实现PSO-BiGRU-Attention粒子群优化双向门控循环单元融合注意力机制的多变量时间序列预测 目录 多维时序 | MATLAB实现PSO-BiGRU-Attention粒子群优化双向门控循环单元融合注意力机制的多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 …...

linux配置固定ip(两种方法)

首先刚下载的vm&#xff0c;刚创建的虚拟机&#xff0c;肯定是需要配置ip的 其次以前我的每次都是设置自动ip&#xff0c;这样每次登录都会自动获取ip地址&#xff0c;并且每次的ip都不相同。 ~方法&#xff1a; 开机登陆后 1)Cd /etc/sysconfig/network-scripts 2)Vi ifcf…...

什么是缓存雪崩、击穿、穿透?

背景 数据一般是存储于数据库中&#xff0c;数据库中的数据都是存在磁盘上的&#xff0c;磁盘读写的速度相较于内存或者CPU中的寄存器来说是非常慢的了。 如果用户的请求都直接访问数据库的话&#xff0c;请求数量一上来&#xff0c;数据库很容易就崩溃了&#xff0c;所以为了…...

可以通过电脑远程控制安卓设备的软件

有些时候&#xff0c;我们需要用电脑远程控制安卓设备&#xff0c;比如远程维护门店设备、安卓系统的户外广告牌等等。我们来探索和比较几款允许用户通过电脑远程控制安卓设备的软件。 1、Splashtop Business Splashtop 是一种多功能远程访问解决方案&#xff0c;以其高性能流…...

HP惠普暗影精灵9笔记本电脑OMEN by HP Transcend 16英寸游戏本16-u0000原厂Windows11系统

惠普暗影9恢复出厂开箱状态&#xff0c;原装出厂Win11-22H2系统ISO镜像 下载链接&#xff1a;https://pan.baidu.com/s/17ftbBHEMFSEOw22tnYvPog?pwd91p1 提取码&#xff1a;91p1 适用型号&#xff1a;16-u0006TX、16-u0007TX、16-u0008TX、16-u0009TX、16-u0017TX 原厂系…...

vue2+elementUI 仿照SPC开发CPK分析工具

源码地址请访问 Vue CPK分析工具页面设计源码&#xff08;支持左右可拖拽和表格可编辑、复制粘贴&#xff09;仿照SPC开发-CSDN博客...

云ES使用集群限流插件(aliyun-qos)

aliyun-qos插件是阿里云Elasticsearch团队自研的插件,能够提高集群的稳定性。该插件能够实现集群级别的读写限流,在关键时刻对指定索引降级,将流量控制在合适范围内。例如当上游业务无法进行流量控制时,尤其对于读请求业务,可根据aliyun-qos插件设置的规则,按照业务的优先…...

2023.11.17 hadoop之HDFS进阶

目录 HDFS的机制 元数据简介 元数据存储流程:namenode 生成了多个edits文件和一个fsimage文件 edits和fsimage文件 SecondaryNameNode辅助NameNode的方式: HDFS的存储原理 写入数据原理: 发送写入请求,获取主节点同意,开始写入,写入完成 读取数据原理:发送读取请求,获取…...

如何在el-tree懒加载并且包含下级的情况下进行数据回显-01

在项目中做需求&#xff0c;遇到一个比较棘手的问题&#xff0c;el-tree懒加载在包含下级的时候&#xff0c;需要做回显&#xff0c;将选中的数据再次勾选上&#xff0c;在处理这个需求的时候有两点是比较困难的&#xff1a; el-tree是懒加载的&#xff0c;包含下级需要一层一…...