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

【MySQL】约束

文章目录

  • 1. 约束
  • 2. 非空约束 NOT NULL
  • 3. 唯一性约束 UNIQUE
  • 4. 主键约束 PRIMARY KEY
  • 5. 自增约束 AUTO_INCREMENT
  • 6. 外键约束FOREIGN KEY
  • 7. 默认值约束 DEFAULT
  • 8. 小结

1. 约束

  1. 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:
  • 实体完整性(Entity Integrity) :例如,同一个表中,不能存在两条完全相同无法区分的记录。
  • 域完整性(Domain Integrity) :例如:年龄范围0-120,性别范围“男/女”。
  • 引用完整性(Referential Integrity) :例如:员工所在部门,在部门表中要能找到这个部门。
  • 用户自定义完整性(User-defined Integrity) :例如:用户名唯一、密码不能为空等,本部门经理的工资不得高于本部门职工的平均工资的5倍。
  1. 根据约束起的作用,可分为:
  • NOT NULL 非空约束,规定某个字段不能为空
  • UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
  • PRIMARY KEY 主键(非空且唯一)约束
  • FOREIGN KEY 外键约束
  • DEFAULT 默认值约束
  • 列级约束和表级约束区别:表级约束多了 CONSTRAINT constraint_name
  1. 基本语句:
  • 在创建表时规定约束:CREATE TABLE…
  • 在表创建后添加约束:ALTER TABLE …
  • 查看某个表已有的约束:
    SELECT * FROM information_schema.table_constraints WHERE table_name = ‘table name’;
  • 查看表索引:SHOW INDEX FROM tablename;

2. 非空约束 NOT NULL

  • 限定某个字段/某列的值不允许为空:NOT NULL。
  • 所有的类型的值都可以是NULL
  • 非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空
  • 一个表可以有很多列都分别限定了非空
  • 空字符串’'不等于NULL,0也不等于NULL
  • 修改ALTER TABLE 字段约束时,如果要保留字段原有的非空约束,在加其他约束时,需要保留NOT NULL,否则非空约束就会被删除。
# 建表时非空约束
CREATE TABLE emp (id INT(10) NOT NULL,name VARCHAR(20) NOT NULL,sex CHAR NULL
);

在这里插入图片描述

# 建表后非空约束
ALTER TABLE emp 
MODIFY sex VARCHAR(20) NOT NULL;ALTER TABLE emp 
MODIFY name VARCHAR(15) DEFAULT 'abc' NOT NULL;# 删除非空约束
ALTER TABLE emp 
MODIFY sex VARCHAR(20) NULL;

3. 唯一性约束 UNIQUE

  • 用来限制某个字段/某列的值不能重复:UNIQUE。
  • UNIQUE KEY 等同于 UNIQUE.
  • 单列用法UNIQUE(),组合用法UNIQUE(item, item2, …)。
  • 同一个表可以有多个唯一约束。
  • 唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。
  • 唯一性约束允许列值为空。
  • 如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同;如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。
  • MySQL会给唯一约束的列上默认自动创建一个唯一索引。
  • 删除唯一约束只能通过删除唯一索引的方式删除。
  • 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。
# 建表时唯一性约束
CREATE TABLE stu3 (sid INT NOT NULL UNIQUE KEY,cardid VARCHAR(20) UNIQUE,phone INT UNIQUE KEY,name VARCHAR(25),password VARCHAR(16),address VARCHAR(18),age INT,childs INT,UNIQUE KEY(name, password),UNIQUE(address, age),CONSTRAINT stu3_constraint UNIQUE(sid, cardid)
);
-- UNIQUE KEY 等同于 UNIQUE
-- NOT NULL && UNIQUE 等同于 PRIMARY KEY
-- CONSTRAINT ... UNIQUE() 表级约束CREATE TABLE stu2 (sid INT NOT NULL,name VARCHAR(25) DEFAULT 'abc',password VARCHAR(16),cardid VARCHAR(20) UNIQUE,phone INT UNIQUE KEY,address VARCHAR(18),age INT,childs INT,CONSTRAINT stu2_name_pwd UNIQUE(name, password) 
);DESC stu2;
DROP TABLE stu2;

在这里插入图片描述

# 建表后唯一性约束
ALTER TABLE 表名称 ADD UNIQUE KEY (字段列表);# sid 既非NULL又唯一时会变为主键PrimaryKey
ALTER TABLE stu2 ADD UNIQUE KEY(sid); 
-- sid key : PRIALTER TABLE stu2 ADD UNIQUE KEY(address, age, childs);
ALTER TABLE stu2 ADD CONSTRAINT stu2_age_childs UNIQUE(address, age, childs);# 也可以直接改变字段属性
ALTER TABLE stu2 MODIFY sid INT NOT NULL UNIQUE;
-- sid key: PRI 
ALTER TABLE stu2 MODIFY sid INT UNIQUE;
-- sid key: UNISELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE table_name = 'stu2';# 删除唯一性约束
ALTER TABLE stu2 DROP INDEX stu2_age_childs;

4. 主键约束 PRIMARY KEY

  • 用来唯一标识表中的一行记录:PRIMARY 。
  • 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值。
  • 一个表最多只能有一个主键约束,建立主键约束可以在列级别创建,也可以在表级别上创建。
  • 主键约束对应着表中的一列或者多列(复合主键)
  • 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。
  • MySQL的主键名总是PRIMARY,就算自己命名了主键约束名也没用。
  • 当创建主键约束时,系统默认会在所在的列或列组合上建立对应的主键索引(能够根据主键查询的,就根据主键查询,效率更高)。
  • 如果删除主键约束了,主键约束对应的索引就自动删除了。
  • 不要修改主键字段的值。因为主键是数据记录的唯一标识,如果修改了主键的值,就有可能会破坏数据的完整性。
  • 删除主键约束,不需要指定主键名,因为一个表只有一个主键,删除主键约束后,非空还存在。
# 列级约束PRIMARY KEY
CREATE TABLE temp1(id INT PRIMARY KEY,name VARCHAR(20)
);
# 列级约束组合
CREATE TABLE temp2 (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(20),PRIMARY KEY(id, name)
);
# 表级约束
CREATE TABLE temp2 (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(20),CONSTRAINT temp2_id_pk PRIMARY KEY(id)
);
# 表级约束组合
CREATE TABLE temp3 (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(20),CONSTRAINT temp3_id_pk PRIMARY KEY(id, name)
);
-- id 和 name 均为非NULL且PRI# 建表后 PRIMARY KEY
ALTER TABLE temp ADD PRIMARY KEY(id);
ALTER TABLE temp ADD PRIMARY KEY(id, name);# 删除主键约束,不需要指定主键名
ALTER TABLE temp DROP PRIMARY KEY;

5. 自增约束 AUTO_INCREMENT

  • 某个字段的值自增:AUTO_INCREMENT。
  • 一个表最多只能有一个自增长列
  • 当需要产生唯一标识符或顺序值时,可设置自增长
  • 自增长列约束的列必须是键列(主键列PRIMARY KEY 或 唯一键列UNIQUE KEY)
  • 自增约束的列的数据类型必须是整数类型
  • 如果自增列指定了 0 和 null,会在当前最大值的基础上自增;如果自增列手动指定了具体值,直接赋值为具体值。
  • 自增显示在Extra项
create table 表名称(字段名 数据类型 primary key auto_increment,字段名 数据类型 unique key not null,字段名 数据类型 unique key,字段名 数据类型 not null default 默认值,
);
create table 表名称(字段名 数据类型 default 默认值,字段名 数据类型 unique key auto_increment,字段名 数据类型 not null default 默认值,,primary key(字段名)
);-- 不建议只写KEY,虽然默认key = primary key
CREATE TABLE auto(id INT KEY AUTO_INCREMENT,name VARCHAR(20)
);CREATE TABLE auto2(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20)
);CREATE TABLE auto3(id INT UNIQUE KEY AUTO_INCREMENT,name VARCHAR(20) PRIMARY KEY
);# 建表后增加自增
ALTER TABLE auto3 
MODIFY id INT AUTO_INCREMENT;# 去掉auto_increment相当于删除
ALTER TABLE auto3 
MODIFY id INT;

6. 外键约束FOREIGN KEY

  • 限定某个表的某个字段的引用完整性:FOREIGN KEY。 比如:员工表的员工所在部门的选择,必须在部门表能找到对应的部分。
  • 主表(父表):被引用的表,被参考的表。从表(子表):引用别人的表,参考别人的表。例如:学生表、课程表、选课表:选课表的学生和课程要分别参考学生表和课程表,学生表和课程表是主表,选课表是从表。
  • 从表的外键列,必须参考主表的主键或唯一约束的列。因为被依赖/被参考的值必须是唯一的。
  • 在创建外键约束时,可以指定外键约束名。如果不给外键约束命名,默认名不是列名,而是自动产生一个外键名(例如student_ibfk_1)。
  • 创建表时就指定外键约束的话,先创建主表,再创建从表
  • 删表时,先删从表(或先删除外键约束),再删除主表
  • 当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据
  • 在从表中指定外键约束,并且一个表可以建立多个外键约束
  • 从表的外键列与主表被参照的列名字可以不相同,但是数据类型必须一样,逻辑意义一致。如果类型不一样,创建子表时,就会出现错误“ERROR 1005 (HY000): Can’t createtable’database.tablename’(errno: 150)”。
  • 当创建外键约束时,系统默认会在所在的列上建立对应的普通索引。但是索引名是外键的约束名。(根据外键查询效率很高)
  • 删除外键约束后,必须手动删除对应的索引。
  • 两个表之间有关系,但不一定必须要外键约束。
  • 外键约束需要消耗系统资源,对于大并发的 SQL 操作,可能会因为外键约束的系统开销而变得非常慢。建议通过应用层面完成检查数据一致性的逻辑。
  • 阿里开发规范:不得使用外键与级联,一切外键概念必须在应用层解决。外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。
create table 主表名称(字段1 数据类型 primary key,字段2 数据类型
);
create table 从表名称(字段1 数据类型 primary key,字段2 数据类型,[CONSTRAINT <外键约束名称>] FOREIGN KEY(从表的某个字段) references 主表名(被参考字段)
);CREATE TABLE depx(did INT PRIMARY KEY,dname VARCHAR(20)
);
CREATE TABLE empx(eid INT PRIMARY KEY,ename VARCHAR(20),depxid INT,FOREIGN KEY (depxid) REFERENCES depx(did)
);
-- depxid KEY: MUL DESC depx;
DESC empx;
  • 建表后添加外键约束
ALTER TABLE 从表名 
ADD [CONSTRAINT 约束名] FOREIGN KEY (从表的字段) REFERENCES 主表名(被引用字段) [on update xx][on delete xx];ALTER TABLE empx 
ADD FOREIGN KEY (depxid) REFERENCES depx(did); 
  • 删除外键约束
# (1)先查看从表约束名,删除外键约束
SELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE table_name = 'empx';
# 删除外键
ALTER TABLE empx 
DROP FOREIGN KEY empx_ibfk_1;#(2)查看索引名和删除索引
SHOW INDEX FROM empx;
# 删除索引
ALTER TABLE empx 
DROP INDEX depxid;

7. 默认值约束 DEFAULT

  • 给某个字段/某列指定默认值,一旦设置默认值,在插入数据时,如果此字段没有显式赋值,则赋值为默认值:DEFAULT。
  • 默认值约束一般不在唯一键和主键列上加。
create table 表名称(字段名 数据类型 default 默认值 ,字段名 数据类型 not null default 默认值,字段名 数据类型 not null default 默认值,primary key(字段名),unique key(字段名)
);create table employee(eid INT primary key,salary DOUBLE(10,2) DEFAULT 2000ename varchar(20) not null,gender char default '男',tel char(11) not null DEFAULT '' #默认是空字符串
);alter table 表名称 modify 字段名 数据类型 default 默认值;
alter table 表名称 modify 字段名 数据类型 default 默认值 not null;ALTER TABLE empx 
MODIFY eid INT DEFAULT 0;ALTER TABLE empx 
MODIFY ename VARCHAR(20) DEFAULT 'van' NOT NULL;ALTER TABLE empx 
MODIFY eid INT;#删除默认值约束,也不保留非空约束
alter table 表名称 modify 字段名 数据类型 ;
#删除默认值约束,保留非空约束
alter table 表名称 modify 字段名 数据类型 not null;

8. 小结

面试1、为什么建表时,加 not null default ‘’ 或 default 0
答:不想让表中出现null值。

面试2、为什么不想要 null 的值
答:(1)不好比较。null是一种特殊值,比较时只能用专门的is null 和 is not null来比较。碰到运算符,通常返回null。
(2)效率不高。影响提高索引效果。因此,我们往往在建表时 not null default ‘’ 或 default 0

面试3、带AUTO_INCREMENT约束的字段值是从1开始的吗? 在MySQL中,默认AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1。设置自增属性(AUTO_INCREMENT)的时候,还可以指定第一条插入记录的自增字段的值,这样新插入的记录的自增字段值从初始值开始递增,如在表中插入第一条记录,同时指定id值为5,则以后插入的记录的id值就会从6开始往上增加。添加主键约束时,往往需要设置字段自动增加属性。

面试4、并不是每个表都可以任意选择存储引擎? 外键约束(FOREIGN KEY)不能跨引擎使用。
MySQL支持多种存储引擎,每一个表都可以指定一个不同的存储引擎,需要注意的是:外键约束是用来保证数据的参照完整性的,如果表之间需要关联外键,却指定了不同的存储引擎,那么这些表之间是不能创建外键约束的。所以说,存储引擎的选择也不完全是随意的。

相关文章:

【MySQL】约束

文章目录1. 约束2. 非空约束 NOT NULL3. 唯一性约束 UNIQUE4. 主键约束 PRIMARY KEY5. 自增约束 AUTO_INCREMENT6. 外键约束FOREIGN KEY7. 默认值约束 DEFAULT8. 小结1. 约束 为了保证数据的完整性&#xff0c;SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面…...

C语言学习(三)

#include <stdio.h> int main(void){int a; scanf("%d",&a); printf("%d",a); return 0&#xff1b;} 正在上传…重新上传取消正在上传…重新上传取消&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值&#xff0c;需要按一下enter…...

TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合

TOUGH2系列软件传统地下水模拟软件Feflow和Modflow不同&#xff0c;TOUGH2系列软件采用模块化设计和有限积分差网格剖分方法&#xff0c;通过配合不同EOS模块&#xff0c;软件可以处理各种复杂地质条件下&#xff0c;诸如地热能开发&#xff0c;非饱和带水气运移、油气运移&…...

k8s学习之路 | k8s 工作负载 ReplicaSet

文章目录1. ReplicaSet 基础概念1.1 RS 是什么&#xff1f;1.2 RS 工作原理1.3 什么时候使用 RS1.4 RS 示例1.5 非模板 Pod 的获得1.6 编写 RS1.7 使用 RS1.8 RS 替代方案2. ReplicaSet 与 ReplicationController2.1 关于 RS、RC2.2 两者的选择器区别2.3 总结1. ReplicaSet 基础…...

python实现半色调技术图像转换

半色调技术 半色调技术是一种将灰度图像转换为黑白图像的技术。它是通过将灰度图像的像素值映射到黑白像素值上来实现的。 比如说&#xff0c;在一块只能显示纯黑或纯白的屏幕上&#xff0c;如何将一张灰度图显示出灰度的效果&#xff0c;这时就可以用半色调技术实现。 如下…...

c++面试技巧-基础篇

1.面试官&#xff1a;简述C语言的优缺点。 应聘者&#xff1a;C语言的优缺点如下。 • C语言的优点&#xff1a;C语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点&#xff0c;又添加了面向对象编程的支持&#xff0c;具有强大的编程功能&#xff0c;可方便地构…...

三八妇女节即将到来,跨境电商如何玩转节日营销?

随着国际妇女节的到来&#xff0c;跨境电商商家们都开始了为自己的店铺进行节日营销的准备。商家做节日营销的目的都是一样的&#xff0c;无非都是增加曝光率&#xff0c;拉动客流&#xff0c;增加营业额。但是每一个节日营销的形式是可以不一样的。今年有什么营销玩法呢&#…...

【Java学习笔记】10.条件语句 - if...else及switch case 语句

前言 本章介绍Java的条件语句 - if…else和switch case 语句。 Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下&#xff1a; if(布尔表达式) {//如果布…...

解析STM32启动过程

相对于ARM上一代的主流ARM7/ARM9内核架构&#xff0c;新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后&#xff0c;CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动&#xff0c;即固定了复位后的起始地址为0x…...

微信小程序开发自学笔记 —— 八、小程序基础库的更新迭代

小程序基础库的更新迭代 小程序基础库 小程序的运行环境是分成渲染层和逻辑层的&#xff0c;在渲染层可以用各类组件组建界面的元素&#xff0c;在逻辑层可以用各类API来处理各种逻辑&#xff0c;组件、API其实都是小程序基础库进行包装提供的&#xff0c;基础库的职责还要处…...

Mysql迁移Postgresql

目录原理环境准备操作系统(Centos7)Mysql客户端安装Psql客户端安装数据库用户空字符串处理成null导表脚本dbmysql2pgmysqlcopy测试在mysql中建表导表测试查看pg中的表原理 Mysql抽取&#xff1a;mysql命令重定向到操作系统文件&#xff0c;处理成csv文件&#xff1b; PG装载&a…...

关于信息安全认证CISP、PTE对比分析

CISP 注册信息安全专业人员 CISP-PTE 注册渗透测试工程师&#xff08;以下简称PTE&#xff09; 1 、发证机构 CISP与PTE的发证机构都是中国信息安全测评中心&#xff0c;政府背景给认证做背书&#xff0c;学员信息都在中国政府可控的机构手中&#xff1b; 如果想在政府、国…...

游戏场景编辑器和骨骼动画相关软件

游戏场景编辑器 一.Tiled(2D) Tiled 是帮助你开发游戏内容的 2D 地图编辑器。它的主要功能是可以编辑各种形式的瓦片地图&#xff0c;还支持通过用空图片这种强大的方式来标记额外信息给游戏使用。Tiled 关注的是总体灵活性&#xff0c;同时尽量保持直观性。 Tiled Map 不但…...

vue3常用的API

目录 1.ref函数 2.reactive函数 3.reactive对比ref 4.computed函数 5.watch函数 6.toRef 7..provide && inject 1.ref函数 作用: 定义一个响应式的数据 语法: const xxx ref(initValue) 创建一个包含响应式数据的引用对象&#xff08;reference对象&#xff…...

Qt中使用

LIB库路径&#xff0c;include 头文件&#xff0c;运行的时候记得吧dll库带上&#xff0c;这基本就完成了。准备工作&#xff1a;Qt可以是傻瓜式的安装就行&#xff0c;GE的驱动里面有exe&#xff0c;直接点击安装即可&#xff0c;完了记得到安装路径把“.h”“.liib”和“.dll…...

controller-runtime搭建operator开发环境

目录 基本结构 注入CRD 基本结构 首先下载相应的go pkg go get -u sigs.k8s.io/controller-runtime 接下来需要创建控制器和Manager Operator的本质是一个可重入的队列编程模式&#xff0c;而Manager可以用来管理Controller、Admission Webhook&#xff0c;包括访问资源对…...

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

目录1、前言2、设计思路和框架3、vivado工程详解4、上板调试验证并演示5、福利&#xff1a;工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#xff1a; 一是使用专用编解码芯片&#xff0c;比如典型的接收器GS2971&#xff0c;发送器GS2972&#xff0c;优点是简…...

Django 之 CharField 和 TextField

CharField test_char models.CharField(max_length288)设置长度为 288 并不会报错&#xff0c;这取决于你的数据库后端&#xff0c;mysql char 类型长度为 255&#xff0c;django 里面设置超过 255 并不会有提示&#xff0c;个人感觉有点误导人&#xff0c;起码给个警告也行&…...

recyclerview 使用的坑

1.有不同的布局 12_GridLayoutManager setSpanSizeLookup()方法 - 简书 setSpanSizeLookup 这个方法要会 spanCount和 getSpanSize spanCount/getSpanSize() 才是这一项所占的宽度 2.均分 item布局要设置宽度为match_paraent 3.设置完了。发现高度不一样&#xff0c;…...

DBeaver连接mysql、oracle数据库

1. DBeaver连接mysql 1&#xff09; 下载DBeaver https://dbeaver.io/download/&#xff0c;并安装 2) 新建数据库连接 3&#xff09;选择mysql驱动程序 4&#xff09;填写连接设置内容 5&#xff09;点击 “编辑驱动设置”&#xff0c;并填写相关信息 6&#xff09;选择本地…...

Kivy GridLayout 布局

Kivy GridLayout 是一种用于构建用户界面的布局类型&#xff0c;可以帮助我们快速创建具有固定列和行的网格布局。GridLayout 布局是可以适用于任意数量的行和列的布局&#xff0c;然后在这些行和列中放置 UI 元素。 Kivy 的 GridLayout 使用起来类似于 HTML 的表格&#xff0c…...

Spark高手之路2—Spark安装配置

文章目录Spark 运行环境一、Local 模式1. 下载压缩包2.上传到服务器3. 解压4. 启动 Local 环境5. 命令行工具6. 退出本地模式7. 提交应用二、Standalone 模式1. 解压2. 修改配置文件1&#xff09;进入解压缩后路径的 conf 目录&#xff0c;复制 workers.template 文件为 worker…...

Java中对象的比较

目录元素的比较基本类型的比较引用类型的比较1. 覆写基类的equals2. 基于Comparble接口类的比较3. 基于比较器比较三种方法对比元素的比较 基本类型的比较 这里就拿整型, 字符型, 布尔型 为例: public static void main(String[] args) {int a 10;int b 20;System.out.pri…...

Python编程训练题2

1.11 有 n 盏灯&#xff0c;编号 1&#xff5e;n&#xff08;0<n<100&#xff09;。第 1 个人把所有灯打开&#xff0c;第 2 个人按下所有编号为 2 的倍数的开关&#xff08;这些灯将被关掉&#xff09;&#xff0c;第 3 个人按下所有编号为 3 的倍数的开关&#xff08;其…...

Shifu基础功能:设备管理

设备管理 deviceshifu_configmap.yaml中的telemetries表示自动测量记录传导。Shifu通过telemetries中设置的方法&#xff0c;以指定时间向设备周期性地发送请求&#xff0c;来判断设备的连接情况。如果设备出现故障或者连接出现问题&#xff0c;edgeDevice的状态将发生改变&am…...

交互:可以执行命令行的框架才是好框架

上一节课&#xff0c;我们开始把框架向工业级迭代&#xff0c;重新规划了目录&#xff0c;这一节课将对框架做更大的改动&#xff0c;让框架支持命令行工具。 第三方命令行工具库 cobra obra 不仅仅能让我们快速构建一个命令行&#xff0c;它更大的优势是能更快地组织起有许多…...

eunomia-bpf 和 wasm-bpf 项目的 3 月进展

eunomia-bpf 项目是一个开源项目&#xff0c;旨在提供一组工具&#xff0c;用于在 Linux 内核中更方便地编写和运行 eBPF 程序。在过去一个月中&#xff0c;该项目取得了一些新的进展&#xff0c;以下是这些进展的概述。 首先&#xff0c;eunomia-bpf 动态加载库进行了一些重要…...

Spring框架核心功能手写实现

文章目录概要Spring启动以及扫描流程实现基础环境搭建扫描逻辑实现bean创建的简单实现依赖注入实现BeanNameAware回调实现初始化机制模拟实现BeanPostProcessor模拟实现AOP模拟实现概要 手写Spring启动以及扫描流程手写getBean流程手写Bean生命周期流程手写依赖注入流程手写Be…...

k8s-镜像构建Flink集群Native session

一.Flink安装包下载 wget https://dlcdn.apache.org/flink/flink-1.14.6/flink-1.14.6-bin-scala_2.12.tgz 二.构建基础镜像推送私服 docker pull apache/flink:1.14.6-scala_2.12 docker tag apache/flink:1.14.6-scala_2.12 172.25.152.2:30002/dmp/flink:...

在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)

本文搭建的 SonarQube 版本是 7.4.9-community&#xff0c;由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据库。所以此次搭建使用的数据库是 PostgreSQL 11.4 版本。 一、部署 PostgreSQL 服务 1. 创建命名空间 将 PostgreSQL 和 SonarQube 放在同一个命名空间…...

做网站在线视频如何添加/app推广30元一单

文章目录基于阈值的分割方法Otsu阈值分割自适应阈值分割最大熵阈值分割法迭代阈值分割基于边缘的分割方法基于区域的分割方法基于图论的分割方法基于聚类的分割方法基于能量泛函的分割方法曲线演化理论snake方法水平集(LevelSet)Active Contours Without Edges能量函数用水平集…...

毕业设计做网站怎么做/上海牛巨微网络科技有限公司

转载于:https://www.cnblogs.com/xiaochunblog/p/11507439.html...

wordpress script/seo搜索优化专员

情景案例 其实我们身处的团队已经是非常年轻、有活力的高效合作的团队了&#xff0c;但是在集体工作中&#xff0c;有时也会出现一些问题和阻碍&#xff0c;如以下案例所示&#xff1a; 1、需求三方评审会议上&#xff0c;策划口若悬河&#xff0c;其他职能昏昏欲睡。 策划问…...

中关村网站建设公司/网络优化培训

这里的电压环带宽&#xff0c;反应的是电压环响应指令能力。即输出电压跟踪指令电压的能力。 指令响应能力需要有一个指标来衡量&#xff0c;例如用输入阶跃指令来看输出的上升、超调等 或者用输入正弦指令看输出正弦分量与指令的幅度差和相位差&#xff0c;这就是我们说的带…...

长沙公积金网站怎么做异动/关键词的选取原则

HBase之Rowkey设计总结及易观方舟实战篇 代立冬 2018-06-02 21:52:46 3466 收藏 10 最后发布:2018-06-02 21:52:46首发:2018-06-02 21:52:46分类专栏&#xff1a; --------【HBase优化】 ●HBase 大数据实战系列 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循…...

网站无icp备案/个人在线网站推广

号称第一的免费精美图片分享站&#xff0c;可商用&#xff0c;完全免费   StockSnap:免费图片素材高清资源库是一个提供可自由下载使用的高清晰摄影图片作品的素材库&#xff0c;所提供的资源相当实用&#xff0c;该网站由多位摄影师组成&#xff0c;提供丰富的免费照片&…...