前端学习之数据管理作业

一、emp数据库

1、插入数据

插入数据

1.向部门表新增一个部门,部门编号为50,部门名称为HR,工作地点为SY。

2.向部门表新增一个部门,部门编号为60,部门名称为MARKET。

3.向员工表中新增一个员工,员工编号为8888,姓名为BOB,岗位为CLERK,经理为号7788,入职日期为1985-03-03,薪资3000,奖金和部门为空。

4.使用CREATE TABLE emp_back as 

        SELECT * FROM EMP WHERE 1=0,创建emp_back表,拷贝下来即可。

5.把emp表中入职日期大于1982年1月1日之前的员工信息复制到emp_back表中。

一、
1、
delete from dept where DEPTNO=50;
INSERT into dept
VALUES(50,'HR','SY');
2、
delete from dept where DEPTNO=60;
INSERT into dept
VALUES(60,'MARKET',null);
3、
INSERT into emp
VALUES(8888,'BOB','CLERK',7788,'1985-03-03',3000,NULL,null);
4、
CREATE TABLE emp_back SELECT *FROM emp WHERE 1=0;
5、
INSERT emp_back SELECT *FROM emp where hiredate>'1982-01-01'

2、更新数据

1.修改部门20的员工信息,把82年之后入职的员工入职日期向后调整10天

2.修改奖金为null的员工,奖金设置为0

3.修改工作地点在NEW YORK或CHICAGO的员工工资,工资增加500

1、
update emp set hiredate=hiredate+10 
WHERE hiredate>'1982-12-31'

2、
update emp 
set COMM=0 
WHERE ISNULL(COMM);

3、
UPDATE emp
set SAL = SAL+500
where DEPTNO in (
	SELECT DEPTNO
	from dept
	where LOC='NEW YORK' or LOC='CHICAGO'
);

3、删除

1.删除经理编号为7566的员工记录

2.删除工作在NEW YORK的员工记录

3.删除工资大于所在部门平均工资的员工记录

1、delete
from emp
where mgr=7566;
2、delete 
from emp 
where DEPTNO in (
	SELECT DEPTNO
	from dept
	where LOC='NEW YORK' 
);

二、综合 使用如下语句,建立以下表

1、

CREATE TABLE copy _emp   (

  empno int(4),

  ename varchar(20),

  hiredate date,

  deptno int(2),

  sal double(8,2))

(1)在表copy_emp中插入数据,要求sal字段插入空值,部门号50,参加工作时间为2000年1月1日,其他字段随意

(2)在表copy_emp中插入数据,要求把emp表中部门号为10号部门的员工信息插入

(3)修改copy_emp表中数据,要求10号部门所有员工涨20%的工资

(4)修改copy_emp表中sal为空的记录,工资修改为平均工资

(5)把工资为平均工资的员工,工资修改为空

1、
INSERT INTO copy_emp VALUES(7909,'jack','2000-01-01',50,NULL);
2、
INSERT INTO copy_emp(empno,ename,hiredate,deptno,sal)
	SELECT empno,ename,hiredate,DEPTNO,SAL 
	from emp
	where DEPTNO=10;
3、
UPDATE copy_emp
set sal=sal*1.2
where deptno=10;

4、
update copy_emp 
set sal = (SELECT a.avgsal from (select avg(sal) avgsal from copy_emp) as a)
where ISNULL(sal);
5、
update copy_emp 
set sal=NULL
WHERE sal = (SELECT a.avgsal from (select avg(sal) avgsal from copy_emp) as a);

2、

新建学生数据库,添加适量测试数据


年级表  grade

年级编号  gradeId 主键自增

年级名称  gname 


学生表  student

学号  stuNo 主键自增

密码  loginPwd 

姓名  stuName  

性别  sex

年级编号  gradeId

手机号码  phone

家庭住址  address

出生日期  bornDate

邮箱  email

身份证号码 identityCard


科目表  subject

科目编号 subNo 主键自增

科目名称  subName

课时数  classHour 

所属年级 gradeId

成绩表  result

学号  stuNo

科目编号 subNo

成绩 score 

考试时间 ExamDate

建表语句

添加测试数据语句


(1)添加三个班级信息为:1,JAVA1班,null

                         2,JAVA2班,null

                         3,JAVA3班,null

(2)添加学生信息如下:‘A001’,‘张三’,‘男’,‘01-5月-05’,100,1

(3)添加学生信息如下:'A002','MIKE','男','1905-05-06',10

(4)插入部分学生信息: 'A003','JOHN','女’

(5)将A001学生性别修改为'女‘

(6)将A001学生信息修改如下:性别为男,生日设置为1980-04-01

(7)将生日为空的学生班级修改为Java3班

(8)请使用一条SQL语句,使用子查询,更新班级表中每个班级的人数字段

1、
INSERT
INTO grade
VALUES(1,'JAVA1班',null),
			(2,'JAVA2班',null),
			(3,'JAVA3班',null);
2、
INSERT
INTO stu(stuNo,stuName,sex,bornDate,gradeID)
VALUES('A001','张三','男','2001-05-05',1);

3、
INSERT
INTO stu(stuNo,stuName,sex,bornDate,gradeID)
VALUES('A002','MIKE','男','1905-05-06',2);

4、
INSERT
INTO stu(stuNo,stuName,sex)
VALUES('A003','JOHN','女');

5、
UPDATE stu
set sex = '女' 
where stuNo='A001';

6、
UPDATE stu
set sex = '男' ,bornDate = '1980-04-01'
where stuNo='A001';

7、
UPDATE stu,grade
set stu.gradeID = (SELECT c.gradeid from (SELECT gradeID gradeid from grade where gname='JAVA3班') as c)
where ISNULL(bornDate);


8、
update grade
set gnum=(
		select count(stu.gradeID)
		from stu 
		where stu.gradeID=grade.gradeID
);

三、简单查询

1.使用两种方式查询所有员工(EMP)信息
2.查询(EMP)员工编号、员工姓名、员工职位、员工月薪、工作部门编号。
3.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。
4.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)
5.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示列标题为员工姓名,工资收入,奖金收入,总收入。
6.查询员工表中一共有哪几种岗位类型。
7. 分别查看员工表、部门表、薪资等级表的表结构。
8.查询职位为SALESMAN的员工编号、职位、入职日期。
9.查询1985年12月31日之前入职的员工姓名及入职日期。
10.查询部门编号不在10部门的员工姓名、部门编号。
11.查询入职日期在82年至85年的员工姓名,入职日期。
12.查询月薪在3000到5000的员工姓名,月薪。
13.查询部门编号为10或者20的员工姓名,部门编号。
14.查询经理编号为7902, 7566, 7788的员工姓名,经理编号。
15.查询员工姓名以W开头的员工姓名。
16.查询员工姓名倒数第2个字符为T的员工姓名。
17.查询奖金为空的员工姓名,奖金。
18.查询工资超过2000并且职位是MANAGER,或者职位是SALESMAN的员工姓名、职位、工资
19.查询工资超过2000并且职位是 MANAGER或SALESMAN的员工姓名、职位、工资。
20.查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。
21.查询入职日期在81年,并且职位不是SALES开头的员工姓名、入职日期、职位。
22.查询职位为SALESMAN或MANAGER,部门编号为10或者20,姓名包含A的员工姓名、职位、部门编号。
23.查询入职时间在1982-7-9之后,并且不从事SALESMAN工作的员工姓名、入职时间、职位。
24.查询员工姓名的第三个字母是a的员工姓名。
25.查询除了10、20号部门以外的员工姓名、部门编号。
26.查询部门号为30号员工的信息,先按工资降序排序,再按姓名升序排序。 
27.查询没有上级的员工(经理号为空)的员工姓名。
28.查询工资大于等于4500并且部门为10或者20的员工的姓名\工资、部门编号。

1、
SELECT*
from emp;

SELECT 	empno,ename,job,mgr,hiredate,SAL,COMM,DEPTNO
from emp;
2、
SELECT empno,ename,job,SAL,DEPTNO 
from emp;
3、
SELECT ename,SAL*1.2 SAL 
from emp;
4、
SELECT ename,SAL*1.2*6+SAL*6 SALyear 
from emp;
5、
SELECT ename,SAL*1.2*6+SAL*6 SALyear,COMM,SAL*1.2*6+SAL*6+COMM sumSALyear 
from emp;
6、
SELECT DISTINCT job
from emp;
7、
DESC emp;
DESC dept;
DESC salgrade;
8、
SELECT empno,job,hiredate
from emp
WHERE job = 'SALASMAN';
9、
SELECT ename,hiredate
from emp
WHERE hiredate>'1985-12-31';
10、
SELECT ename,DEPTNO
from emp
WHERE DEPTNO!=10;
11、
SELECT ename,hiredate
from emp
WHERE hiredate BETWEEN '1982-01-01' and '1985-12-31';
12、
SELECT ename,SAL 
from emp 
where SAL BETWEEN 3000 AND 5000;
13、
SELECT ename,DEPTNO
from emp
WHERE DEPTNO=10 or DEPTNO=20;
14、
SELECT ename,mgr
from emp
WHERE mgr in (7902, 7566, 7788);
15、
SELECT ename
from emp
WHERE ename LIKE 'W%';
16、
SELECT ename
from emp
WHERE ename LIKE '%T_';
17、
SELECT ename,COMM
from emp
WHERE ISNULL(COMM);
18、
SELECT ename,job,SAL 
from emp 
where SAL>2000 and job in ('MANAGER','SALESMAN');
19、
SELECT ename,job,SAL 
from emp 
where SAL>2000 and job in ('MANAGER','SALESMAN');
20、
SELECT ename,DEPTNO,SAL 
from emp 
where DEPTNO in (10,20);
21、
SELECT ename,hiredate,job 
from emp 
where job!='SALES%' and (hiredate BETWEEN'1981-01-01' and'1981-12-31');
22、
SELECT ename,job,DEPTNO 
from emp 
where job in ('MANAGER','SALESMAN')and DEPTNO in (10,20) and ename LIKE '%A%';

23、
SELECT ename,hiredate,job 
from emp 
where job!='SALESMAN' and hiredate>'1982-07-09';
24、
SELECT ename
from emp 
where ename LIKE '__a%';
25、
SELECT ename,DEPTNO
from emp
WHERE DEPTNO=!10 or DEPTNO!=20;
26、
SELECT*
from emp
WHERE DEPTNO=30
ORDER BY SAL DESC,ename ASC;
27、
SELECT ename
from emp 
where ISNULL(mgr);
28、
SELECT ename,SAL,DEPTNO
from emp 
where SAL>=4500 and DEPTNO in (10,20);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值