数据库的单表查询
我就简单的上题+代码了
还有!博主我会在接下来的几个月坚持每天更新Java的算法,喜欢的人请多多关注!!!!!
. 单表查询
(1) 查看Employees列表所有数据(知识点:通配符:*)
Select from employees;
(2) 选择Employees列表中教育水平为’本科’的员工号及姓名(知识点:按单个条件查询数据)
Select employeesid,name from employees
Where education = ‘本科’;
(3) 选择Employees列表中教育为硕士的人的姓名、性别、工作年限并为查询的列命名中文名(知识点:定义列别名)
Select name 姓名,gender as 性别,workyear 工作年龄
From employees
Where eaducation = ‘硕士’;
(4) 计算Employees中的行数(知识点:函数应用:COUNT)
Select count()
From employees;
(5) 计算Employees中大专的平均工作年龄(知识点:函数应用:AVG)
Select avg(workyear)
From employees
Where eaducation = ‘大专’;
(6) 查询工作年龄最大的员工姓名以及工作年限(知识点:函数应用:MAX)
1)
Select name,workyear
From employees
Where workyear=(select max(workyear) from employees);
2)
Select name,workyear
From employees
Order by workyear desc
Limit 1;
(7) 查询薪酬在3000元以上的人数(知识点:比较运算)
Select count(*)
From salary
Where income > 3000;
(8) 多个判定条件查询:查询教育水平为硕士的女员工(知识点:多个条件查询数据)
a) 使用AND语句查询
Select *
From employees
Where education = ‘硕士’ and gerder = 0;
b) 使用结果集查询
//mysql 不支持集合的交,sql server 支持
改题了 改为硕士或女员工
Select *
From employees
Where education = ‘硕士’;
Union //或者
Select *
From employees
Where gerder = 0;
(9) 模糊查询(知识点:模糊查询)
a) 查询Employees表中姓林且两个字名字的员工编号以及姓名
Select employeeid,name
From employees
Where name like ‘林_’;
b) 查询Employee表中名字中有林字的员工的编号及姓名
Select employeeid,name
From employees
Where name like ‘%林%’;
(10) 范围查询(知识点:范围查询,包括范围内、范围外)
a) 查询Salary表中薪酬在2000到3000范围的员工编号以及收入
Select employees,income
From salary
Where income between 2000 and 3000;
b) 查询Salary表中支出不在100-200范围的员工编号以及支出
Select employees,outcome
From salary
Where outcome not between 100 and 200;
(11) 多表联合查询(知识点:联合多表查询)
a) 查找财务部的员工号以及员工姓名
1)
Select employeeid,name
From employees
Where departmentid in (select departmentid
from departments
Where departmentname = ‘财务部’);
2)
Select employeeid,name
From employees join departments
Where departmentname = ‘财务部’;
//表1 join 表2 :自然连接,即两个表相同的列进行等值连接
//表1 join 表2 on 表达式(= ,<,>,…只要在where语句中可用,此处即可用)
b) 查找财务部以及研发部以外的员工号以及员工姓名
Select employeeid,name
From employees join departments
Where departmentname not in (‘财务部’,’研发部’);
还没有评论,来说两句吧...