更新时间:2020年03月08日19时21分 来源:传智播客 浏览次数:
Mysql查询题,不仅出境评率高,而且非常影响薪资谈判,所以地位非常重要。
1.几乎所有的软件测试题都会有Mysql查询练习,薪资高的大公司,由于应聘者多,所以甄选出更优秀的测试人员,往往会设置一两道特别难的Mysql查询题。
2. 如果我们其他题目都答的很好,但是Mysql查询难题答的不好,和可能在面试竞争中被PK下去,导致自己和心仪的公司失之交臂。就算是竞争对手不强侥幸获胜,也会让我们在后面薪资谈判上吃亏。
3. 反之,如果Mysql查询难题练习不仅正确,而且解题快,那么就会给用人单位留下技术强悍的好印象,从而立刻甩开其他竞争者。不仅薪资谈判上会占据有利地位,也有利于自己在公司未来的发展。
但尴尬的是,很多测试新手拿到题目之后却往往确不知道如何解题,更别说Mysql查询难题了。为让大家更好掌握数据库查询题技巧,特撰写技术文章给大家介绍。本文主要分为以下几个步骤:
1. 第一步:准备建表语句
2. 第二步:将建表语句输入到navicat中建立三个表
3. 第三步:了解查询题做题三步骤
4. 第四步:做题验证步骤
5. 第五步:总结
一. 第一步:准备建表语句
准备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
2)将sql语句输入到查询编辑器中,运行
3)创建数据表并黏贴到excel中
三、了解查询题做题三步骤
1.看题目字段来源于哪些表,如果是多表,就用内连接(暂不用子查询,除非自己能明确能用子查询或题意要求用子查询)
2.根据题意:灵活选择查询命令,多个查询命令排除先后顺序是
-- where过滤[的]
-- 分组(1)显性:每,各 2)隐性:过滤总数[如人数或其他聚合函数]
-- haiving(的)
-- 排序[最高的]
-- 取值[前几名]
-- 3. 根据题意,select取字段
四、做题验证步骤
问题1:列出市场部的所有女职工的姓名和政治面貌
1)做题步骤
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)做题步骤
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之间的所有职工姓名
猜你喜欢: