MySQL数据库——数据库的基本操作
目录
三、数据库的基本操作
1.数据库中库的操作
①创建数据库
②字符集和校验规则
③操纵数据库
④备份与恢复
2.数据库中表的操作
①创建表
②查看表
1> 查看表位于的数据库
2>查看所有表
3>查看表中的数据
4>查看创建表的时候的详细信息
③修改表
1>修改表的名字
2>修改表的内容,插入数据
3>修改表的Type属性
4>修改表的Field属性
5>删除表中某一列
④删除表
三、数据库的基本操作
1.数据库中库的操作
①创建数据库
CREATE DATABASE database_name; -- 最基本的写法CREATE [IF NOT EXISTS] DATABASE data
CHARACTER SET 'utf8mb4' -- 指定字符集
COLLATE 'utf8mb4_unicode_ci'; -- 指定校验规则[IF NOT EXISTS] -- 可选项,表示如果不存在就创建
说明:当我们创建数据库没有指定字符集和校验规则时
系统使用默认字符集:u8
校验规则是:utf8_general_ci创建一个使用utf8字符集的db2数据库
create database db2 charset=utf8;
创建一个使用utf8字符集,并带校对规则的db3数据库。
create database db3 charset=utf8 collate utf8_general_ci;
②字符集和校验规则
-- 查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';-- 查看数据库支持的字符集
show charset;-- 查看数据库支持的字符集校验规则
show collation;
校验规则对数据库的影响:
- 使用
utf8_general_ci
校验规则
mysql> create database test1 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)mysql> use test1;
Database changed
mysql> create table person(name varchar(20));
Query OK, 0 rows affected (0.01 sec)mysql> insert into person values('a');
Query OK, 1 row affected (0.00 sec)mysql> insert into person values('A');
Query OK, 1 row affected (0.00 sec)mysql> insert into person values('b');
Query OK, 1 row affected (0.01 sec)mysql> insert into person values('B');
Query OK, 1 row affected (0.01 sec)
- 使用
utf8_bin
校验规则
mysql> create database test2 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)mysql> use test2;
Database changed
mysql> create table person(name varchar(20));
Query OK, 0 rows affected (0.02 sec)mysql> insert into person values('a');
Query OK, 1 row affected (0.00 sec)mysql> insert into person values('A');
Query OK, 1 row affected (0.00 sec)mysql> insert into person values('b');
Query OK, 1 row affected (0.01 sec)mysql> insert into person values('B');
Query OK, 1 row affected (0.00 sec)
- 查询
-- utf8_general_ci
mysql> use test1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
| A |
+------+
2 rows in set (0.00 sec)-- utf8_bin
mysql> use test2;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
+------+
1 row in set (0.00 sec)
- 结果排序
-- utf8_general_ci
mysql> use test1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from person order by name;
+------+
| name |
+------+
| a |
| A |
| b |
| B |
+------+
4 rows in set (0.00 sec)-- utf8_bin
mysql> use test2;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from person order by name;
+------+
| name |
+------+
| A |
| B |
| a |
| b |
+------+
4 rows in set (0.00 sec)
-- utf8_general_ci 不区分大小写
-- utf8_bin 区分大小写
不同的校验规则在进行数据库操作的时候会产生不同的结果
③操纵数据库
-- 查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bookstore |
| helloworld |
| mysql |
| performance_schema |
| sys |
| test1 |
| test2 |
+--------------------+
8 rows in set (0.00 sec)-- 显示创建数据库语句
mysql> show create database test1;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)-- 修改数据库,将 mytest 数据库字符集改成 gbk
mysql> alter database test1 charset=gbk;
Query OK, 1 row affected (0.00 sec)mysql> show create database test1;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)-- 删除数据库
mysql> DROP database test1;
Query OK, 1 row affected (0.01 sec)
④备份与恢复
1. 备份
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径-- 示例:将mytest库备份到文件(退出连接)
mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql
-- 这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句
都装载这个文件中。
2. 还原
source 备份数据库的路径
mysql> source D:/mysql-5.7.22/mytest.sql;
3. 备份一张表
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
4. 同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source
来还原。
5. 查看数据库连接情况
mysql> show processlist;
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+----------+------------------+
| 15 | root | localhost | NULL | Query | 0 | starting | show processlist |
+----+------+-----------+------+---------+------+----------+------------------+
1 row in set (0.00 sec)
2.数据库中表的操作
①创建表
mysql> create database user_db;
Query OK, 1 row affected (0.00 sec)mysql> use user_db;
Database changed-- 两张表使用不同的存储引擎,user1使用MyIsam,user2使用InnoDB
mysql> create table 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 user2(-> id int,-> name varchar(20) comment '用户名',-> password char(32) comment '用户密码',-> birthday date comment '用户生日'-> )character set utf8 collate utf8_general_ci engine InnoDB;
Query OK, 0 rows affected (0.01 sec)
因为使用不同的存储引擎,所以表结构不同
如果直接创建而不制定存储引擎:
mysql> create table user3(name char(32));
Query OK, 0 rows affected (0.02 sec)
因为在配置mysql的时候配置了默认的存储引擎(vim /etc/my.cnf
查看配置)
②查看表
1> 查看表位于的数据库
-- 查看当前位于的数据库
mysql> select database();
+------------+
| database() |
+------------+
| user_db |
+------------+
1 row in set (0.00 sec)
2>查看所有表
-- 查看所有表
mysql> show tables;
+-------------------+
| Tables_in_user_db |
+-------------------+
| user1 |
| user2 |
| user3 |
+-------------------+
3 rows in set (0.00 sec)
3>查看表中的数据
-- 查看表中的数据
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)mysql> desc user2;
+----------+-------------+------+-----+---------+-------+
| 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> desc user3;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name | char(32) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)
4>查看创建表的时候的详细信息
-- 查看创建表的时候的详细信息
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)
③修改表
1>修改表的名字
-- 显示当前表信息
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)-- 更改表的名字
mysql> alter table user1 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)
2>修改表的内容,插入数据
-- 显示表的信息
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> insert into user values(1,'张三','12345','2010-10-1');
Query OK, 1 row affected (0.00 sec)-- 向表中插入第二条数据
mysql> insert into user values(1,'李四','23456','2015-1-1');
Query OK, 1 row affected (0.00 sec)-- 查询表中所有内容
mysql> select * from user;
+------+--------+----------+------------+
| id | name | password | birthday |
+------+--------+----------+------------+
| 1 | 张三 | 12345 | 2010-10-01 |
| 1 | 李四 | 23456 | 2015-01-01 |
+------+--------+----------+------------+
2 rows in set (0.00 sec)-- 新增一列,且在birthday一列之后
mysql> alter table user add image_path varchar(128) comment '用户的头像路径' after birthday;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> select * from user;
+------+--------+----------+------------+------------+
| id | name | password | birthday | image_path |
+------+--------+----------+------------+------------+
| 1 | 张三 | 12345 | 2010-10-01 | NULL |
| 1 | 李四 | 23456 | 2015-01-01 | NULL |
+------+--------+----------+------------+------------+
2 rows in set (0.00 sec)
3>修改表的Type属性
-- 当前表的属性
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 | |
| image_path | varchar(128) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)-- 修改某一属性,如name的Type
mysql> alter table user modify name varchar(60);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0-- 查看修改后的表的属性
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)
4>修改表的Field属性
-- 当前表的属性
mysql> 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)-- 修改某一属性,如name改为xingming
mysql> 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> desc user;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| xingming | varchar(60) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| image_path | varchar(128) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
5>删除表中某一列
-- 查看当前表的属性
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 |
| 1 | 李四 | 23456 | 2015-01-01 | NULL |
+------+--------+----------+------------+------------+
2 rows in set (0.00 sec)-- 修改表,删除其中的password列
mysql> alter table user drop password;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0-- 查看修改后的表的属性
mysql> 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)-- 查看修改后的表的内容
mysql> select * from user;
+------+--------+------------+------------+
| id | name | birthday | image_path |
+------+--------+------------+------------+
| 1 | 张三 | 2010-10-01 | NULL |
| 1 | 李四 | 2015-01-01 | NULL |
+------+--------+------------+------------+
2 rows in set (0.00 sec)
④删除表
-- 显示所有的表
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)-- 显示更改后所有的表
mysql> show tables;
Empty set (0.00 sec)
相关文章:

MySQL数据库——数据库的基本操作
目录 三、数据库的基本操作 1.数据库中库的操作 ①创建数据库 ②字符集和校验规则 ③操纵数据库 ④备份与恢复 2.数据库中表的操作 ①创建表 ②查看表 1> 查看表位于的数据库 2>查看所有表 3>查看表中的数据 4>查看创建表的时候的详细信息 ③修改表 …...
SQL数据库语句练习
1、mysql常用的数据类型是_整数(int)__、_小数(decimal)__、_字符串(varchar)__、_日期时间(datetime)___。 2、mysql的约束有__主键(primary key)_、_非空&…...
【Python】常用的pdf提取库介绍对比
提取PDF内容的Python库有多种选择,每个库都有其独特的优缺点。以下是一些常用的库以及它们的优缺点和示例代码: pdfplumberPyMuPDF (fitz)PyPDF2PDFMinerCamelot 1. pdfplumber 优点: 易于使用,提供简单直观的API。能提取文本…...
sbatch提交并行作业 运行python程序 指定输入参数从1到100
#!/bin/bash #SBATCH --job-namemy_python_job #SBATCH --outputmy_python_job_%j.out #SBATCH --errormy_python_job_%j.err #SBATCH --ntasks100# 载入所需模块 # module load python/3.8.5# 执行Python脚本并传递任务ID作为参数 for i in {1..100}; dosrun python my_script…...
OD C卷 - 中庸行者
中庸行者 (200) 给一个m*n的整数矩阵作为地图,矩阵数值为地形的高度,选择图中任意一点作为起点,向左右上下四个方向移动: 只能上坡、下坡,不能走相同高度的点;不允许连续上坡 或者连…...

最新CSS3横向菜单的实现
横向菜单 原始代码: <nav class"list1"><ul><li><a href"#">Shirts</a></li><li><a href"#">Pants</a></li><li><a href"#">Dresses</a>…...

(2024,LlamaGen,Llama,自回归下一token预测,模型扩展)自回归模型优于扩散:Llama 用于可扩展图像生成
Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation 目录 0. 摘要 1. 引言 2. 自回归模型在图像生成中的应用 2.1 概述 2.2 图像 tokenizer 2.3 自回归模型生成图像 2.4 规模扩展 2.5 服务 3. 实验 5. 结论 0. 摘要 我们介绍 LlamaGen&…...
重新安装操作系统的软件都有哪些?
重新安装操作系统关键步骤 重新安装操作系统通常涉及到几个关键步骤:创建可启动媒体、备份现有数据、安装操作系统、以及系统初始化和配置。以下是一些常用工具和软件,它们可以帮助你完成这些步骤: 创建可启动媒体 Rufus:用于W…...

深圳水务展|2025深圳国际水务科技博览会
2025深圳国际水务科技博览会 展会主题: 新质生产力赋能水务产业高质量发展 展会时间:2025年7月24-26日 展会地点:深圳会展中心(福田) 主办单位: 广东省水利学会 深圳市水务学会 协办单位: 中国水利…...

OpenAI not returning a result?
题意:OpenAI 没有返回结果吗? 问题背景: Im trying to use the OpenAI beta but I cant seem to get a result. Im accessing the API via an NPM package (openai-api - npm). I have that setup and working but when I make a request th…...
[Windows]_[初级]_[GetVersionEx获取系统版本错误的原因]
场景 开发WTL/ATL/Win32程序时, 有时候需要获取系统版本号,以便判断用户在使用软件时的系统。在某一天突然发现获取的系统版本号是错的, 一直是版本号6.2.x,什么情况? 说明 如果软件没有针对Win8.1或Win10以上的系统做兼容处理,返回的是Wi…...

2024,Java开发在中国市场还有发展前景吗?
随着2024年的到来,Java作为一种经典而强大的编程语言,依然在中国的软件开发市场中扮演着重要角色。然而,许多人对Java的未来发展前景持有不同的看法。让我们来探讨一下当前情况和未来的走向。 Java程序员真的过剩了吗? 2023年, 各…...
gcc: string.c_str gcc-8.5的一个问题
https://en.cppreference.com/w/cpp/string/basic_string/c_str https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/ common mistakes when using string::c_str()string的这个成员是返回c类型的一个字符数组指针。但是这个指针所对应的地址有赖于string对象的生命周期。所…...

一道笔试题 - 无重复字符的最长子串
老生常谈的一道题,常见并 文章目录 描述预期结果Java代码 描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 预期结果 Java代码 import java.util.HashSet; import java.util.Set;public class Demo2 {public static void main(S…...
C#反射的NullReferenceException
背景 xml文件中有些元素的属性被删除,导致文件无法被读取(C#)。 调试之后发现,因为属性被删除,读进来会保持默认值null,在后续的反射中如果用这个null给字符串属性赋值,会抛异常。 另外发现前面…...
100道C/C++面试题
1. static的作用2. 引用与指针的区别3. .h头文件中的ifndef/define/endif 的作用4 #include<file.h>与#include"file.h"的区别?5 描述实时系统的基本特性6 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?7 什么是平衡二叉树?8 堆栈溢…...

Python(模块)
模块编写完成就可以被其他模块进行调用并使用被调用模块的功能。 import导入方式的语法结构: import模块名称【as别名】 from……import导入方式的语法结构: from模块名称,import变量/函数/类/*(*是通配符) impor…...
【八股文】Java基础篇
1. 和 equals的区别是什么? 判断两个变量或者实例是否都指向同一内存空间的值(不仅值相同,地址也要相同)equals是判断两个变量执行的内存空间的值是否相同(值相同,地址可以不同),所…...

python rsa如何安装
Python中的一些模块是用一个包管理器来发布的,RSA模块就是,所以首先需要安装setup tools工具。 1、下载文件:ez_setup.py 2、安装: sudo python ez_setup.py 3、下载RSA安装包:rsa-3.1.1-py2.7.egg 4、安装RSA&…...
P10289 [GESP样题 八级] 小杨的旅游
Description 给定一棵 n n n 个点的树,每条边权值均为 1 1 1,树上有 k k k 个关键点,关键点们在 0 0 0 的时间内相互可达, q q q 次询问,求 s → t s\to t s→t 的最短路。 Analysis 考虑暴力建图,…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...