JAVA培训之单表查询练习

1.安装mysql图形化工具—SQLyog

我们之前对mysql数据库的操作都是在dos窗口下进行的,下面给大家介绍一个图形化工具,使用这个工具可以来操作数据库,点击此处下载 JAVA培训之单表查询练习SQLyog工具,解压之后,双击如图1-1所示的应用程序:
JAVA培训之单表查询练习
图1-1 SQLyog目录
双击图1-1中的应用程序后,如果需要输入用户名和注册码,请输入以下信息:

  • 用户名:Any
  • 注册码:26f359fc-e3f6-4727-8af1-72a1a4a0819d

如果不需要输入注册码,那么会出现图1-2所示界面:
JAVA培训之单表查询练习
图1-2 建立与数据库的连接
点击图1-2中的【连接】之后会弹出一个对话框,点击【OK】即可进入图1-3所示界面:
JAVA培训之单表查询练习

图1-3 SQLyog界面
双击要打开的数据库,例如user数据库,选择【table】,找到需要打开的表,如图1-4所示:
JAVA培训之单表查询练习
图1-4 查看emp表

2.单表查询练习

下面我们会使用SQLyog工具来操作数据库,首先来看第一道练习题:
(1) 查询出部门编号为30的所有员工,对应的sql语句:select * from emp where deptno=30,查询结果如图1-5所示:
JAVA培训之单表查询练习
图1-5 查询练习1
(2)查询所有销售员的姓名、编号和部门编号,对应的sql语句:select ename,empno,deptno from emp where job=’销售员’,查询结果如图1-6所示:
JAVA培训之单表查询练习
图1-6 查询练习2
(3) 查询奖金高于工资的员工,对应的sql语句是:select * from emp where comm>sal,查询结果如图1-7所示:
JAVA培训之单表查询练习
图1-7 查询结果3
(4) 查询奖金高于工资60%的员工,对应sql语句是:select * from emp where comm>sal*0.6,查询结果如图1-8所示:
JAVA培训之单表查询练习
图1-8 查询结果4
(5)查询部门编号为10的所有经理,和部门编号为20的所有销售员的详细资料:

  • 分析:这道题的难点在于查询的两个部分之间是与的关系还是或的关系,题目表明将部门为10的所有经理,部门为20的所有销售员都查询出来,那么他们之间的关系必然是或的关系。

对应的sql语句是:select * from emp where deptno=10 and job=’经理’ or deptno=20 and job=’销售员’,查询结果如图1-9所示:
JAVA培训之单表查询练习
图1-9 查询结果5
(6) 查询部门编号为10的所有经理,部门编号为20的所有销售员,还有即不是经理又不是销售员但其工资大或等于20000的所有员工详细资料:

  • 分析:这条题的逻辑与第五题的逻辑是一样的,都是或的关系;

对应的sql语句是:select * from emp where deptno=10 and job=’经理’ or deptno=20 and job=’销售员’ or job not in(‘经理’,’销售员’) and sal>=20000,查询结果如图1-10所示:
JAVA培训之单表查询练习
图1-10 查询练习6
(7)查询无奖金或奖金低于1000的员工,对应sql语句是:select * from emp where comm is null or comm<1000,查询结果如图1-11所示:
JAVA培训之单表查询练习
图1-11 查询练习7
(8)查询名字由三个字组成的员工,对应sql语句是:select * from emp where ename like ‘___’,查询结果如图1-12所示:
JAVA培训之单表查询练习
图1-12 查询练习8
(9) 查询2000年入职的员工,对应sql语句:select * from emp where hiredate like ‘2000-%’,其中“%”匹配任意字符,查询结果如图1-13所示:
JAVA培训之单表查询练习
图1-13 查询练习9
(10)查询所有员工详细信息,用编号升序排序,对应的sql语句为:select * from emp order by empno asc,查询结果如图1-14所示:
JAVA培训之单表查询练习
图1-14 查询练习10
(11)查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序,对应的sql语句是:select * from emp order by sal desc,hiredate asc,查询结果如图1-15所示:
JAVA培训之单表查询练习
图1-15 查询练习11
(12)查询每个部门的平均工资,以后如果看到“每个”字眼时,就要想到分组查询,这道题就是一个分组查询,根据部门分组,因此对应的sql语句是:select deptno,avg(sal) from emp group by deptno,查询结果如图1-16所示:
JAVA培训之单表查询练习
图1-16 查询练习12
(13)查询每个部门的雇员数量,这个题也是分组查询,按照部门分组,对应的sql语句是:select deptno,count(*) from emp group by deptno,查询结果如图1-17所示:
JAVA培训之单表查询练习
图1-18 查询练习13
(14)查询每种工作的最高工资、最低工资、人数,该题也是分组查询,按照工作分组,对应的sql语句是:select job,max(sal),min(sal),count(*) from emp group by job,查询结果如图1-19所示:
JAVA培训之单表查询练习
图1-19 查询练习14

java
java学院

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253220.html

(0)
上一篇 2022年5月7日
下一篇 2022年5月7日

相关推荐

发表回复

登录后才能评论