MySQL数据库基本操作和完整性约束类型详解
目录
- 一、增删改查的sql语句
- 二、表完整性约束
- 1、表完整性约束的介绍
- 2、常见的完整性约束类型
- 3、表完整性约束实战操作
- 3.1.主键primary key
- 3.2.自增键auto_increment
- 3.3.唯一键UNIQUE
- 3.4.null与not null
- 3.5.默认约束
一、增删改查的sql语句
SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
DDL语句—数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句—数据库操纵/操作语言(对记录的操作): 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DCL语句—数据库控制语言(和权限有关): 例如控制用户的访问权限GRANT、REVOKE
DQL语句—数据库查询语言: 查询数据SELECT
库相当于windows/linux中的一个目录,用于存放文件的
库里面存放了若干张表,表可以看作成是一个文件。
每一行叫做记录,除了第一行。
每一列叫一个字段。列上面的第一个叫字段名称。
创建数据库
mysql> create database 库名;查看数据库
mysql> show databases;
进入数据库
mysql> use 库名
查看当前所在的库
mysql> select database();
创建表案例:
mysql> create table users( id int primary key, #id字段名,int数据类型,整数 primary key主键name varchar(30), #name字段名,varchar(30)可变长字符串,限制30字符age int #age是字段名 数据类型是int整数,
)ENGINE=InnoDB DEFAULT CHARSET=utf8; #指定存储引擎,设置默认的字符集
参数解释
表名:需要创建的表名
字段:表中包含的各个字段名和类型
类型:字段的类型,如int、varchar等
宽度:某些类型的长度限制,如varchar(50)
约束条件:给字段添加的约束,如primary key、 null 等
存储引擎:指定表使用的存储引擎,如InnoDB、MyISAM等
字符集:指定表使用的字符集,如utf8等
注意:在同一张表中,字段名是不能相同;宽度和约束条件是可选的;字段名和类型是必须的。
1、创建表:
mysql> create table t1(id int,name varchar(20),age int); # 字段 类型 字段 类型(长度),字段 类型
mysql> create table t2(id int,name varchar(50),sex enum('m','f'),age int);
#m:male f:female 女士
2、查看有哪些表
mysql> show tables;
3、查看表结构
mysql> desc t1;
4、查看表里面的所有记录
语法: select 内容 from 表名;
mysql> select * from t1;
#*代表所有内容
5、查看表里面的指定字段的数据
语法:select 字段,字段 from 表名;
mysql> select name,sex from t1;
6、查看表的状态
mysql> show table status like '表名'\G
#每条SQL语句会以分号结尾,想看的清楚一些以\G结尾,一条记录一条记录显示。
#(把表90度向左反转,第一列显示字段,第二列显示记录)使用的\G就不用添加分号了
7、修改表名称
方式一
语法:rename table 旧表名 to 新表名;
mysql> rename table t1 to t2;
Query OK, 0 rows affected (0.00 sec)
方式二
语法:alter table 旧表名 rename 新表名;
mysql> alter table t2 rename t3;
8、使用edit(\e)编辑
mysql> \e
create table users2(id int primary key,name varchar(30),age int(3)
)ENGINE=InnoDB DEFAULT CHARSET=utf8-> ;
#可以写新的语句,调用的vim编辑器,在里面结尾的时候不加分号,保存退出之后在加“;”
9、删除表:在企业中是危险操作,慎用!
mysql> drop table 表名;
10、删除库:在企业中是危险操作,慎用!
mysql> drop database 库名;
二、表完整性约束
1、表完整性约束的介绍
数据完整性指的是数据的一致性和正确性。
完整性约束是指数据库的内容必须遵守约束的规则。
若定义了数据完整性约束,MySQL会负责数据的完整性,每次更新数据时,MySQL都会测试新的数据内容是否符合相关的完整性约束条件,只有符合完整性的约束条件的更新才被接受。
作用:为了规范数据格式, 在用户进行插入、修改、删除等操作时,DBMS(数据库管理系统(Data Base Management System))自动按照约束条件对数据进行监测, 使不符合规范的数据不能进入数据库,以确保数据的完整性和唯一性
2、常见的完整性约束类型
约束条件说明PRIMARY KEY (PK)标识该字段为该表的主键,可以唯一的标识记录,不能为空UNIQUE + NOT NULL标识该字段的值是唯一的,且不能为空FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表之间的关联NULL标识是否允许为空,默认为NULLNOT NULL 标识该字段不能为空,可以修改UNIQUE KEY (UK)标识该字段的值是唯一的,可以为空AUTO_INCREMENT标识该字段的值自动增长(整数类型,而且为主键)DEFAULT为该字段设置默认值
主键和外键的区别:
主键用于唯一标识表中的每一行,不允许重复。而外键只是用于引用其他表中的主键,可以重复。
主键在建表时就需要定义,不能为空。而外键可以为空。
主键一般选择不重复且不易改变的字段。外键一般选择另一个表中的主键。
主键在数据修改时提供紧密控制,外键提供了表与表之间关联的链接。
删除主键记录,表中此记录将被删除。删除外键记录,外键与主键的关联会被删除,但数据仍存在。
举个简单的例子:学生表的ID字段是主键,课程表也有ID字段,但是课程表中的学生ID字段引用学生表的ID字段,课程表中的学生ID就叫外键。
总结:
- 主键用于标识表中的每一行
- 外键用于关联两个表
- 主键不允许重复
- 外键可以重复
3、表完整性约束实战操作
3.1.主键primary key
每张表里只能有一个主键,不能为空,而且唯一,主键保证记录的唯一性,主键自动为NOT NULL。
拓展知识:
未设置主键时如何处理表?
首先Innodb从上往下搜索所有字段, 直到找到一个非空且唯一的字段, 该字段就会自动升级为主键
如果表中既没有主键, 也没有非空且唯一的字段, 那么InnoDB会采用自己内部提供的一个隐藏字段作为主键, 此时提升查询效率的作用就无法享受了(隐藏字段看不见)
即:一个UNIQUE KEY 又是一个NOT NULL的时候,那么它被当做PRIMARY KEY主键。
定义两种方式:
#表存在,添加约束
mysql> alter table t03 add primary key (hostname);案例:
mysql> desc t03;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| born_year | year(4) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
#指定born_year为主键
mysql> alter table t03 add primary key (born_year);
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc t03;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| born_year | year(4) | NO | PRI | NULL | |
+-----------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)#创建表并指定主键约束
mysql> create table t9(hostname char(20),ip char(150),primary key(hostname));
mysql> insert into t9(hostname,ip) values('edu.com', '10.10.10.11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t9(hostname,ip) values('edu.com', '10.10.10.12');
ERROR 1062 (23000): Duplicate entry 'edu.com' for key 'PRIMARY'
#主键冲突了,主键有且只能有一个
mysql> insert into t9(hostname,ip) values('edu', '10.10.10.11');
Query OK, 1 row affected (0.01 sec)
mysql> select * from t9;
+-----------+-------------+
| hostname | ip |
+-----------+-------------+
| edu | 10.10.10.11 |
| edu.com | 10.10.10.11 |
+-----------+-------------+
2 rows in set (0.00 sec)
mysql> insert into t9(hostname,ip) values('jy', '10.10.10.12');
Query OK, 1 row affected (0.00 sec)
#可以插入成功,因为ip并不是主键
mysql> select * from t9;
+-----------+-------------+
| hostname | ip |
+-----------+-------------+
| edu | 10.10.10.11 |
| edu.com | 10.10.10.11 |
| jy | 10.10.10.12 |
+-----------+-------------+
3 rows in set (0.00 sec)
#删除主键
mysql> alter table t9 drop primary key;
#再查看一下表结构,看看hostname是否为主键了
mysql> desc t9;
3.2.自增键auto_increment
设置后,会自动编号,且必须与主键组合使用,默认情况下,起始值为1,每次的增量为1。
当插入数据时,如果为AUTO_INCREMENT数据列明确指定了一个数值
则会出现两种情况:
1、如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
2、如果插入的值大于已编号的值,则会把它插入到数据列中,并在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。
每张表只能有一个字段为自增,而且必须要成了key也就是主键才可以自动增长
案例
mysql> CREATE TABLE department3 (dept_id INT PRIMARY KEY AUTO_INCREMENT,dept_name VARCHAR(30),comment VARCHAR(50));
上述案例是创建了一个department3(部门3)的表格,并且将dept_id部门id设置成了主键和自增键,后续添加了一个部门成员就会自动加1
查看表结构:mysql> select * from department3;
Empty set (0.00 sec)#插入数据,一次插入2条数据,它会自动增加id号,从1开始自增
mysql> insert into department3(dept_name, comment) values('tom','test'), ('jack', 'test2');
Query OK, 2 rows affected (0.00 sec)mysql> select * from department3;
+---------+-----------+---------+
| dept_id | dept_name | comment |
+---------+-----------+---------+
| 1 | tom | test |
| 2 | jack | test2 |
+---------+-----------+---------+
2 rows in set (0.00 sec)#也可以指定id插入,直接跳过3和4
mysql> insert into department3(dept_id,dept_name,comment) values('5','bob','test5');
Query OK, 1 row affected (0.00 sec)#或者,不指定字段也是可以的,不指定具体的字段就是必须要插入3个数据值
mysql> insert into department3 values('6','jary','test6');#查询数据
mysql> select * from department3;
+---------+-----------+---------+
| dept_id | dept_name | comment |
+---------+-----------+---------+
| 1 | tom | test |
| 2 | jack | test2 |
| 5 | bob | test5 |
| 6 | jary | test6 |
+---------+-----------+---------+#删除自动增长
#语法:ALTER TABLE table_name CHANGE old_col_name new_col_name column_definition(列定义约束条件)
mysql> ALTER TABLE department3 CHANGE dept_id dept_id INT NOT NULL;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> desc department3;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| dept_id | int(11) | NO | PRI | NULL | |
| dept_name | varchar(30) | YES | | NULL | |
| comment | varchar(50) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
3.3.唯一键UNIQUE
设置唯一约束UNIQUE,字段添加唯一约束之后,该字段的值不能重复,也就是说在一列当中不能出现一样的值。
案例
mysql> CREATE TABLE department2 (dept_id INT,dept_name VARCHAR(30) UNIQUE,comment VARCHAR(50));
Query OK, 0 rows affected (0.00 sec)#插入第一条数据
mysql> insert into department2(dept_id,dept_name,comment) values('1','tom',good'')#插入第二条数据
mysql> insert into department2(dept_id,dept_name,comment) values('2','tom',good'')
ERROR 1062 (23000): Duplicate entry 'tom' for key 'dept_name'
#插入数据的时候id和comment字段相同可以插入数据,如果有相同的名字不唯一。所以插入数据失败。#将名字换掉再次插入
mysql> insert into department2(dept_id,dept_name,comment) values('2','jack',good'')
Query OK, 1 row affected (0.00 sec)#插入第三条数据,id可以相同,名字不能相同
mysql> insert into department2(dept_id,dept_name,comment) values('2','jim',good'')
Query OK, 1 row affected (0.00 sec)mysql> select * from department2;
+---------+-----------+---------+
| dept_id | dept_name | comment |
+---------+-----------+---------+
| 1 | tom | good |
| 2 | jack | good |
| 2 | jim | good |
+---------+-----------+---------+
3 rows in set (0.00 sec)
3.4.null与not null
是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
字段是否有默认值,默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值,也就是空值
例如:sex enum('male','female') not null default 'male'
只能选择male和female,不允许为空,默认是male
案例:不允许为空not null
#创建表格
mysql> create table t2(id int(5),name varchar(10),sex enum('male','female') not null default 'male');
Query OK, 0 rows affected (0.00 sec)#查看表结构
mysql> desc t2;
+-------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+-------+
| id | int(5) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| sex | enum('male','female') | NO | | male | |
+-------+-----------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)#插入数据
mysql> insert into t2(id,name) values(1,'tom');#查询数据
mysql> select * from t4;
+------+------+------+
| id | name | sex |
+------+------+------+
| 1 | tom | male |
+------+------+------+
1 row in set (0.00 sec)#再插入一条
mysql> insert into t2 values(1,'jack','female');
Query OK, 1 row affected (0.00 sec)mysql> select * from t2;
+------+------+--------+
| id | name | sex |
+------+------+--------+
| 1 | tom | male |
| 1 | jack | female |
+------+------+--------+
2 rows in set (0.00 sec)#加错了,删掉,使用delete删除
#语法:DELETE FROM table_name WHERE column_name = 'value';
#多条件匹配:DELETE FROM table_name WHERE column_name1 = 'value1' AND column_name2 = 'value2';
#操作:
mysql> delete from t2 where name='jack';
Query OK, 1 row affected (0.00 sec)mysql> select * from t2;
+------+------+------+
| id | name | sex |
+------+------+------+
| 1 | tom | male |
+------+------+------+
1 row in set (0.00 sec)
#允许为空null
mysql> create table t3(id int(5),name varchar(10),age int(5));
Query OK, 0 rows affected (0.00 sec)#查看表结构
mysql> desc t3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(5) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
| age | int(5) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)mysql> insert into t3(id,name) values(1,'tom');
Query OK, 1 row affected (0.00 sec)mysql> select * from t3;
+------+------+------+
| id | name | age |
+------+------+------+
| 1 | tom | NULL |
+------+------+------+
1 row in set (0.00 sec)
指定字符集:
#在创建表的最后面指定一下: default charset=utf8
mysql> create table t4(id int(5)) default charset=utf8;
Query OK, 0 rows affected (0.01 sec)
3.5.默认约束
添加/删除默认约束
#创建一个表
mysql> create table user(id int not null, name varchar(20), number int, primary key(id));
Query OK, 0 rows affected (0.01 sec)mysql> describe user;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| number | int(11) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)#设置默认值,将number这个字段设置成:不给这个字段赋值时,默认为0,而不是为空
mysql> ALTER TABLE user ALTER number SET DEFAULT 0;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> DESCRIBE user;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| number | int(11) | YES | | 0 | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)#将id这个字段设置成自增建
mysql> ALTER TABLE user CHANGE id id INT NOT NULL AUTO_INCREMENT;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0#查看表结构
mysql> desc user;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| number | int(11) | YES | | 0 | |
+--------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)#插入数据
mysql> INSERT INTO user(name) VALUES('rock');
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO user(name) VALUES('rock');
Query OK, 1 row affected (0.00 sec)mysql> select * from user;
+----+------+--------+
| id | name | number |
+----+------+--------+
| 1 | rock | 0 |
| 2 | rock | 0 |
+----+------+--------+
2 rows in set (0.00 sec)#如果我想自己填number的值,也是可以的
mysql> insert into user values('3','rock1','2');
Query OK, 1 row affected (0.00 sec)mysql> select * from user;
+----+-------+--------+
| id | name | number |
+----+-------+--------+
| 1 | rock | 0 |
| 2 | rock | 0 |
| 3 | rock1 | 2 |
+----+-------+--------+
3 rows in set (0.00 sec)#不指定自增建的值,也是可以的,它会自动增加
mysql> insert into user(name,number) values('jack','4');
Query OK, 1 row affected (0.00 sec)mysql> select * from user;
+----+-------+--------+
| id | name | number |
+----+-------+--------+
| 1 | rock | 0 |
| 2 | rock | 0 |
| 3 | rock1 | 2 |
| 4 | jack | 4 |
+----+-------+--------+
4 rows in set (0.00 sec)#删除默认值
mysql> ALTER TABLE user ALTER number drop DEFAULT;#再次查看表结构
mysql> desc user;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| number | int(11) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
#就能看到number这个字段的Default为空了
相关文章:
MySQL数据库基本操作和完整性约束类型详解
目录 一、增删改查的sql语句二、表完整性约束1、表完整性约束的介绍2、常见的完整性约束类型3、表完整性约束实战操作3.1.主键primary key3.2.自增键auto_increment3.3.唯一键UNIQUE3.4.null与not null3.5.默认约束 一、增删改查的sql语句 SQL(Structured Query Lan…...

unity2022版本 实现加减进度条
简介 在现代游戏开发中,用户界面 (UI) 扮演着至关重要的角色,它不仅为玩家提供信息,还增强了游戏的可玩性。加减进度条是一种常见的UI元素,它可以用于显示游戏中的进度、倒计时、资源管理和其他关键信息。在这篇博客中࿰…...

COCO数据集中图像的caption读取到txt文件
annotations_trainval2017.zip import os import shutil import jsoncaptions_path r"G:\SketchDiffusion\Sketchycoco\Dataset\annotations\captions_train2017.json" # 读取json文件 with open(captions_path, r) as f1:dictortary json.load(f1)# 得到images和…...

再谈Java泛型
一.类型参数的约束 我们可以对泛型传进来的参数做一些约束,比如说 用extends表明传进来的参数类型必须是必须是某个类型的子类型或者本身 当然也可以用接口约束,也是用extends表明传进来的参数类型必须实现某个接口。用&连接,注意class…...
scss使用自定义函数实现单位像素随屏幕比例动态缩放
vue中通过变量和scss函数来动态实现动态缩放像素 简单来说就是比例缩小时,像素单位变大,从而字体大小相对不变,以下仅处理比例缩小的状况 自定义一个属性–size,初始值为1px template <template><div class"hom…...

Django 静态自定义化配置
STATIC # APP本地静态资源目录(就APP对应的) STATIC_URL "/static/"# 远程静态文件URL(少用) REMOTE_STATIC_URL# 外部引用静态文件目录(外层的) STATICFILES_DIRS [os.path.join(BASE_DIR, &…...

TensorFlow入门(十四、数据读取机制(1))
TensorFlow的数据读取方式 TensorFlow的数据读取方式共有三种,分别是: ①预加载数据(Preloaded data) 预加载数据的方式,其实就是静态图(Graph)的模式。即将数据直接内嵌到Graph中,再把Graph传入Session中运行。 示例代码如下: import tensorflow.compat.v1 as tf tf.disabl…...
hyperf框架WebSocket 服务
1:安装 composer require hyperf/websocket-server2:配置 Server 修改 config/autoload/server.php,增加以下配置。 return [servers > [[name > ws,type > Server::SERVER_WEBSOCKET,host > 0.0.0.0,port > 9502,sock_typ…...
前端模块化
当我们从公司招聘上看到要求模块化的内容。 能从这几个角度回答,就说明我们是懂模块化的。 1. 模块化的本意,是当遇到一个复杂项目的时候(简单的不建议用),把这个复杂的问题拆分成相对独立的模块,降低程序…...

如何使用Docker轻松构建和管理应用程序(一)
如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下&a…...
uniapp 获取地理位置(uni#getLocation和高德sdk获取中文地址)
参考 https://uniapp.dcloud.net.cn/api/location/location.html https://ask.dcloud.net.cn/article/35070 1. uniapp api获取经纬度 uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度: res.longitude);console.log(当前位…...
openmp 通用核心 学习 2 数据环境—任务-内存模型
目录 openmp 数据环境 子句: 在上述三个子句中也可以传入指针和数组 openmp 任务: openmp内存模型: openmp 数据环境 子句: shared(list) private(list)//默认构造 值未被初始化 对于图6-5: //File #1 int tm…...
Linux有哪些指令
Linux操作系统提供了许多指令,可以帮助用户进行各种操作。以下是一些常见的Linux指令: ls:列出当前目录下的文件和目录。cd:改变当前工作目录。pwd:显示当前工作目录。mkdir:创建新的目录。rm:…...

图扑 HT for Web 风格属性手册教程
图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎。HT for Web(以下简称 HT)图元的样式由其 Style 属性控制,并且不同类型图元的 Style 属性各不相同。为了方便查询和理解图元的 Style 属性࿰…...
oracle 数据库删除序列
oracle 数据库删除序列 要删除 Oracle 数据库中的序列,你可以使用以下的 SQL 命令: DROP SEQUENCE sequence_name;其中,sequence_name 是你想删除的序列的名称。你需要确保当前用户对序列拥有适当的权限。 请注意,删除序列将永…...

JAVA毕业设计098—基于Java+Springboot的在线教育课程视频(源码+数据库)
基于JavaSpringboot的在线教育课程视频(源码数据库)098 一、系统介绍 本系统分为管理员、教师、用户三种角色(角色菜单可自行分配) 用户功能: 注册、登录、课程搜索、视频观看、课程资料发布、资料浏览、用户中心、我的发布、通知信息、密码修改 教师功能&…...

如何在雷电模拟器上安装Magisk并加载movecert模块抓https包(二)
接来下在PC端安装和配置Charles,方法同下面链接,不再赘述。在模拟器上安装magisk实现Charles抓https包(二)_小小爬虾的博客-CSDN博客 一、记录下本机IP和代理端口 二、在手机模拟器上设置代理192.168.31.71:8888,设置…...

基于web的酒店客房管理系统
目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 会员信息管理 客房信息管理 收藏客房管理 用户入住管理 客房清扫管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施…...
linux查看系统信息
Linux查看当前操作系统版本信息 cat /proc/version Linux version 2.6.32-696.el6.x86_64 (mockbuildc1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:05 UTC 2017 Linux查看版本当前操作系统内核信息 uname -a Linux…...

蓝牙官网demo的记录
目录 一、官网蓝牙demo 二、可以参考的博客带蓝牙demo 一、官网蓝牙demo 平常看android官网,发现有两个不同的文档地址: 连接 | Android 开源项目 | Android Open Source Project 蓝牙概览 | Connectivity | Android Developers 蓝牙demo在 …...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...