E1 基于Mysql的SQL应用
一、实验目的:
要求学生熟练掌握Mysql平台下SQL指令的应用,完成对基本表、视图创建、删除、数据插入、查询、更新和删除等数据管理工作。
二、实验要求:
1、基本硬件配置:英特尔Pentium III 以上,大于4G内存;
2、软件要求:Mysql;
3、时间:4小时;
4、撰写实验报告并按时提交。
三、实验内容:
Group 1: 用命令“Select”查询相关数据:
检索所有的职工姓名与年薪
检索所有职工的工作和相应的部门编号
检索工作是salesman的员工姓名;
检索员工津贴comm为null或comm小于300的员工姓名和津贴值;
检索所有职员的姓名和所在部门名称;
检索所有员工及其相关领导的姓名。
查询聘用日期早于他们的领导的雇员姓名。
检索在任何位置有字母“A”的员工姓名;
检索名字没有字母串‘%R’的员工姓名;
检索所有员工姓名的前三个字母(substr( ));
查询部门2所有的经理、部门3所有clerks以及所有其他所有工资超过2000元的员工姓名;
查询所有manager岗位而非3号部门的员工姓名;
检索所有员工的姓名、职位和工资,按职位降序排列;
检索所有员工的姓名、年收入(sal+comm) * 12(要求重命名),按年收入升序显示;
检索1号部门所有员工的人数和平均年薪;
检索每个部门的名称和人数。
检索每一种工作的最低工资和相应的工作。
查询各个部门经理职位(manager)的员工最低工资。
查询各部门员工人数、平均工资、平均参加工作的天数(timestampdiff(day, hiredate, now()));
检索最低工资在1500元以上的工作岗位;
检索至少有两个人的部门名称和人数;
检索与Alice的工作岗位相同的所有员工的姓名;
检索所有工资高于Alice的工资的员工姓名和所在部门;
检索所有工资高于整个公司平均工资的员工的姓名和工资;
检索所有工资高于1号部门所有职工工资水平的员工姓名和工资(>any或>all);
检索所有工资高于1号部门某职工工资水平的员工姓名和工资(>any或>all);
查询与3号部门某个员工工作岗位相同的员工姓名和工资;
检索所有部门名称和所有员工,包括那些没有任何员工的部门。
创建一个包括1号部门员工所有信息的视图。
Group 2请使用你的账户创建两个表,包括属性、数据类型、主键和外键。
ddept (deptno, dname loc)
deptno:integer;dname: varchar (20); loc: varchar (30);
primary key:deptno;
eemp (empno, ename,job,hiredate,mgr,salary,comm,deptno)
empno: integer;ename: varchar(20);job:varchar(20),hiredate:datetime, salary:double; comm:double;deptno: integer, not null;mgr:integer;
Primary key:empno;forign keys:deptno reference ddept(deptno),mgr reference EEmp(empno)。
Group 3: 完成以下操作:
通过alter table添加一个check约束(comm在1和3000之间);
向表eemp中插入至少5条员工记录;
从eemp中删除名为“SMITH”的记录;
创建部门研究信息视图,包括empno、ename、salary和comm。
将所有员工的工资提高20%。