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

[数据库]表的增删改查进阶

●🧑个人主页:你帅你先说.
●📃欢迎点赞👍关注💡收藏💖
●📖既选择了远方,便只顾风雨兼程。
●🤟欢迎大家有问题随时私信我!
●🧐版权:本文由[你帅你先说.]原创,CSDN首发,侵权必究。

📌📌📌为您导航📌📌📌

  • 1. 表的增删查改
    • 6.1 Create
    • 6.2 Retrieve
    • 6.3 Update
    • 6.4 Delete
  • 2.插入查询结果
  • 3.聚合函数
  • 4.group by子句的使用

1. 表的增删查改

CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

6.1 Create

语法:

INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ... 
value_list: value, [, value] ...
mysql> create table students ( id int unsigned primary key auto_increment, sn int not null unique comment '学号', name varchar(20) not null, qq varchar(20) 
);
Query OK, 0 rows affected (0.03 sec)//单行数据插入
mysql> insert into students values (100, 10000, '张三', NULL);
Query OK, 1 row affected (0.01 sec)mysql> insert into students values (101, 10001, '李四', '10000');
Query OK, 1 row affected (0.00 sec)//多行数据插入
mysql> insert into students (id, sn, name) values (102, 20001, '李华'), (103, 20002, '李明');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0//插入并更新数据
insert into students (id, sn, name) values (100, 10000, '法外狂徒') on duplicate key update sn = 10000, name = '法外狂徒';
-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等 
-- 1 row affected: 表中没有冲突数据,数据被插入 
-- 2 row affected: 表中有冲突数据,并且数据已经被更新//替换数据
mysql> replace into students (sn, name) values (10001, '田七');
Query OK, 2 rows affected (0.01 sec)

duplicate会优先判定哪个是第一个冲突的数据,而replace会找出所有的冲突,替换成一个。

6.2 Retrieve

语法:

SELECT[DISTINCT] {* | {column [, column] ...} [FROM table_name] [WHERE ...] [ORDER BY column [ASC | DESC], ...] LIMIT ...
CREATE TABLE exam_result ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL COMMENT '同学姓名', chinese float DEFAULT 0.0 COMMENT '语文成绩', math float DEFAULT 0.0 COMMENT '数学成绩', english float DEFAULT 0.0 COMMENT '英语成绩' 
);
Query OK, 0 rows affected (0.03 sec)//插入数据集
INSERT INTO exam_result (name, chinese, math, english) VALUES ('唐三藏', 67, 98, 56), ('孙悟空', 87, 78, 77), ('猪悟能', 88, 98, 90), ('曹孟德', 82, 84, 67), ('刘玄德', 55, 85, 45), ('孙权', 70, 73, 78), ('宋公明', 75, 65, 30);
Query OK, 7 rows affected (0.01 sec)
Records: 7  Duplicates: 0  Warnings: 0//全列查询
SELECT * FROM exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  3 | 猪悟能    |      88 |   98 |      90 |
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+
7 rows in set (0.00 sec)//指定列查询
SELECT id, name, english 
FROM exam_result;
+----+-----------+---------+
| id | name      | english |
+----+-----------+---------+
|  1 | 唐三藏    |      56 |
|  2 | 孙悟空    |      77 |
|  3 | 猪悟能    |      90 |
|  4 | 曹孟德    |      67 |
|  5 | 刘玄德    |      45 |
|  6 | 孙权      |      78 |
|  7 | 宋公明    |      30 |
+----+-----------+---------+
7 rows in set (0.00 sec)//查询字段为表达式
SELECT id, name, english + 10 
FROM exam_result;
+----+-----------+--------------+
| id | name      | english + 10 |
+----+-----------+--------------+
|  1 | 唐三藏    |           66 |
|  2 | 孙悟空    |           87 |
|  3 | 猪悟能    |          100 |
|  4 | 曹孟德    |           77 |
|  5 | 刘玄德    |           55 |
|  6 | 孙权      |           88 |
|  7 | 宋公明    |           40 |
+----+-----------+--------------+
7 rows in set (0.00 sec)//为查询结果指定别名
SELECT id, name, chinese + math + english 总分 
FROM exam_result;
+----+-----------+--------+
| id | name      | 总分   |
+----+-----------+--------+
|  1 | 唐三藏    |    221 |
|  2 | 孙悟空    |    242 |
|  3 | 猪悟能    |    276 |
|  4 | 曹孟德    |    233 |
|  5 | 刘玄德    |    185 |
|  6 | 孙权      |    221 |
|  7 | 宋公明    |    170 |
+----+-----------+--------+
7 rows in set (0.00 sec)//结果去重
SELECT DISTINCT math FROM exam_result;
+------+
| math |
+------+
|   98 |
|   78 |
|   84 |
|   85 |
|   73 |
|   65 |
+------+
6 rows in set (0.00 sec)//where条件查询
//查询英语不及格的同学并显示英语成绩
SELECT name, english FROM exam_result WHERE english < 60;
+-----------+---------+
| name      | english |
+-----------+---------+
| 唐三藏    |      56 |
| 刘玄德    |      45 |
| 宋公明    |      30 |
+-----------+---------+
3 rows in set (0.00 sec)//查询语文成绩在 [80, 90] 分的同学并显示语文成绩
SELECT name, chinese 
FROM exam_result 
WHERE chinese >= 80 AND chinese <= 90;
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 孙悟空    |      87 |
| 猪悟能    |      88 |
| 曹孟德    |      82 |
+-----------+---------+
3 rows in set (0.00 sec)//查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学并显示数学成绩
SELECT name, math 
FROM exam_result 
WHERE math = 58 OR math = 59 OR math = 98 OR math = 99;
+-----------+------+
| name      | math |
+-----------+------+
| 唐三藏    |   98 |
| 猪悟能    |   98 |
+-----------+------+
2 rows in set (0.00 sec)
//也可以写成
SELECT name, math 
FROM exam_result 
WHERE math IN (58, 59, 98, 99);
+-----------+------+
| name      | math |
+-----------+------+
| 唐三藏    |   98 |
| 猪悟能    |   98 |
+-----------+------+
2 rows in set (0.00 sec)//查询姓孙的同学及孙某同学
//查询姓孙的同学
mysql> SELECT name FROM exam_result WHERE name LIKE '孙%';
+-----------+
| name      |
+-----------+
| 孙悟空    |
| 孙权      |
+-----------+
2 rows in set (0.00 sec)//查询孙某同学
SELECT name FROM exam_result WHERE name LIKE '孙_';
+--------+
| name   |
+--------+
| 孙权   |
+--------+
1 row in set (0.00 sec)//语文成绩高于英语成绩的同学
SELECT name, chinese, english 
FROM exam_result 
WHERE chinese > english;
+-----------+---------+---------+
| name      | chinese | english |
+-----------+---------+---------+
| 唐三藏    |      67 |      56 |
| 孙悟空    |      87 |      77 |
| 曹孟德    |      82 |      67 |
| 刘玄德    |      55 |      45 |
| 宋公明    |      75 |      30 |
+-----------+---------+---------+
5 rows in set (0.00 sec)//总分在 200 分以下的同学
SELECT name, chinese + math + english 总分 
FROM exam_result 
WHERE chinese + math + english < 200;
+-----------+--------+
| name      | 总分   |
+-----------+--------+
| 刘玄德    |    185 |
| 宋公明    |    170 |
+-----------+--------+
2 rows in set (0.00 sec)
//注意,这里不能写成总分<200,因为这条SQL语句在执行时where的优先级更高//想要使用别名可以使用HAVING语句
SELECT name, chinese + math + english 总分 FROM exam_result HAVING 总分 < 200;
+-----------+--------+
| name      | 总分   |
+-----------+--------+
| 刘玄德    |    185 |
| 宋公明    |    170 |
+-----------+--------+
2 rows in set (0.00 sec)//语文成绩 > 80 并且不姓孙的同学
SELECT name, chinese FROM exam_result WHERE chinese > 80 AND name NOT LIKE '孙%';
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 猪悟能    |      88 |
| 曹孟德    |      82 |
+-----------+---------+
2 rows in set (0.00 sec)//孙某同学,否则要求总成绩>200并且语文成绩<数学成绩并且英语成绩>80
SELECT name,chinese,math,english, chinese+math+english 总分 
FROM exam_result 
WHERE name LIKE '孙_' OR (chinese+math+english>200 ANDchinese<math AND english>80 
);
+-----------+---------+------+---------+--------+
| name      | chinese | math | english | 总分   |
+-----------+---------+------+---------+--------+
| 猪悟能    |      88 |   98 |      90 |    276 |
| 孙权      |      70 |   73 |      78 |    221 |
+-----------+---------+------+---------+--------+
2 rows in set (0.00 sec)//NULL的查询
SELECT name, qq 
FROM students 
WHERE qq IS NOT NULL;
Empty set (0.00 sec)
//NULL的比较不能使用=,而要使用<=>//结果排序
-- ASC 为升序(从小到大) 
-- DESC 为降序(从大到小) 
-- 默认为 ASC
//同学及数学成绩,按数学成绩升序显示
SELECT name, math 
FROM exam_result 
ORDER BY math;
+-----------+------+
| name      | math |
+-----------+------+
| 宋公明    |   65 |
| 孙权      |   73 |
| 孙悟空    |   78 |
| 曹孟德    |   84 |
| 刘玄德    |   85 |
| 唐三藏    |   98 |
| 猪悟能    |   98 |
+-----------+------+
7 rows in set (0.00 sec)
// 同学及 qq 号,按 qq 号排序显示
SELECT name, qq 
FROM students 
ORDER BY qq;
+--------------+------+
| name         | qq   |
+--------------+------+
| 法外狂徒     | NULL |
| 李华         | NULL |
| 李明         | NULL |
| 李三一       | NULL |
+--------------+------+
4 rows in set (0.00 sec)//查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
SELECT name, math, english, chinese 
FROM exam_result 
ORDER BY math DESC, english, chinese;
+-----------+------+---------+---------+
| name      | math | english | chinese |
+-----------+------+---------+---------+
| 唐三藏    |   98 |      56 |      67 |
| 猪悟能    |   98 |      90 |      88 |
| 刘玄德    |   85 |      45 |      55 |
| 曹孟德    |   84 |      67 |      82 |
| 孙悟空    |   78 |      77 |      87 |
| 孙权      |   73 |      78 |      70 |
| 宋公明    |   65 |      30 |      75 |
+-----------+------+---------+---------+
7 rows in set (0.00 sec)// 查询同学及总分,由高到低
-- ORDER BY 子句中可以使用列别名
SELECT name, chinese + english + math 总分
FROM exam_result 
ORDER BY 总分 DESC;
+-----------+--------+
| name      | 总分   |
+-----------+--------+
| 猪悟能    |    276 |
| 孙悟空    |    242 |
| 曹孟德    |    233 |
| 唐三藏    |    221 |
| 孙权      |    221 |
| 刘玄德    |    185 |
| 宋公明    |    170 |
+-----------+--------+
7 rows in set (0.00 sec)// 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示
SELECT name, math 
FROM exam_result 
WHERE name LIKE '孙%' OR name LIKE '曹%' 
ORDER BY math DESC;
+-----------+------+
| name      | math |
+-----------+------+
| 曹孟德    |   84 |
| 孙悟空    |   78 |
| 孙权      |   73 |
+-----------+------+
3 rows in set (0.00 sec)//筛选分页结果
SELECT id, name, math, english, chinese 
FROM exam_result 
ORDER BY id LIMIT 3 OFFSET 0;//意思是从id为OFFSET+1开始显示3个数据
+----+-----------+------+---------+---------+
| id | name      | math | english | chinese |
+----+-----------+------+---------+---------+
|  1 | 唐三藏    |   98 |      56 |      67 |
|  2 | 孙悟空    |   78 |      77 |      87 |
|  3 | 猪悟能    |   98 |      90 |      88 |
+----+-----------+------+---------+---------+
3 rows in set (0.00 sec)

6.3 Update

语法:

UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]
//将孙悟空同学的数学成绩变更为 80 分
UPDATE exam_result 
SET math = 80 
WHERE name = '孙悟空';//将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
UPDATE exam_result 
SET math = 60, chinese = 70 
WHERE name = '曹孟德';//将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
UPDATE exam_result 
SET math = math + 30 
ORDER BY chinese + math + english LIMIT 3;//将所有同学的语文成绩更新为原来的 2 倍
UPDATE exam_result 
SET chinese = chinese * 2;

6.4 Delete

语法:

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
//删除孙悟空同学的考试成绩
DELETE FROM exam_result WHERE name = '孙悟空';//删除整张表数据
DELETE FROM for_delete;//截断表
--1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作。
--2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚。
--3. 会重置AUTO_INCREMENT项,标号会重新从1开始,而若用delete删除,则会延续旧表的AUTO_INCREMENT。
TRUNCATE for_truncate;

2.插入查询结果

语法:

INSERT INTO table_name [(column [, column ...])] SELECT ...
//删除表中的的重复复记录,重复的数据只能有一份
-- 创建原数据表
CREATE TABLE duplicate_table (id int, name varchar(20));
Query OK, 0 rows affected (0.01 sec)
-- 插入测试数据
INSERT INTO duplicate_table VALUES (100, 'aaa'), (100, 'aaa'), (200, 'bbb'), (200, 'bbb'), (200, 'bbb'), (300, 'ccc'); 
Query OK, 6 rows affected (0.00 sec) 
Records: 6 Duplicates: 0 Warnings: 0-- 创建一张空表 no_duplicate_table,结构和 duplicate_table 一样
CREATE TABLE no_duplicate_table LIKE duplicate_table; 
Query OK, 0 rows affected (0.00 sec)-- 将 duplicate_table 的去重数据插入到 no_duplicate_table 
INSERT INTO no_duplicate_table 
SELECT DISTINCT * FROM duplicate_table; 
Query OK, 3 rows affected (0.00 sec) 
Records: 3 Duplicates: 0 Warnings: 0-- 通过重命名表,实现原子的去重操作
RENAME TABLE duplicate_table TO old_duplicate_table, no_duplicate_table TO duplicate_table;
Query OK, 0 rows affected (0.00 sec)-- 查看最终结果
SELECT * FROM duplicate_table;
+-----+------+ 
| id  | name | 
+-----+------+ 
| 100 | aaa  | 
| 200 | bbb  | 
| 300 | ccc  |
+------+-----+
3 rows in set (0.00 sec)

3.聚合函数

//统计班级共有多少同学
-- 使用 * 做统计,不受 NULL 影响
SELECT COUNT(*) FROM students;// 统计班级收集的 qq 号有多少
-- NULL 不会计入结果
SELECT COUNT(qq) FROM students;//统计本次考试的数学成绩分数个数
SELECT COUNT(math) FROM exam_result;
-- COUNT(DISTINCT math) 统计的是去重成绩数量
SELECT COUNT(DISTINCT math) FROM exam_result;//统计数学成绩总分
SELECT SUM(math) FROM exam_result;//统计平均总分
SELECT AVG(chinese + math + english) 平均总分 FROM exam_result;//返回英语最高分
SELECT MAX(english) FROM exam_result;//返回 > 70 分以上的数学最低分
SELECT MIN(math) FROM exam_result WHERE math > 70;

4.group by子句的使用

--准备工作,创建一个雇员信息表(来自oracle 9i的经典测试表)
--EMP员工表
--DEPT部门表
--SALGRADE工资等级表
--deptno部门号 sal工资 //如何显示每个部门的平均工资和最高工资
select deptno,avg(sal),max(sal) 
from EMP 
group by deptno;//显示每个部门的每种岗位的平均工资和最低工资
select avg(sal),min(sal),job, deptno 
from EMP 
group by deptno, job;//显示平均工资低于2000的部门和它的平均工资
select avg(sal) as myavg 
from EMP 
group by deptno having myavg<2000;

having经常和group by搭配使用,作用是对分组进行筛选,作用有些像where,但与where不同的是执行顺序,where的执行优先级总是靠前的,所以where里不能使用别名,而having是在满足条件的数据挑选完之后在按条件来进行分组,所以having可以使用别名。
SQL查询中各个关键字的执行先后顺序:from > on> join > where > group by > with > having > select> distinct > order by > limit

喜欢这篇文章的可以给个一键三连点赞👍关注💡收藏💖

相关文章:

[数据库]表的增删改查进阶

●&#x1f9d1;个人主页:你帅你先说. ●&#x1f4c3;欢迎点赞&#x1f44d;关注&#x1f4a1;收藏&#x1f496; ●&#x1f4d6;既选择了远方&#xff0c;便只顾风雨兼程。 ●&#x1f91f;欢迎大家有问题随时私信我&#xff01; ●&#x1f9d0;版权&#xff1a;本文由[你帅…...

Kubernetes调度之Pod亲和性

Kubernetes调度中的Pod亲和性abstract.pngPod亲和性节点亲和性&#xff0c;是基于节点的标签对Pod进行调度。而Pod亲和性则可以实现基于已经在节点上运行Pod的标签来约束新Pod可以调度到的节点。具体地&#xff0c;如果X上已经运行了一个或多个满足规则Y的Pod&#xff0c;则这个…...

建立相关在线社群的3个简单步骤

在线社群管理和社交媒体营销通常被视为一回事。虽然社群管理确实是社交媒体营销的一个关键部分&#xff0c;但它的意义超越了社交媒体的内容发布。因此&#xff0c;在线社群对于企业的数字营销十分重要。创建、维护和发展社群不是一件容易的工作&#xff0c;也不是一个快速的过…...

安全运营的新模式

安全运营的新模式是传统安全运维的扩展和升级&#xff0c;其实现落地需要管理和技术两斱面同时支撑、相互衎接和配合&#xff0c;缺夰仸何一个都是行不通的。管理斱面&#xff0c;在顶层设计时&#xff0c;网络安全运营要根据国家信息安全等级保护 2.0 的相关要求&#xff0c;参…...

Day10-网页布局实战CSS3

一 补充 1 画三角形 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…...

代码规范(C/C++规范)

文章目录前言个人编写的代码规范链接请求合作大体章节END前言 什么是代码规范 一套用于统一代码开发的准则 为什么需要代码规范 提升代码可读性&#xff0c;提升团队效率 个人编写的代码规范 近期本人编写了一份以C/C为主的代码规范。 其他语言开发者也可以阅读参考。 本…...

春招冲刺(九):计算属性和监视属性总结

计算属性和监视属性总结 Q1&#xff1a;计算属性 姓&#xff1a;<input type"text" v-model"firstName"><br><br> 名&#xff1a;<input type"text" v-model"lastName"><br><br> 姓名&#xff…...

数据挖掘(作业1)

实验开始前先配置环境 以实验室2023安装的版本为例&#xff1a; 1、安装anaconda&#xff1a;&#xff08;anaconda自带Python,安装了anaconda就不用再安装Python了&#xff09; 下载并安装 Anaconda3-2022.10-Windows-x86_64.exe 自己选择安装路径&#xff0c;其他使用默认…...

【UE4 RTS游戏】01-项目准备

步骤新建一个工程&#xff0c;选择俯视角游戏模板我命名工程如下&#xff1a;删除场景内的所有cube再删除Floor和Wall删除TopDownCharacter删除“NavgationMeshBoundVolume”删除“TamplateLabel”和“RecastNavMesh-Default”删除LightmassImportanceVolume、PostProcessVolum…...

登录系统账号检测--课后程序(Python程序开发案例教程-黑马程序员编著-第3章-课后作业)

实例8&#xff1a;登录系统账号检测 登录系统一般具有账号密码检测功能&#xff0c;即检测用户输入的账号密码是否正确。若用户输入的账号或密码不正确&#xff0c;提示 “用户名或密码错误”和“您还有*次机会”&#xff1b; 若用户输入的账号和密码正确&#xff0c;提示“登…...

CentOS8基础篇12:使用RPM管理telnet-server软件包

一、RPM包管理工具简介 RedHat软件包管理工具(RedHat Package Manager&#xff0c;RPM) RPM软件包工具常用于软件包的安装、查询、更新升级、校验、卸载以及生成.rpm格式的软件包等操作。 RPM软件包工具只能管理后缀是.rpm的软件包。软件包的命名格式&#xff1a; 软件名称…...

IT女神文章记录之自己

匆匆时光&#xff0c;一转眼自己已经从一个学生转变成一个职场工作者了刚出校园的时候&#xff0c;对职场充满了憧憬&#xff0c;觉得自己可以大展身手然后其实在我毕业后2年内&#xff0c;踏入码农阶段的时候&#xff0c;是一段非常压抑的工作&#xff0c;不知道谁能体会到那种…...

Compose 动画 (四) : AnimatedVisibility 各种入场和出场动画效果

AnimatedVisibility中的EnterTransition 和 ExitTransition &#xff0c;用来配置入场/出场时候的动画效果。 默认的入场效果是 fadeIn() expandVertically() 默认的出场效果是 fadeOut() shrinkVertically() 1. EnterTransition和ExitTransition支持的动画 enter的参数类…...

notepad++学习小技巧

不要小瞧了notepadd 这个可是我们的cv好帮手。。。 实战1背景&#xff0c;我找一个同事要表结构 结果他给我了一个xml。顿时一懵&#xff0c;我也不知道为啥好像是从前端扣下来的。 建表我只需要 columnName, displayName当作是comment&#xff0c; dataTypeNamecolumnType借鉴…...

Android supports-screens 屏幕适配

基本概念 supports-screens用于设置屏幕相关&#xff0c;处于Manifest的子标签中。 使您能够指定应用支持的屏幕尺寸&#xff0c;并为比应用支持的最大屏幕还大的屏幕启用屏幕兼容性模式。请务必始终在应用中使用此元素指定应用支持的屏幕尺寸。 注意&#xff1a;建议不要在屏…...

操作系统基础知识介绍之Mixed CriticalitySystems——混合关键系统

一、发展背景 在嵌入式场景中&#xff0c;虽然Linux已经得到了广泛应用&#xff0c;但并不能覆盖所有需求&#xff0c;例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统 的用武之地。有些应用场景既需要Linux的管理能力、丰富的生态又需要实时操作系统的高实时、…...

【数据结构初阶】详解链表OJ题

目录一.删除链表中等于给定值的节点二.合并有序链表并返回三.链表的回文结构1.反转单链表2.返回非空链表的中间节点四.输出链表倒数第K个节点五.基于给定值x分割单链表六.返回两个链表的第一个中间节点一.删除链表中等于给定值的节点 我们先来看第一题(题目链接): 因为我们需…...

Java基本数据类型变量自动提升、强制类型转换、String基本类型使用

文章目录基本数据类型变量自动提升特殊情况强制类型转换String基本类型使用基本数据类型变量自动提升 规则&#xff1a; 将取值范围小&#xff08;或容量小&#xff09;的类型自动提升为取值范围大&#xff08;或容量大&#xff09;的类型 。 byte、short、char-->int-->…...

Redis锁与幂等性不得不说的故事

前言&#xff1a; 相信很多小伙伴对缓存锁都不陌生&#xff0c;但是简单的缓存锁想要用好还是需要一些功力。本文总结了笔者多年使用缓存所的一些心得&#xff0c;欢迎交流探讨~ 幂等模型&#xff1a; 幂等场景一般由查重写入两步操作组成&#xff0c;两步操作组成一个最小完…...

Spark 应用调优

Spark 应用调优人数统计优化摇号次数分布优化Shuffle 常规优化数据分区合并加 Cache优化中签率的变化趋势中签率局部洞察优化倍率分析优化表信息 : apply : 申请者 : 事实表lucky : 中签者表 : 维度表两张表的 Schema ( batchNum&#xff0c;carNum ) : ( 摇号批次&#xff0c…...

synchronized 与 volatile 关键字

目录1.前言1.synchronized 关键字1. 互斥2.保证内存可见性3.可重入2. volatile 关键字1.保证内存可见性2.无法保证原子性3.synchronized 与 volatile 的区别1.前言 synchronized关键字和volatile是大家在Java多线程学习时接触的两个关键字&#xff0c;很多同学可能学习完就忘记…...

【0成本搭建个人博客】——Hexo+Node.js+Gitee Pages

目录 1、下载安装Git 2、下载安装Node.js 3、使用Hexo进行博客的搭建 4、更改博客样式 5、将博客上传到Gitee 6、更新博客 首先看一下Hexo的博客的效果。 1、下载安装Git Git 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本…...

【面试实战】认证授权流程及原理分析

认证授权流程及原理分析 1、认证 (Authentication) 和授权 (Authorization)的区别是什么?2、什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?3、Cookie 和 Session 有什么区别?如何使用Session进行身份验证?1、认证 (Authentication) 和授权 (Authorizatio…...

TPM命令解析之tpm2_startauthsession

参考网址链接&#xff1a;tpm2-tools/tpm2_startauthsession.1.md at master tpm2-software/tpm2-tools GitHub 命令名称 tpm2_startauthsession 功能 启动一个TPM会话。 命令形式 tpm2_startauthsession [OPTIONS] 描述 启动一个TPM会话。默认是启动一个试验&#xff08…...

第14章 局部波动率模型

这学期会时不时更新一下伊曼纽尔德曼&#xff08;Emanuel Derman&#xff09; 教授与迈克尔B.米勒&#xff08;Michael B. Miller&#xff09;的《The Volatility Smile》这本书&#xff0c;本意是协助导师课程需要&#xff0c;发在这里有意的朋友们可以学习一下&#xff0c;思…...

云原生周刊:开源“赢了”,但它可持续吗?

日前召开的 State of Open 会议上&#xff0c;开源“赢了”&#xff0c;但如果政府和企业不站出来确保生态系统在未来的弹性和可持续性&#xff0c;那么它仍然会失败。 OpenUK 首席执行官 Amanda Brock 在开幕式上表示&#xff0c;数字化和开源在过去 5 到 10 年的进步提升了工…...

读《企业IT架构转型之道》

本书还没读完&#xff0c;暂摘抄一些概念&#xff0c;因为自身做的新系统也在转型&#xff0c;从单体式到一体化一年来遇到很多问题有技术上的&#xff0c;也有团队协作的&#xff0c;过程是痛苦且复杂的&#xff0c;所以在刚翻阅前几十页时候&#xff0c;对于淘宝技术团队转型…...

Qt中的QTcpSocket、QWebSocket和QLocalSocket

同时实现了QTcpSocket、QWebSocket和QLocalSocket的简单通讯deamon&#xff0c;支持自动获取本机ip&#xff0c;多个客户端交互。在这个基础上你可以自己加错误检测、心跳发送、包封装解析和客户端自动重连等功能。 获取本机电脑ip&#xff1a; QString Widget::getIp() {QSt…...

枚举学习贴

1. 概述 1.1 是什么 枚举对应英文(enumeration, 简写 enum)枚举是一组常量的集合。可以这里理解&#xff1a;枚举属于一种特殊的类&#xff0c;里面只包含一组有限的特定的对象 1.2 枚举的二种实现方式 自定义类实现枚举使用 enum 关键字实现枚举 1.3 什么时候用 存在有限…...

【C++】30h速成C++从入门到精通(继承)

继承的概念及定义继承的概念继承&#xff08;inheritance&#xff09;机制是面向对象程序设计使代码可以复用的重要手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序…...

自己做本地网站/免费推广网站2024

今天是实训的第六天&#xff0c;早上UI设计师内容如下&#xff1a; 首先修人像的时候&#xff0c;我们先去把图像复制一层&#xff0c;不要在原图上修&#xff0c;因为修不好会破坏原图。污点修复画笔工具&#xff0c;这个工具主要用来移去标记和污点&#xff0c;用在人像上就是…...

深圳网站建设公司地址/2023免费推广入口

前两天研究了一下一个主题软件,发现的这个未公开的函数,并分析了一下,这个函数的功能是向user32.dll注册一个回调函数,这个函数在程序启动的时候会回掉,可以用于DLL注入,这个函数的原形指针定义如下在XP中,这个函数有两个参数,第一个参数是模块基址,第二个参数是回调函数地址,t…...

怎么学php网站开发/博客网站注册

优美胜于丑陋&#xff08;Python 以编写优美的代码为目标&#xff09; 明了胜于晦涩&#xff08;代码应当是简单明了和命名规范的&#xff09; 简洁胜于复杂&#xff08;代码应当是简洁的&#xff0c;不要有复杂的内部实现&#xff09; 复杂胜于凌乱&#xff08;如果复杂不可避…...

咸秧草做哪些网站/上海关键词排名优化公司

HTML语言&#xff08;Hypertext Markup Language&#xff0c;超文本标记语言&#xff09;是一种文本类、解释执行的标记语言&#xff0c;它是Internet上用于编写网页的主要语言。而HTML 5是下一代的HTML&#xff0c;它将会取代HTML 4.0和XHTML1.1&#xff0c;成为新一代的Web语…...

什么样的网站可以做站内站/什么是seo关键词

粉刷匠 bzoj1296 粉刷匠 (洛谷P4158) ◦有n条木板要被粉刷&#xff0c;每条木板分为m个格子&#xff0c;每个格子需要被刷成蓝色 或红色。 ◦每次粉刷可以在一条木板上给连续的一段格子刷上相同的颜色。每个格 子最多被刷一次。 ◦问若只能刷k次&#xff0c;最多正确粉刷多少格…...

重庆智慧团建网站登录平台/苏州seo关键词优化软件

标签&#xff1a; 转自&#xff1a;http://blog.csdn.net/lh9529/article/details/3946567 概念 Selenium 通过命令进行驱动。Selenium 可归纳为三种“风格”&#xff1a;动作、辅助和断言。每一个命令调用就是下表中的一行。 命令 目标 值 动作(Actions)命令一般用于操作应用…...