MySQL、Oracle 常用SQL:建表、建视图、数据增删改查、常用condition

目录

  • 1 MySQL、Oracle 建表语句整理
    • 1.1 MySQL 建表
    • 1.2 Oracle 建表
    • 1.3 补充
      • 1.3.1 主键:新增、删除
      • 1.3.2 字段:新增、修改、删除
  • 2 MySQL、Oracle 建视图
  • 3 数据:增删改查
    • 3.1 插入数据
      • 3.1.1 MySQL、Oracle 插入一条数据
      • 3.1.2 MySQL、Oracle 插入多条数据(语法不一样)
      • 3.1.3 MySQL、Oracle 将查询出来的数据插入到表中
    • 3.2 删除数据
      • 3.2.1 删除所有数据:TRUNCATE、DELETE
      • 3.2.2 删除符合条件的数据:DELETE
    • 3.3 修改数据:UPDATE
    • 3.4 数据查询:SELECT
  • 4 MySQL、Oracle 常用 condition 条件整理
  • 5 其他补充
    • 5.1 MySQL、Oracle 的数据排序:ORDER BY ... ASC|DESC
    • 5.2 MySQL、Oracle 查询数量的控制(分页): LIMIT、ROWNUM
    • 5.3 CASE WHEN:用于条件逻辑的判断

1 MySQL、Oracle 建表语句整理

删除表:DROP TABLE TABLE_NAME;
建表:CREATE TABLE TABLE_NAME();
主键:PRIMARY KEY
不为空: NOT NULL
默认值:DEFAULT DEFAULT_VALUE

MySQL、Oracle 通用样例:

-- 删除表:表必须存在,才能删除表
DROP TABLE TABLE_NAME;
-- 建表:表存在,则不允许重复创建
CREATE TABLE TABLE_NAME (  COLUMN1 DATATYPE PRIMARY KEY,  COLUMN2 DATATYPE NOT NULL,  COLUMN3 DATATYPE DEFAULT '默认值'
);
-- MySQL、Oracle 修改表名
ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME;
-- MySQL、Oracle 复制表
CREATE TABLE NEW_TABLE_NAME1 AS
SELECT * FROM TABLE_NAME;

注意:DATATYPE 是指 数据库的数据类型,需要修改成具体数据类型。

1.1 MySQL 建表

INT类型 自增:INT AUTO_INCREMENT
注释:COMMENT

参考案例:

-- 删除表:表必须存在,才能删除表
DROP TABLE TABLE_NAME;
-- 建表:表存在,则不允许重复创建
CREATE TABLE TABLE_NAME (COLUMN1 INT AUTO_INCREMENT PRIMARY KEY, COLUMN2 VARCHAR(200) NOT NULL DEFAULT '默认值' COMMENT '字段注释',COLUMN3 VARCHAR(200)
) COMMENT '表的注释';
-- 修改表注释
ALTER TABLE TABLE_NAME COMMENT 'XXXX表';
-- 字段添加注释
ALTER TABLE TABLE_NAME MODIFY COLUMN3 VARCHAR(200) COMMENT '注释内容';

1.2 Oracle 建表

INT类型:不支持自增,Oracle 没有自增的数据类型。

注释:不能直接在 建表语句 里面写。
(1)表注释:
COMMENT ON TABLE TABLE_NAME IS ‘表的注释’;
(2)字段注释:
COMMENT ON COLUMN TABLE_NAME.COLUMN1 IS ‘字段注释’;

参考案例:

DROP TABLE TABLE_NAME; -- 表必须存在,才能删除表
CREATE TABLE TABLE_NAME (  COLUMN1 NUMBER PRIMARY KEY,COLUMN2 VARCHAR2(200) DEFAULT '默认值' NOT NULL,COLUMN3 VARCHAR2(200)
);
COMMENT ON TABLE TABLE_NAME IS '表的注释';  
COMMENT ON COLUMN TABLE_NAME.COLUMN1 IS '字段注释';

注意事项:
建表语句的字段 同时设置:不为空 和 默认值,MySQL 和 Oracle 顺序不一样。
MySQL:不为空 + 默认值,如:NOT NULL DEFAULT ‘默认值’
Oracle:默认值 + 不为空,如:DEFAULT ‘默认值’ NOT NULL

1.3 补充

1.3.1 主键:新增、删除

MySQL、Oracle 的 添加主键、删除主键,参考如下:

-- 添加主键
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN1);
-- 删除主键
ALTER TABLE TABLE_NAME DROP PRIMARY KEY;

1.3.2 字段:新增、修改、删除

MySQL、Oracle 的 新增字段、修改字段数据类型、删除字段,参考如下:

-- 添加字段
ALTER TABLE TABLE_NAME ADD COLUMN1 DATATYPE;
-- 修改字段数据类型
ALTER TABLE TABLE_NAME MODIFY COLUMN1 NEW_DATATYPE;
-- 删除字段
ALTER TABLE TABLE_NAME DROP COLUMN COLUMN1;

MySQL 字段重命名

ALTER TABLE TABLE_NAME CHANGE COLUMN1 NEW_COLUMN1 DATATYPE;

Oracle 字段重命名

ALTER TABLE TABLE_NAME RENAME COLUMN COLUMN1 TO NEW_COLUMN1;

2 MySQL、Oracle 建视图

MySQL、Oracle 建视图

CREATE VIEW VIEW_NAME AS  
SELECT COLUMN1, COLUMN2 
FROM TABLE_NAME  
WHERE CONDITION;

MySQL、Oracle 创建视图、修改视图:

CREATE OR REPLACE VIEW VIEW_NAME AS  
SELECT COLUMN1, COLUMN2 
FROM TABLE_NAME  
WHERE CONDITION;

3 数据:增删改查

3.1 插入数据

3.1.1 MySQL、Oracle 插入一条数据

基本形式如下:

INSERT INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3, ...) 
VALUES (VALUE1, VALUE2, VALUE3, ...);

TABLE_NAME:插入数据的表名称
(COLUMN1, COLUMN2, …) :表的列名称,指定要插入的列
(value1, value2, …) :与列对应的值,它们的顺序和类型应该与列的定义相匹配

参考案例:

INSERT INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3) 
VALUES ('1','11','111');

注意:如果表中的某些列设置了默认值或者允许空值(NULL),那么在插入数据时可以省略这些列,会自动使用默认值或者空值填充这些列。

3.1.2 MySQL、Oracle 插入多条数据(语法不一样)

(1)MySQL 的插入多条数据,基本形式如下:

INSERT INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3, ...)  
VALUES  
(VALUE1A, VALUE2A, VALUE3A, ...),  
(VALUE1B, VALUE2B, VALUE3B, ...),  
...  
(VALUE1Z, VALUE2Z, VALUE3Z, ...);

参考案例:

INSERT INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3) 
VALUES 
('1','11','111'),
('2','22','222'),
('3','33','333');

(2)Oracle 的插入多条数据,基本形式如下:

INSERT ALL  
INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3, ...) VALUES (VALUE1A, VALUE2A, VALUE3A, ...)  
INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3, ...) VALUES (VALUE1B, VALUE2B, VALUE3B, ...)  
...  
INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3, ...) VALUES (VALUE1Z, VALUE2Z, VALUE3Z, ...)  
SELECT * FROM DUAL;

参考案例:

INSERT ALL  
INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3) VALUES ('1', '11', '111')  
INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3) VALUES ('2', '22', '222')  
INTO TABLE_NAME (COLUMN1, COLUMN2, COLUMN3) VALUES ('3', '33', '333')  
SELECT * FROM DUAL;

3.1.3 MySQL、Oracle 将查询出来的数据插入到表中

基本形式如下:

INSERT INTO TABLE2 (COLUMN1, COLUMN2, COLUMN3)  
SELECT COLUMN1, COLUMN2, COLUMN3  
FROM TABLE1  
WHERE CONDITION; 

参考案例:

INSERT INTO TABLE2 (COLUMN1, COLUMN2, COLUMN3)  
SELECT '4' AS COLUMN1, COLUMN2, COLUMN3  
FROM TABLE_NAME
WHERE COLUMN1='1';

注意:AS COLUMN1 可以不写,但是为了阅读性,最好还是加上。

当目标表TABLE2 和 来源表TABLE1 的结构一致 (相同的列、列的顺序和数据类型一致),插入语句可以不写列,基本形式如下:

INSERT INTO TABLE2
SELECT * 
FROM TABLE1  
WHERE CONDITION; 

3.2 删除数据

3.2.1 删除所有数据:TRUNCATE、DELETE

1、MySQL、Oracle 删除所有数据,可以使用 TRUNCATE

TRUNCATE 不允许带条件,直接删除表所有数据并释放空间。比 DELETE 操作更快。

TRUNCATE TABLE TABLE_NAME;

2、MySQL、Oracle 删除所有数据,使用 DELETE 操作

DELETE 可以带条件删除,是逐行删除的,比 TRUNCATE 操作慢。

DELETE FROM TABLE_NAME;

注意:数据量特别大时,全部删除,建议使用 TRUNCATE。

3.2.2 删除符合条件的数据:DELETE

MySQL、Oracle 的语法一致,如下:

DELETE FROM TABLE_NAME WHERE CONDITION;
DELETE FROM TABLE_NAME WHERE CONDITION1 AND CONDITION2;
DELETE FROM TABLE_NAME WHERE CONDITION1 OR CONDITION2;
-- 参考案例:
DELETE FROM TABLE_NAME WHERE COLUMN1='1';

3.3 修改数据:UPDATE

MySQL、Oracle 的语法一致,如下:

UPDATE TABLE_NAME SET COLUMN1 = VALUE1, COLUMN2 = VALUE2 WHERE CONDITION;
-- 参考案例:
UPDATE TABLE_NAME SET COLUMN2 = 'AAA' WHERE COLUMN1='2';

column1 和 column2 是要更新列的名称,value1 和 value2 是要设置的新值。

3.4 数据查询:SELECT

MySQL、Oracle 的语法一致,如下:

-- 查询表所有列的数据
SELECT * FROM TABLE_NAME WHERE CONDITION;
-- 参考案例:
SELECT * FROM TABLE_NAME WHERE COLUMN1='2';-- 查询具体列的数据
SELECT COLUMN1, COLUMN2, ... FROM TABLE_NAME WHERE CONDITION;
-- 参考案例:
SELECT COLUMN1,COLUMN2 FROM TABLE_NAME WHERE COLUMN1='2';

查询所有列,可以使用星号(*)作为通配符。

4 MySQL、Oracle 常用 condition 条件整理

1、等于(=):用于匹配等于指定值的记录。
2、不等于(<> 或 !=):用于匹配不等于指定值的记录。
3、大于(>)、小于(<)、大于等于(>=)、小于等于(<=):用于匹配指定范围内的值。

SELECT * FROM TABLE_NAME WHERE COLUMN1 = VALUE;
SELECT * FROM TABLE_NAME WHERE COLUMN1 != VALUE;
SELECT * FROM table_name WHERE COLUMN1 <> VALUE;
SELECT * FROM TABLE_NAME WHERE COLUMN1 > VALUE1 AND COLUMN2 < VALUE2;
-- 案例:
SELECT * FROM TABLE_NAME WHERE COLUMN1 = '1';
SELECT * FROM TABLE_NAME WHERE COLUMN1 != '1';
SELECT * FROM TABLE_NAME WHERE COLUMN1 <> '1';
SELECT * FROM TABLE_NAME WHERE COLUMN1 > '1' AND COLUMN2 < '999';

4、LIKE:用于模糊匹配字符串值。可以使用通配符来指定模式。

SELECT * FROM TABLE_NAME WHERE COLUMN1 LIKE 'PATTERN%'; -- 查询:以 PATTERN 开头的数据 
SELECT * FROM TABLE_NAME WHERE COLUMN1 LIKE '%PATTERN%'; -- 查询:包含 PATTERN 的数据
-- 案例:
SELECT * FROM TABLE_NAME WHERE COLUMN1 LIKE '2015%';  -- 以 2015开头的所有数据,如:20150101
SELECT * FROM TABLE_NAME WHERE COLUMN1 LIKE '%01-2%'; -- 包含 01-2 的数据,如:2015-01-20

5、IN:用于匹配指定的多个值之一。

SELECT * FROM TABLE_NAME WHERE COLUMN1 IN (VALUE1, VALUE2, ...);
-- 案例-返回:COLUMN1 等于 1、2、3 的数据 
SELECT * FROM TABLE_NAME WHERE COLUMN1 IN ('1','2','3');

6、BETWEEN:用于匹配指定范围内的值。

SELECT * FROM TABLE_NAME WHERE COLUMN1 BETWEEN VALUE1 AND VALUE2;
-- 案例-返回:COLUMN1 在 1 和 99 之间的数据(包含1、99)
SELECT * FROM TABLE_NAME WHERE COLUMN1 BETWEEN '1' AND '999';

7、IS NULL:用于匹配空值的数据。
8、IS NOT NULL:用于匹配不为空的数据。

SELECT * FROM TABLE_NAME WHERE COLUMN1 IS NULL;
SELECT * FROM TABLE_NAME WHERE COLUMN1 IS NOT NULL;

9、AND、OR:用于组合多个条件,使用AND运算符表示同时满足多个条件,使用OR运算符表示满足任一条件。

SELECT * FROM TABLE_NAME WHERE COLUMN1 = VALUE1 AND COLUMN2 = VALUE2;
SELECT * FROM TABLE_NAME WHERE COLUMN1 = VALUE1 OR COLUMN2 = VALUE2;

5 其他补充

5.1 MySQL、Oracle 的数据排序:ORDER BY … ASC|DESC

MySQL、Oracle 的 ORDER BY 子句可以指定一个或多个列进行排序,
并且可以指定升序(ASC)或降序(DESC)排序。

SELECT COLUMN1, COLUMN2, ...
FROM TABLE_NAME
ORDER BY COLUMN1, COLUMN2, ... ASC|DESC;
-- 默认升序
SELECT COLUMN1, COLUMN2, ...
FROM TABLE_NAME
ORDER BY COLUMN1;

注意:如果不指定排序方向(ASC或DESC),则默认情况下都是升序排序(ASC)

5.2 MySQL、Oracle 查询数量的控制(分页): LIMIT、ROWNUM

1、MySQL 的 LIMIT 子句用于限制查询结果返回的数据数量。

LIMIT 通常与 SELECT 语句一起使用,以指定从数据库表中检索的记录的数量。
(1)LIMIT count:只返回最多count条记录。返回结果集的前 count 条数据。
(2)LIMIT offset, count:从指定的offset位置开始返回最多count条记录。
例如,LIMIT 5, 10 将返回结果集中的第6条到第15条记录(索引从0开始)。

参考案例:

-- 返回:1条数据
SELECT * FROM TABLE_NAME LIMIT 1; 
-- 返回:前5条数据
SELECT * FROM TABLE_NAME LIMIT 5; 
-- 返回:从第2条开始的2条数据,即 (第2条、第3条)
SELECT * FROM TABLE_NAME LIMIT 1,2;
-- 想每页显示10条记录,并查询第3页的内容,可以使用以下查询:
SELECT * FROM TABLE_NAME LIMIT 20, 10;

2、Oracle 的 ROWNUM 用于限制返回行数的伪列。

ROWNUM 是在数据行被检索出来后才分配的,这意味着当行被检索出来时,ROWNUM 的值已经确定了。

通常使用 ROWNUM <= n 来限制返回的行数,而不是使用 ROWNUM > n 来筛选行。

因此,当你尝试使用类似 ROWNUM > 1 这样的条件时,由于在行被检索出来时 ROWNUM 的值已经确定,
所以不会有任何行可以满足 ROWNUM > 1 的条件。

-- 返回:第 1 条数据
SELECT * FROM TABLE_NAME WHERE ROWNUM = 1;
-- 返回:前 10 条数据
SELECT * FROM TABLE_NAME WHERE ROWNUM <=10;
-- 没有返回数据
SELECT * FROM TABLE_NAME WHERE ROWNUM > 1;
SELECT * FROM TABLE_NAME WHERE ROWNUM > 1 AND ROWNUM <4;

注意:使用类型 ROWNUM > 1 AND ROWNUM < 4 的查询,结果将不会返回任何行,
因为对于任何一行,ROWNUM的值要么大于1,要么小于5,但不能同时满足这两个条件。

将 ROWNUM 伪列放到子查询的列中,达到分页效果
参考案例:

SELECT * FROM (SELECT T.*, ROWNUM ROW_ID  FROM TABLE_NAME T  
)
WHERE ROW_ID > START_OFFSET AND ROW_ID <= END_OFFSET;-- 返回:第2条、第3条 数据
SELECT * FROM (  SELECT T.*, ROWNUM ROW_ID  FROM TABLE_NAME T  
)  
WHERE ROW_ID > 1 AND ROW_ID <= 3;
-- 想每页显示10条记录,并查询第3页的内容,可以使用以下查询:
SELECT * FROM (  SELECT T.*, ROWNUM ROW_ID  FROM TABLE_NAME T  
)  
WHERE ROW_ID > 20 AND ROW_ID <= 30;

5.3 CASE WHEN:用于条件逻辑的判断

MySQL、Oracle 的 CASE WHEN 语句基本结构,如下:

CASE  WHEN condition1 THEN result1  WHEN condition2 THEN result2  ...  ELSE result  
END;

当符合条件(condition) 则返回:结果(result)。

参考案例:

-- 查询列的逻辑判断处理
SELECT COLUMN1, COLUMN2,   
CASE   WHEN COLUMN1='1' THEN 'RESULT 1'  WHEN COLUMN1='2' THEN 'RESULT 2'  ELSE 'RESULT 3'  
END AS RESULT_COLUMN   
FROM TABLE_NAME;-- 条件的逻辑判断处理
SELECT COLUMN1, COLUMN2, COLUMN3
FROM TABLE_NAME  
WHERE COLUMN1 = '1'  
AND CASE  WHEN COLUMN3 > 10 THEN 1  WHEN COLUMN3 < 5 THEN 2  ELSE 3 
END = 1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BRC20通证的诞生与未来展望!如何导入bitget教程

BRC-20通证是什么&#xff1f; 嘿&#xff01;你知道BRC-20通证吗&#xff1f;这可是比特币区块链上的超级明星&#xff01;它们不依赖智能合约&#xff0c;而是把JSON代码刻在聪上&#xff0c;聪可是比特币的最小单位哦&#xff01;就像在比特币的乐高积木上盖房子&#xff0…

dubbo入门案例!!!

入门案例之前我们先介绍一下&#xff1a;zookeeper。 Zookeeper是Apacahe Hadoop的子项目&#xff0c;可以为分布式应用程序协调服务&#xff0c;适合作为Dubbo服务的注册中心&#xff0c;负责服务地址的注册与查找&#xff0c;相当于目录服务&#xff0c;服务提供者和消费者只…

自动驾驶轨迹规划之碰撞检测(一)

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.碰撞检测的意义 2.安全走廊 3 计算几何 4 AABB与OBB 1.碰撞检测的意义 对于自动驾驶汽车或机器人的路径规划&#xff0c;碰撞检测是其…

Python 数据类型转换:数据世界的形态转换术

在 Python 中&#xff0c;数据类型转换是一项关键的技能。数据类型的转换使得我们能够在不同类型的数据之间进行转换和操作&#xff0c;提升了我们对数据的处理能力。本文将深入探讨 Python 中的数据类型转换&#xff0c;包括常见的数据类型、转换方法和使用技巧。 常见的数据类…

HTTP API 认证技术详解(四):HMAC Authentication

目录 什么是 HMAC Authentication 认证 HMAC Authentication 原理 HMAC Authentication 认证的步骤 使用 Golang 实现 HMAC Authentication 认证 HMAC Authentication 认证的安全性 HMAC 认证的最佳实践 小结 HTTP API 认证技术主要用于验证客户端身份&#xff0c;并确保…

M1 MacOS下安卓虚拟化的最佳方案

categories: [VM] tags: MacOS VM 写在前面 一直想在桌面环境虚拟化安卓app, 但是看网上的推荐一直感觉不合胃口, 不是要花钱就是有广告, 想着找找开源的实现, 后来发现还是 Google 自家的产品用着舒服. 安装与配置 brew install android-studio然后随便开一个项目, 选默认…

通过Shell脚本登录MySQL,并执行MySQL命令

以下是一个通过Shell脚本登录MySQL 8并执行MySQL命令的示例&#xff1a; #!/bin/bash# MySQL服务器地址&#xff08;如果在同一台机器上&#xff0c;可以是localhost或127.0.0.1&#xff09; MYSQL_HOST"localhost"# MySQL服务器端口&#xff08;默认为3306&#xf…

阿赵UE学习笔记——10、Blender材质和绘制网格体

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   之前介绍了虚幻引擎的材质和材质实例。这次来介绍一个比较有趣的内置的Blender材质。   在用Unity的时候&#xff0c;我做过一个多通道混合地表贴图的效果&#xff0c;而要做过一个刷顶点颜色混合地表和水面的效果。…

qt绘制生成PDF文件

引言 之前做项目的时候&#xff0c;需要自己生成一个pdf文件&#xff0c;好久之前保存的草稿&#xff0c;今天就把它发表一下吧&#xff0c;留着自己以后有需要的时候在来查阅。 QString ReportMainWindow::createPdfFile() {QString strDirPath QDir::tempPath() "/T…

C#封装服务

C#封装服务 新建服务项目&#xff1b;重构 OnStart 和 OnStop using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using S…

STM32 -- 串口引脚整理

一、引脚分配列表 串口端口发送引脚 &#xff08;TX)接收引脚 (RX)USART1PA9PA10USART2PA2PA3USART3PB10PB11UART4PC10PC11UART5PC12PD2USART6PC6PC7 二、串口引脚的规律 STM32芯片上&#xff0c;引脚功能的布局安排&#xff0c;被设计得很有规律。 不同型号间&#x…

【Gradle】Maven-Publishing

使用Java开发完成一个模块或者一个基础框架需要提供给团队项目使用&#xff0c;这个时候有两种方式可提供&#xff0c;一是提供源码&#xff0c;二是提供编译构建好的jar包供使用&#xff0c;这个时候需要讲构建好的包发布到公司的私服&#xff08;公司maven仓库&#xff09;&a…

Python如何操作RabbitMQ实现fanout发布订阅模式?有录播直播私教课视频教程

fanout发布订阅模式 基本用法 生产者 import json import rabbitmq# 建立连接 credentials rabbitmq.PlainCredentials(zhangdapeng,zhangdapeng520, ) # mq用户名和密码 connection_target rabbitmq.ConnectionParameters(host127.0.0.1,port5672,virtual_host/,credent…

HCIP BGP(一)

任务&#xff1a; 1.R1上有两个环回&#xff0c;分别为192.168.1.0/24&192.168.2.0/24&#xff0c;只允许学到汇总&1.0 2.R7上有两个环回172.16.1.0/24&172.16.2.0/24&#xff0c;要求全部宣告&#xff0c;但是只有2.0可以通过 3.全网可达 拓扑图如下&#xff…

C语言经典算法之顺序查找算法

目录 前言 A.建议 B.简介 一 代码实现 二 算法时空复杂度 A.时间复杂度&#xff1a; B.空间复杂度&#xff1a; 三 优点和缺点 A.优点&#xff1a; B.缺点&#xff1a; 四 现实中的应用 前言 A.建议 1.学习算法最重要的是理解算法的每一步&#xff0c;而不是记住算…

常见的反爬虫风控 | 验证码风控

一.前言 在当今信息技术迅速发展的背景下&#xff0c;网站和在线服务面临着日益增长的自动化访问威胁&#xff0c;这些大多来自于各类爬虫程序。这种大量的自动化访问不仅对网站的正常运行构成压力&#xff0c;还可能导致敏感数据的泄露&#xff0c;甚至被用于不正当竞争和恶意…

多表关联查询

基本信息&#xff1a; 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#…

PHP反序列化漏洞-魔术方法绕过

一、__wakeup()魔法函数绕过: 在PHP中,__wakeup()是一个魔术方法,用于在反序列化对象时自动调用。当反序列化字符串中的对象属性个数大于实际属性个数时,可以利用这个漏洞进行绕过。 触发条件: PHP版本为5.6.25或早期版本,或者PHP7版本小于7.0.10。反序列化字符串中的对…

C++大学教程(第九版)5.15修改GradeBook

目录 题目 代码 运行命令&#xff08;在控制台输入&#xff09; 运行截图 题目 &#xff08;修改GradeBook&#xff09;修改图5.9~图5.11所示的 GradeBook 程序&#xff0c;使它计算一组成绩的平均成绩。 成绩A为4分&#xff0c;成绩B为3分&#xff0c;依次类推。 A:4 B:3…

transbigdata 笔记: 轨迹密集化/稀疏化 轨迹平滑

1 密集化 transbigdata.traj_densify(data, col[Vehicleid, Time, Lng, Lat], timegap15) 轨迹致密化&#xff0c;保证至多每隔timegap秒都有一个轨迹点 这边插补使用的是pandas的interpolate&#xff0c;method设置的是index 1.1 举例 transbigdata 笔记&#xff1a; 官方…