火爆全网,软件测试数据库常用 SQL 语句总结,你要的我都有......
创始人
2025-05-31 13:06:51

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

直接上干货

数据定义语言(DDL)
主要负责数据库、数据表、视图、键、索引等结构化的操作
常用的语句有:CREATE DATABASE、CREATE TABLE、ALTER TABLE等
字段的常用约束有:PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、AUTO_INCREMENT、DEFAULT
常用的数据定义语言示例如下

-- 【1、数据库操作】
-- 创建数据库
-- 字符集:字符串存储方式;DEFAULT CHARACTER SET定义字符集,mb4就是most bytes 4的意思,兼容Emoji
-- 校对规则:字符串比较方式;COLLATE定义校对规则,general表示遗留的校对规则,不可扩展,但效率高,ci(case insensitive)表示大小写不敏感
-- 字符集和校对规则都有4个级别的设置:服务器级、数据库级、数据表级、字段级CREATE DATABASE IF NOT EXISTS db_demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 删除数据库
DROP DATABASE db_demo;-- 切换当前数据库
USE db_demo;-- 【2、数据表操作】可以对数据表中的字段加上相应约束,常用的约束有:PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、AUTO_INCREMENT、DEFAULT-- 示例操作产品表
DROP TABLE IF EXISTS tb_product;
CREATE TABLE tb_product
(id INT  NOT NULL AUTO_INCREMENT,  	-- 设置id列为非空、自增product_code CHAR(200) NOT NULL UNIQUE DEFAULT 'Normal',  -- 设置编码列为非空、唯一、默认值为Normalproduct_name VARCHAR(50) NOT NULL,quantity INT(3) DEFAULT 0,price DECIMAL(6,2),address VARCHAR(50),remark VARCHAR(500),PRIMARY KEY (id),		-- 指定主键列INDEX idx_product_name (product_name)		-- 定义索引
);-- 示例操作产品表
DROP TABLE IF EXISTS tb_order;
CREATE TABLE tb_order
(id INT(10)  NOT NULL AUTO_INCREMENT,  	-- 设置id列为非空、自增order_price DECIMAL(6,2),city VARCHAR(50),remark VARCHAR(500),product_id INT(10),PRIMARY KEY (id),		-- 指定主键列FOREIGN KEY (product_id) REFERENCES tb_product(id)  -- 指定外键id
);-- 修改数据表
ALTER TABLE tb_product
ADD COLUMN description VARCHAR(2000), 	-- 添加列
MODIFY COLUMN product_name VARCHAR(200) NULL,		-- 修改列
DROP COLUMN remark,  -- 删除列
CHANGE address city VARCHAR(20),   -- 重命名字段
ADD INDEX idx_product_code (product_code),	-- 添加索引
DROP INDEX idx_product_name;		-- 移除索引-- 删除数据表
DROP TABLE tb_product;
DROP TABLE tb_order;-- 【3、视图操作】广泛应用于报表操作
-- 创建视图
CREATE VIEW v_product AS
SELECT tb_product.id,tb_product.product_code,tb_product.product_name,tb_order.id as order_id,tb_order.order_price
FROM tb_product LEFT JOIN tb_order ON tb_order.product_id = tb_product.id-- 修改视图
ALTER VIEW v_product AS
SELECT tb_product.id,tb_product.product_code,tb_product.product_name,tb_order.order_price
FROM tb_product LEFT JOIN tb_order ON tb_order.product_id = tb_product.id-- 删除视图
DROP VIEW v_product

数据操作语言(DML)

主要负责数据表数据的新增、修改、删除操作
常用的语句有:INSERT INTO、UPDATE、DELETE等
注意:修改和删除操作时注意添加WHERE条件
常用的数据操作语言示例如下

-- 新增数据,字段顺序、数据顺序一定要一致;非空列一定要有;类型也要匹配
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES('tv','电视机',150,43.27,'长沙','这是一台计算机。');
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES('iPhone','苹果手机',100,8999,'北京','这是一台苹果手机。');
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES('xiaomi','小米手机',13,2999,'上海','这是一台小米手机。');
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES('oppo','欧泊手机',70,2499,'广州','这是一台欧泊手机。');
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES('vivo','维沃手机',98,2199,'深圳','这是一台维沃手机。');
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES('tt','锤子手机',NULL,NULL,'上海','这是一台锤子手机。');INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(7999,'天津','一次愉快的购买。',1);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(1555,'长沙','一次愉快的购买。',2);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(2800,'重庆','一次不愉快的购买。',4);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(1200,'杭州','重复购买。',4);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(1200,'武汉','下次再买。',5);select * from tb_product;
select * 
-- 修改数据
UPDATE tb_product SET description = CONCAT(description,'特价甩卖...');
UPDATE tb_product SET description = CONCAT(description,'低到1块...') WHERE product_code='xiaomi';-- 删除数据
DELETE FROM tb_product WHERE product_code='xiaomi';-- 删除全表数据
DELETE FROM tb_order;
DELETE FROM tb_product;
TRUNCATE TABLE tb_product;

数据查询语言(DQL)

主要负责数据表数据的查询操作
常用的语句有:SELECT,查询操作在SQL中使用非常多,还有一些复杂的如排序、多表查询、分组等处理
常用的数据查询语言示例如下

-- 【1、查询系统参数】
-- 端口、目录、数据存放目录、服务器id
SELECT @@port,@@basedir,@@datadir,@@server_id;-- 【2、查询常用函数】
SELECT NOW(),USER(),CONCAT('同志们,','大家好!','欢迎光临。') AS welcome;-- 【3、查询条件】
-- 查询所有
SELECT * FROM tb_product;
-- 按条件查询,可以使用运算符进行操作
SELECT * FROM tb_product WHERE product_code ='iPhone';
SELECT * FROM tb_product WHERE product_code like '%i%';
SELECT * FROM tb_product WHERE quantity BETWEEN 50 AND 100;
SELECT * FROM tb_product WHERE quantity IS NOT NULL;
SELECT * FROM tb_product WHERE product_code in ('tt','xiaomi');-- 【4、排序】
SELECT * FROM tb_product ORDER BY price DESC;
SELECT * FROM tb_product ORDER BY product_code DESC;-- 【5、多表联合查询】
-- 左连接
SELECT * FROM tb_product LEFT JOIN tb_order ON tb_order.product_id = tb_product.id;
-- 右连接
SELECT * FROM tb_product RIGHT JOIN tb_order ON tb_order.product_id = tb_product.id;
-- 完全连接
SELECT * FROM tb_product JOIN tb_order ON tb_order.product_id = tb_product.id;
-- 笛卡尔积连接
SELECT * FROM tb_product,tb_order;-- 【6、分组】
SELECT tb_order.product_id,tb_product.product_code,COUNT(1),SUM(tb_order.order_price),AVG(tb_order.order_price)
FROM tb_order LEFT JOIN tb_product on tb_product.id = tb_order.product_id
GROUP BY tb_order.product_id,tb_product.product_code
HAVING COUNT(1)>1-- 【7、分页】
SELECT * FROM tb_product;
SELECT * FROM tb_product LIMIT 2,2;  -- 起始、条数
SELECT * FROM tb_product ORDER BY product_code LIMIT 3 OFFSET 2 ;  -- 条数、偏移量-- 【8、UNION】
-- UNION,会去重
SELECT city FROM tb_product
UNION
SELECT city FROM tb_order;
-- UNION ALL,不会去重
SELECT city FROM tb_product
UNION ALL
SELECT city FROM tb_order;

数据控制语言(DCL)

主要负责用户创建、授权、权限回收操作,一般主要由DBA来操作
常用的语句有:CREATE USER、GRANT、REVOKE等
常用的数据控制语言示例如下

-- 创建用户,localhost:只允许从本地ip访问;%:允许从所有的ip访问
CREATE USER 'a1'@'%' IDENTIFIED BY 'Password^';
-- 用户授权,权限可以包括、insert、update、delete、references、create、alter、drop、create view、execute等,多个用逗号分隔
-- 尾部添加WITH GRANT OPTION,可让被授权者也能将这个权限授予其他人
GRANT ALL PRIVILEGES ON  db_demo.* TO 'a1'@'%' IDENTIFIED BY 'Password^';  -- 所有权限
-- GRANT SELECT ON  db_demo.* TO 'a1'@'%' IDENTIFIED BY 'Password^';   -- 只有查询权限
-- 回收权限
REVOKE INSERT ON db_demo.* from 'a1'@'%';  -- 回收新增权限
-- 删除用户
DROP USER 'a1'@'%';-- 刷新权限,配置完后都要刷新
FLUSH PRIVILEGES;-- 查询表中数据
select * from mysql.user-- 查看用户权限
SHOW GRANTS FOR 'a1'@'%'

事务控制语言(TCL)

主要负责用多条语句形成原子性的事务操作
常用的语句有:SET AUTOCOMMIT、ROLLBACK、COMMIT、SAVEPOINT等
常用的事务控制语言示例如下

-- 【方式1】
-- 开启显式事务
SET AUTOCOMMIT = 0;
-- 查看数据
SELECT * FROM tb_product;
-- 插入一条数据
INSERT INTO  tb_product(product_code,product_name,quantity,price,description) 
VALUES('c10','n10',50,1523.58,'d10'); 
-- DDL,会默认提交事务
-- create table tb_demo
-- (
-- 	id INT,
-- 	name VARCHAR(20)
-- );
-- 查看数据
SELECT * FROM tb_product; 
-- 回滚显示事务
ROLLBACK;
-- 提交事务
COMMIT;
-- 查看数据
SELECT * FROM tb_product;  
-- 关闭显式事务
SET AUTOCOMMIT = 1;-- 【方式2】
-- 开启事务
START TRANSACTION;
-- 查看数据
SELECT * FROM tb_product; 
-- 插入一条数据
INSERT INTO  tb_product(product_code,product_name,quantity,price,description) 
VALUES('z1','z1',40,1223.58,'z1'); 
-- 查看数据
SELECT * FROM tb_product; 
-- 设置回滚点
SAVEPOINT my_point;
-- 插入另一条数据
INSERT INTO  tb_product(product_code,product_name,quantity,price,description) 
VALUES('z9','z9',40,1223.58,'z9');
-- 查看数据
SELECT * FROM tb_product; 
-- 回滚全部
-- ROLLBACK;
-- 回滚到回滚点
ROLLBACK TO my_point;
-- 查看数据
SELECT * FROM tb_product; 
-- 提交结束事务
COMMIT;

指针控制语言(CCL)

主要负责用于数据遍历的操作
常用的语句有:DECLARE…CURSOR…、OPEN、FETCH…INTO…、CLOSE等
常用的指针控制语言示例如下

-- 创建存储过程
-- 业务逻辑:取给定最小价格以上的产品总数
CREATE PROCEDURE my_proc(IN min_price DECIMAL(7,2),OUT quantity_total INT)
BEGIN-- 设置游标变量DECLARE _id INT;DECLARE _product_code VARCHAR(100);DECLARE _product_name VARCHAR(200);DECLARE _quantity INT;DECLARE _price DECIMAL(7,2);DECLARE _description VARCHAR(2000);-- 设置汇总数量DECLARE total INT DEFAULT 0;-- 标记默认为0DECLARE done INT DEFAULT 0; -- 【1、定义游标】DECLARE cursor_product CURSOR FOR SELECT id,product_code,product_name,quantity,price,description FROM tb_product WHERE price > min_price;-- 	#游标取完后的标志变量设置为1DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1 ;-- 【2、打开游标】OPEN cursor_product;-- 【3、读取游标】取下一行FETCH cursor_product INTO _id,_product_code,_product_name,_quantity,_price,_description;-- 循环WHILE done !=1 DOSET total = total + _quantity;-- 【3、读取游标】取下一行FETCH cursor_product INTO _id,_product_code,_product_name,_quantity,_price,_description;END WHILE;-- 输出汇总-- SELECT total;SET quantity_total = total;-- 【4、关闭游标】CLOSE cursor_product;
END;-- 调用
CALL my_proc(35,@total);
select @total;

SQL语言标准中,定义了很多的语句、关键字、函数等

在日常的测试工作中,并不会都使用,掌握常用的基础语句即可,慢慢再扩展一些组合查询等复杂查询语句

在上述的6种SQL语句分类中,一般只要熟悉并控制数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不要活在别人的嘴里,不要活在别人的眼里,而是把命运把握在自己的手里。做有用的事,说正能量的话,想美好的事,睡安稳的觉。把时间发生在进步上,而不是抱怨上。

在漆黑围绕的时候,你要用信念的明灯照亮前程;在荆棘铺路的时候,你要用理想的利刃披荆斩棘;在风雨狂作的时候,你要用坚强的大伞撑起晴空。

我们最终都要远行,最终都要跟稚嫩的自己告别。也许路途有点艰辛,有点孤独,但熬过了痛苦,我们才能得以成长。

相关内容

热门资讯

EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
工信部、中汽协紧急发声!汽车“... 文/刘育英新一轮汽车价格战再起。近日,工信部、中汽协纷纷发声表示反对。工业和信息化部表示,将加大对汽...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
募资39亿,全亏光了,账上不到... 关于天然气,用户的感觉是价格一直在上涨,但很奇怪,不管怎么涨,天然气企业仍然亏,还亏得一塌糊涂。这是...
资阳房产评估公司 这是(tel-15828298733)整理的信息,希望能帮助到大家 在当今社会,随着经济的发展和城...
华桥汇利(中国)投资基金管理有... 今年第一季度,美国企业利润出现大幅下降,且面临着来自关税上升的持续压力,这一局面可能会在今年进一步加...
ESG 报告合规与鉴证:全球政... 在当下全球经济格局里,ESG(环境、社会和公司治理)已然成为衡量企业可持续发展能力的关键指标。随着全...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...
与锤巨子生物的大嘴博士持股同一... 医美龙头巨子生物“成分争议”风波持续发酵。日前,美妆博主大嘴博士(香港大学化学博士郝宇)发文,质疑巨...
Linux之进程间通信 目录 进程间通信介绍 一、为什么要进行进程间通信? 二、进程间通信目的 三、进程间通信...
从“造城”到“留客”,文旅局长... 你有没有刷到最近各地文旅局局长全体“尬舞”的视频?领导们放下架子开始跳魔性舞蹈,这场舞的背后啊,可不...
Hazel引擎学习(十一) 我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看...
孩子的教育金,分享3个「有效」... 点击 “简七读财” ,发送消息“ 理财小工具 ”免费领取“40个赚钱工具资源包”晚上好,我是简七编...
iZotope RX 10(专... iZotope RX 10是一款专业的音频修复和增强软件,具有音频修复工具、音频增强工...
我的docker随笔40:cl... 本文介绍 clickhouse 数据库的容器化部署。 起因 某项目需生产环境数据库,因...
透视一周牛熊股:最牛股路桥信息... 过去一周(5月26日—5月30日)A股三大指数集体下跌。截至5月30日收盘,上证指数报3347.49...
基于matlab创建地面固定雷... 一、前言此示例演示如何创建和显示包含地面固定雷达、转弯飞机、等速飞机和移动地面车辆的多平台方案。二、...
暗夜发光,独自闪耀,盘点网页暗... 众所周知,网页的暗黑模式可以减少屏幕反射和蓝光辐射,减少眼睛的疲劳感&#...
C语言-程序环境和预处理(2) 文章目录预处理详解1.预定义符号2.#define2.1#define定义的标识符2.2#defin...
MySQL数据库知识整理 MySQL数据库知识整理 MySQL事务详解 事务四大特性ACID 原子性(Atomi...
Docker基础篇——最全讲解 文章目录一、CentOS安装docker二、启动帮助类命令三、镜像命令1.名词概念2.常用命令2.1...
五问“恒大论”,比亚迪回应车圈... “车圈恒大”引发的舆论风暴还在进一步发酵。近日,比亚迪集团品牌及公关处总经理李云飞在微博发文,引用多...
javafx实现聚光灯效果,圆... 系列文章专栏:javafx图形绘制、桌面录屏录音源码合集 目录 一、实现的效果 二、实现思路
300左右哪款蓝牙耳机适合学生... 近年来,随着蓝牙耳机的发展,不管是音质、外观、佩戴还是降噪都有了很大的提...
深蓝汽车5月全系交付25521... 新京报贝壳财经讯 6月1日,深蓝汽车发布的数据显示,今年5月,深蓝汽车全系交付25521辆,同比增长...
react常用hook(一) Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 sta...
docker替换源docker... docker替换源 先看下docker下原有的信息docker info 主要的代码块 Docke...
王胜升任申万宏源研究所总经理 ... 21世纪经济报道记者 孙永乐 上海报道21世纪经济报道记者获悉,近期,上海申银万国证券研究所有限公司...
下周A股多空激辩!AI+应用又... 数据是个宝 数据宝 投资少烦恼 本周(5月26日至30日),A股市场成交规模连续维持在1万亿元以上。...