教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

软件测试面试:破解Mysql查询题

更新时间:2020年03月08日19时21分 来源:传智播客 浏览次数:

Mysql查询题,不仅出境评率高,而且非常影响薪资谈判,所以地位非常重要。
1.几乎所有的软件测试题都会有Mysql查询练习,薪资高的大公司,由于应聘者多,所以甄选出更优秀的测试人员,往往会设置一两道特别难的Mysql查询题。

2. 如果我们其他题目都答的很好,但是Mysql查询难题答的不好,和可能在面试竞争中被PK下去,导致自己和心仪的公司失之交臂。就算是竞争对手不强侥幸获胜,也会让我们在后面薪资谈判上吃亏。

3. 反之,如果Mysql查询难题练习不仅正确,而且解题快,那么就会给用人单位留下技术强悍的好印象,从而立刻甩开其他竞争者。不仅薪资谈判上会占据有利地位,也有利于自己在公司未来的发展。

但尴尬的是,很多测试新手拿到题目之后却往往确不知道如何解题,更别说Mysql查询难题了。为让大家更好掌握数据库查询题技巧,特撰写技术文章给大家介绍。本文主要分为以下几个步骤:

1. 第一步:准备建表语句

2. 第二步:将建表语句输入到navicat中建立三个表

3. 第三步:了解查询题做题三步骤

4. 第四步:做题验证步骤

5. 第五步:总结

一. 第一步:准备建表语句

  1. 准备sql数据

-- 员工表 employees

-- 工资表 salary

-- 部门表 departments

create table departments (

deptid int(10) primary key,

deptname varchar(20) not null -- 部门名称

);

insert into departments values ('1001', '市场部');

insert into departments values ('1002', '测试部');

insert into departments values ('1003', '开发部');

create table employees (

empid int(10) primary key,

empname varchar(20) not null, -- 姓名

sex varchar(4) default null, -- 性别

deptid int(20) default null, -- 部门编号

jobs varchar(20) default null, -- 岗位

politicalstatus varchar(20) default null, -- 政治面貌

leader int(10) default null

);

insert into employees values ('1', '王昭君', '女', '1003', '开发', '群众', '9');

insert into employees values ('2', '诸葛亮', '男', '1003', '开发经理', '群众', null);

insert into employees values ('3', '张飞', '男', '1002', '测试', '团员', '4');

insert into employees values ('4', '白起', '男', '1002', '测试经理', '党员', null);

insert into employees values ('5', '大乔', '女', '1002', '测试', '党员', '4');

insert into employees values ('6', '孙尚香', '女', '1001', '市场', '党员', '12');

insert into employees values ('7', '百里玄策', '男', '1001', '市场', '团员', '12');

insert into employees values ('8', '小乔', '女', '1002', '测试', '群众', '4');

insert into employees values ('9', '百里守约', '男', '1003', '开发', '党员', '9');

insert into employees values ('10', '妲己', '女', '1003', '开发', '团员', '9');

insert into employees values ('11', '李白', '男', '1002', '测试', '团员', '4');

insert into employees values ('12', '孙膑', '男', '1001', '市场经理', '党员', null);

create table salary (

sid int(10) primary key,

empid int(10) not null,

salary int(10) not null -- 工资

);

insert into salary values ('1', '7', '2100');

insert into salary values ('2', '6', '2000');

insert into salary values ('3', '12', '5000');

insert into salary values ('4', '9', '1999');

insert into salary values ('5', '10', '1900');

insert into salary values ('6', '1', '3000');

insert into salary values ('7', '2', '5500');

insert into salary values ('8', '5', '2000');

insert into salary values ('9', '3', '1500');

insert into salary values ('10', '8', '4000');

insert into salary values ('11', '11', '2600');

insert into salary values ('12', '4', '5300');

二、将建表语句输入到navicat中建立三个表

1)新建数据库test

1583659655849_01 新建数据库test.png


2)将sql语句输入到查询编辑器中,运行

1583662054968_02 将sql语句输入到查询编辑器中.png


3)创建数据表并黏贴到excel中

1583662091127_03创建数据表并黏贴到excel中1.png

1583658859015_04 删除test数据库.png


三、了解查询题做题三步骤

1.看题目字段来源于哪些表,如果是多表,就用内连接(暂不用子查询,除非自己能明确能用子查询或题意要求用子查询)

 2.根据题意:灵活选择查询命令,多个查询命令排除先后顺序是

-- where过滤[的]

-- 分组(1)显性:每,各 2)隐性:过滤总数[如人数或其他聚合函数]

-- haiving(的)

-- 排序[最高的]

-- 取值[前几名]

-- 3. 根据题意,select取字段

四、做题验证步骤

问题1:列出市场部的所有女职工的姓名和政治面貌

1)做题步骤

1583659798224_04 创建数据表并黏贴到excel中.png


2)得到题目答案

select deptname,count(*) from departments as d inner join employees as e on d.deptid=e.deptid where politicalstatus='党员' group by deptname

2.显示工资最高的前3名职工的职工号和姓名

1)做题步骤

1583659839020_05 做题步骤.png


2)得到题目的答案

select e.empid,empname,salary from salary as s inner join employees as e on s.empid=e.empid order by salary desc limit 3


五、总结

1.看题目字段来源于哪些表,如果是多表,就用内连接。【推荐了解传智播客软件测试培训课程。】

 (暂不用子查询,除非自己能明确能用子查询或题意要求用子查询)

2.根据题意:灵活选择查询命令,多个查询命令排除先后顺序是

where过滤[的]

-- 分组(1)显性:每,各 2)隐性:过滤总数[如人数或其他聚合函数]

-- haiving(的)

-- 排序[最高的]

-- 取值[前几名]

3. 根据题意,select取字段

按照上面的做题步骤,赶紧来试试下面这几道题吧:

1. 列出市场部的所有女职工的姓名和政治面貌

2. 显示所有职工的姓名、部门名和工资数

3. 列出工资在1000-2000之间的所有职工姓名

猜你喜欢:

MySQL如何新建数据库?

0 分享到:
和我们在线交谈!