MySQL数据库实战

学生信息表student(学生编号sno,学生姓名sname,年龄sage,性别ssex) 
教师信息表teacher(教师编号tno,教师姓名tname) 
课程信息表course(课程编号cno,课程姓名cname,教师编号tno) 
成绩表sc(学生编号sno,课程编号cno,成绩score)

 问题:将学生信息表中“张三”这名同学的年龄改为20(2)
update student set sage=20 where sname='张三';
 问题:查询学生“张三”的所有成绩信息,包括课程名称和成绩(2)
select sname,cname,score from student,course,sc where student.sno=sc.sno and course.cno=sc.cno and sname='张三';
 问题:查询平均成绩大于60 分的同学学号(2)
select sno from sc group by sno having avg(score)>60;
 问题:查询没有学过“计算机基础”课程的同学姓名(2)
select sname from student where sno not in (select sno from sc where cno in (select cno from course where cname = "计算机基础"));
 问题:查询同名同姓学生名单,并统计同名人数(2)
select sname, count(*) from student group by sname having count(*)>1;
员工信息表employee(empno员工编号,ename员工姓名,jobno职位编号,mgr经理编号,hiredate入职时间,deptno部门编号) 
部门信息表dept(deptno部门编号,dname部门名称,loc部门所在地) 
职位信息表job(jobno职位编号,jobname职位名称,sal工资)

 问题:查询“1981123号”入职的员工(2)
select * from employee where hiredate='1981-12-03';
 问题:查询部门编号为“10”的部门雇员姓名和工资(2)
select ename,sal from employee, job where employee.jobno=job.jobno and employee.deptno=10;
 问题:查询职位是“职员”或“经理”的雇员姓名、工资(2)
select ename,sal from employee,job where employee.jobno=job.jobno and jobname in ('职员','经理');
 问题:查询部门号在“1030”之间的雇员姓名、部门号、工资、职位(2)
select ename,dept.deptno,sal,jobname from employee,dept,job where employee.deptno=dept.deptno and employee.jobno=job.jobno and dept.deptno between 10 and 30 ;
 问题:查询姓名以“J”开头的所有雇员姓名、工资、职位(2)
select ename,sal,jobname from employee,job where employee.jobno=job.jobno and ename like 'J%';
 问题:查询工资低于2000的雇员姓名、职位、工资,并按工资降序排列(2)
select ename,sal,jobname from employee,job where employee.jobno=job.jobno and sal<2000 order by sal desc;
 问题:查询职位是“职员”的所有员工姓名、工资、部门号、部门名称以及部门地址的信息
select ename,sal,dept.deptno,dname,loc from employee,dept,job where employee.deptno=dept.deptno and employee.jobno=job.jobno and jobname='职员';
 问题:查询工资大于等于2000的雇员姓名和他的经理的名字(2)
select e1.ename,e2.ename from employee e1,employee e2,job where e1.jobno=job.jobno and e1.mgr=e2.empno and sal >= 2000;
 问题:查询“财务部”和“人力资源部”两个部门各自的雇员人数(2)
select dname,count(*) from employee,dept where employee.deptno=dept.deptno and dname in ('财务部','人力资源部') group by dname;
 问题:查询每个部门工资在10003000之间的雇员人数(2)
select dname,count(*) from employee,dept,job where employee.deptno=dept.deptno and employee.jobno=job.jobno and sal between 1000 and 3000 group by dname;
员工信息表employee(empno员工编号,ename员工姓名,jobno职位编号,mgr经理编号,hiredate入职时间,deptno部门编号) 
部门信息表dept(deptno部门编号,dname部门名称,loc部门所在地) 
职位信息表job(jobno职位编号,jobname职位名称,sal工资)

 问题:创建员工信息表的命令(2)
create table employee(
	empno int,
    ename char(10),
    jobno int,
    mgr   int,
    hiredate date,
    deptno int
);
 问题:查询员工的详细资料,按姓名排序(2)
select * from employee order by ename;
 问题:查询所有职位为“职员”的员工姓名及其部门名称(2)
select ename,dname from employee,dept,job where employee.deptno=dept.deptno and employee.jobno=job.jobno and jobname='职员' ;
 问题:查询最低年薪(12个月工资)大于50000的职位信息(2)
select * from job where sal*12 > 50000 ;
 问题:查询出“张三”的领导的名称(2)
select ename from employee where empno = (select mgr from employee where ename = "张三");
 问题:查询公司所有员工的平均工资(月薪)(2)
select avg(sal) from employee,job where employee.jobno=job.no ;
 问题:查询每个部门的员工数量和平均工资(2)
select dname,count(),avg(sal) from emplpoee,dept,job where employee.jobno=job.jobno and employee.deptno=dept.deptno and group by dname ;
 问题:更新部门信息表,将“财务部”的所在地修改为“北京”(2)
update dept set loc='北京' where dname='财务部';
 问题:删除员工信息表中所有姓“张”的员工信息(2)
delete from employee where ename like '张%';
员工信息表employee(empno员工编号,ename员工姓名,jobno职位编号,mgr经理编号,hiredate入职时间,deptno部门编号) 
部门信息表dept(deptno部门编号,dname部门名称,loc部门所在地) 
职位信息表job(jobno职位编号,jobname职位名称,sal工资)

 问题:查询所有员工的姓名、工资、部门编号、部门名称、部门地址(2)
select ename,sal,dept.deptno,dname,loc from employee,dept,job where employee.deptno=dept.deptno and employee.jobno=job.jobno;
 问题:查询员工的入职年限(按一年365天计算,取整,四舍五入)(2)
select ename, hiredate, round(datediff(curdate(), hiredate) / 365) as years_of_service from employee;
 问题:查询薪水大于2000,且职位是“经理”的员工信息(2)
select * from employee where jobno in (select jobno from job where sal > 2000 and jobname = '经理');
 问题:查询年薪大于30000,且职位不是“经理”、部门号不是1040的员工信息,要求按照年薪进行倒序排列(2)
select * from employee where jobno in (select jobno from job where sal*12 > 30000 and jobname != '经理') and deptno not in (10,40) order by desc;
 问题:查询每个部门的平均工资,并按部门编号降序排列(2)
select dname,avg(sal) from dept,job,employee where dept.deptno=employee.deptno and job.jobno=employee.jobno group by dname order by dept.deptno desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值