例题:

现在要求查询出公司的雇员雇佣情况,希望通过数据库可以查找到每个雇员的编号、姓名、基本工资三个信息进行浏览
select empno,ename,sal from emp
现在要求查询公司中所有雇员的职位信息
select ename,job from emp
要求通过数据库查询出所有雇员的编号、雇员姓名和年基本工资、日基本工资,以作为年终奖金的发放标准
select empno,ename,sal,sal/30 from emp
现在公司每个雇员在年底的时候可以领取5000元的年终奖金,要求查询雇员编号、雇员姓名和增长后的年基本工资(不包括提成)。
select empno,ename,sal,(sal*12)+5000 from emp
公司每个月为雇员增加200元的补助金,此时,要求可以查询出每个雇员的编号、姓名、基本年工资(包括在年底的时候可以领取5000元的年终奖金)。
select empno,ename,sal,((sal+200)12)+5000 from emp/一个月的工资+每个月200补助一年12个月+5000年元终奖/
统计出基本工资高于1500的全部雇员信息
select * from emp where sal>1500
现在要求查询出所有基本工资小于等于2000的全部雇员信息
select * from emp where sal<2000
根据之前的查询结果发现SMITH的工资最低,所以现在希望可以取得SMITH的详细资料
select * from emp where ename=‘SMITH’
查询出所有办事员(CLERK)的雇员信息
select * from emp where job=‘CLERK’
查询所有不是办事员的雇员信息
select * from emp where job<>‘CLERK’
/连接表:表尾与表头连接/
select * from emp
select * from dept

select * from emp where comm is null or comm=0

现在要求查询出公司的雇员雇佣情况,希望通过数据库可以查找到每个雇员的编号、姓名、基本工资三个信息进行浏览
现在要求查询公司中所有雇员的职位信息
select empno,ename,job from emp;
要求通过数据库查询出所有雇员的编号、雇员姓名和年基本工资、日基本工资,以作为年终奖金的发放标准
select empno,ename,sal/30, sal12 from emp ;
现在公司每个雇员在年底的时候可以领取5000元的年终奖金,要求查询雇员编号、雇员姓名和增长后的年基本工资(不包括提成)。
select empno,ename,sal
12+5000 from emp;
公司每个月为雇员增加200元的补助金,此时,要求可以查询出每个雇员的编号、姓名、基本年工资(包括在年底的时候可以领取5000元的年终奖金)。
select empno,ename,(sal+200)*12+5000 from emp;
统计出基本工资高于1500的全部雇员信息
select * from emp where sal>1500;
现在要求查询出所有基本工资小于等于2000的全部雇员信息
select * from emp where sal<=2000
根据之前的查询结果发现SMITH的工资最低,所以现在希望可以取得SMITH的详细资料
select * from emp where ename=‘SMITH’
查询出所有办事员(CLERK)的雇员信息
select * from emp where job=‘CLERK’
查询所有不是办事员的雇员信息
select * from emp where job<>‘CLERK’
查询出工资范围在1500 ~ 3000(包含1500和3000)的全部雇员信息
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000
查询职位是办事员,并且基本工资高于1200的所有雇员信息
select * from emp where job='CLERK’and sal>1200
查询不是办事员(CLERK),且基本工资大于2000的全部雇员信息
select * from emp where job<>‘CLERK’ and sal>2000

查询每个员工涨20%的工资是多少,显示名字和金额
select ename, sal*(1+0.2)from emp
查看给每个员工工资加500的薪金是多少
select ename,sal+500 from emp;
查询没有提成的员工信息
select * from emp where comm is null or comm=0;/没有提成的员工/
查询有提成的员工所有信息
select * from emp where comm is not null and comm>0;/有提成的员工/
Null和任何值运算,结果为null
select null+10,null-10,null*10,null/10 from emp;
查询提成加500的员工名字和提成
select ename, comm+500,comm from emp;
找出有奖金的员工的不同工作,不要重复数据
select distinct job from emp where comm is not null and comm>0;
查询没有提成且工资大于2000的员工信息
select * from emp where (comm is null or comm=0) and sal>2000
找出没有奖金或者奖金低于 1000 的员工信息
select * from emp where (comm is null or comm=0)or comm<1000
查询员工编号在7788或者7499或者是 7369的员工信息
select * from emp where empno in(7788,7499,7369);
查询员工姓名是SMITH或者是SCOTT的人员信息
select * from emp where ename in(‘MANAGER’,‘SCOTT’);
习题
SELECT * FROM emp WHERE comm IS NULL OR comm=0;
找出部门 10 中既不是经理(MANAGER)也不是普通员工(CLERK)的信息,
select * from emp where deptno=10 and job not in (‘MANAGER’,‘CLERK’)
找出部门 20 中既不是经理(MANAGER)也不是普通员工(CLERK)的信息,而且工资大于等于 2000 的员工
select * from emp where deptno=20 and job not in (‘MANAGER’,‘CLERK’)and sal>2000;
例题:现在查询出雇员姓名是S开头的全部雇员信息
select * from emp where ename like ‘%S%’
select * from emp where ename like ‘%S’;
select * from emp where ename like ‘S%’;
select * from emp where ename like ‘_S%’
习题:
查询名字以S结尾和部门是20的员工编号、入职日期、部门编号 ,提成
select empno,hiredate,mgr,comm from emp where ename like’%S’ and (deptno=20)
查询员工工资大于等于2000 或者部门是20的员工姓名、入职日期、
select ename,hiredate from emp where deptno=20 or sal>=2000
查询工资在1000到2000之间的员工的姓名和工资
select ename,sal from emp where sal between 1000 and 2000
查询员工叫KING的工资、提成、部门
select sal,comm,deptno from emp where ename=‘KING’
查询员工姓名的第三个字母是A的员工姓名
select * from emp where ename like (’__A%’)
显示提成(COMM)收入比工资(SAL)高的员工的部门编号、名字、入职日期
select empno,ename,hiredate,sal from emp where sal<comm
查询部门20的详细信息,地址,位置

显示10 号部门的所有经理(‘MANAGER’)或者20 号部门的所有职员(‘CLERK’)的员工编号、职位、薪金、部门编号
select empno,job,sal,mgr from emp where( deptno=10 and job=‘MANAGER’) or deptno=20 and job=‘CLERK’
查询不是10部门的员工或者名字带S开头的姓名的信息
select * from emp where ename like’%S’or deptno<>10

/练习题/
测试题:
1.查询20部门的员工信息和上级编号是7788的员工编号、姓名、上级编号和部门
select empno,ename,mgr,deptno from emp where mgr in 7788 and deptno=20
2.查询员工名字叫SCOTT的这个人的所以信息
select * from emp where ename=‘SCOTT’
3.查询工资大于1000和部门是30的员工的编号,姓名,工资
select empno,ename,sal from emp where sal>1000 and deptno=30
4.查询员工叫KING的工资、提成、部门
select sal,comm,/ deptno from emp where ename=‘KING’
/5.查询员工姓名的第三个字母是A的员工或者编号第二位的3的员工编号、姓名和部门/
select * from emp
6.查询职位有哪些(去重),显示职位
select distinct job from emp
7.查询职位(JOB)为’PRESIDENT’的员工的工资和姓名
select sal,ename from emp where job=‘PRESIDENT’
8.查询没有提成的员工和部门是20的员工编号、姓名、日期和提成
select empno,ename,hiredate,comm from emp where deptno=20and comm is null or comm=0 /111/
/9.查询部门40的部门名称,位置(dept表)/

10.显示10 号部门的所有经理(‘MANAGER’)和20 号部门的所有职员(‘CLERK’)的详细信息
/*select * from emp where (deptno=10 and job=‘MANAGER’) or deptno=20 and ename=‘CLERK’
*//*11.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息
*/
12.查询以S结尾的员工姓名及月收入
select * from emp where ename like’%S’
13.查询工资在1000到2000之间的员工的姓名和工资
select ename,sal from emp where sal between 1000 and 2000
14.查询工资大于2000或者部门是20的员工的编号,姓名,工资
select empno,ename,sal,deptno from emp where sal>2000 or deptno=20
15.查询编号以7开头和以8结尾的员工编号、姓名、部门编号
select empno,ename,deptno from emp where empno like ‘7%8’
16.查询编号第四位是8的员工信息,显示编号、姓名和薪金
select empno,ename,sal from emp where empno like ‘___8%’
17.查询名字第三位是A的员工编号、上级编号、日期和部门
select ename,mgr,hiredate,deptno from emp where ename like ‘__A%’

select empno||job from emp --拼接

/第二课时总结/

查询名字以S结尾和部门是20的员工编号、入职日期、部门编号
select empno,hiredate,deptno from emp where ename like ‘S%’ and deptno=20
查询员工工资大于等于2000 或者部门是20的员工姓名、入职日期、提成
select ename,hiredate,comm from emp where sal>=2000 or deptno=20
查询工资在1000到2000之间的员工的姓名和工资
select ename,sal from emp where sal between 1000 and 2000
查询员工叫KING的工资、提成、部门
select ename, sal,comm,deptno from emp where ename=‘KING’
查询员工姓名的第三个字母是A的员工姓名
select * from emp where ename like ‘__A%’
显示提成(COMM)收入比工资(SAL)高的员工的部门编号、名字、入职日期
select empno,ename,hiredate from emp where comm>sal
显示佣金(COMM)收入比工资(SAL)高的员工的详细信息
select * from emp where sal<comm
查询部门20的详细信息,地址,位置

显示10 号部门的所有经理(‘MANAGER’)或者20 号部门的所有职员(‘CLERK’)的员工编号、职位、薪金、部门编号
查询不是10部门的员工或者名字带S开头的姓-
名的信息
select empno,job,sal,deptno from emp where (deptno=10 and job=‘MANAGER’) or deptno=20 and ename=‘CLERK’
显示10 号部门的所有经理(‘MANAGER’)和20 号部门的所有职员(‘CLERK’)的详细信息
select deptno, job,ename from emp where (deptno=10 and job=‘MANAGER’) and deptno=20 and ename=‘CLERK’

select * from emp where ename like’S%'and deptno<>10

/第三课时/
/查看当前日期/
select sysdate from dual
/显示用户/
select user from dual
/显示总行数/
select count() from dual
/运算方式/
select 7
9*10-10 from dual
/查询工资信息,按照工资从低到高顺序进行排列/
select * from emp order by sal
/查询工资信息,按降序排列显示所以信息/
select * from emp order by sal desc
/查询20部门员工的所有信息按薪金降序排序/
select * from emp where deptno=20 order by sal desc
/显示雇员姓名、入职日期、部门编号,根据其服务年限,将最老的雇员排在最前面/
select ename,hiredate,deptno from emp order by hiredate

/* 第四课时*/
select * from a
create table a (empno number(30),ename varchar2(30),job varchar2(30))
insert into a (empno,ename,job) values (1,‘王飞’,‘manager’)
insert into a (empno,ename,job) values (2,‘小明’,‘chishi’)
insert into a (empno,ename,job) values (3,‘李四’,‘henie’)
insert into a (empno,ename,job) values (4,‘张三’,‘maidong’)
insert into a (empno,ename,job) values (5,‘董伟’,‘kele’)
update a set ename='张伟民’where empno=2
alter table a add (mgr number(30))
update a set mgr=3 where empno=1
delete from a where mgr=3

select * from q /执行表格q/
create table q (empno number(30),ename varchar2(30),job varchar2(30))/创建表格q 加表结构/
insert into q (empno,ename,job)values (1,‘小明’,‘manager’) /插入/
insert into q (empno,ename,job)values (2,‘小红’,‘maishi’) /插入/
update q set job='manager’where empno=1/更改表内数据/
delete from q where empno=2 /删除一行/
alter table q add(mgr number(30))/增加一列/
alter table q modify(mgr varchar2(30))/修改成字符串模式/
update q set mgr=‘王’ where empno=1 /列表插值/
alter table q drop column mgr/删除一列/
varchar2 /字符串类型/ number/数字类型/ date /日期类型/ int /整数类型/

select * from f
create table f (empno number(30),ename varchar2(30),job varchar2(30))
insert into f values(1,‘张三’,‘办事处’)/插值/
insert into f values(2,‘李四’,‘门卫’)
update f set ename=‘小明’ where empno=1/更改表内数据/
delete from f where empno=1/删除一行/
alter table f add (mgr number(30))/增加一列/
alter table f modify (mgr varchar2(30))/写改成字符串模式/
update f set mgr=‘王’ where empno=2/列表插值/
alter table f drop column enam/删除一列/

select * from wf
create table wf (empno number(20),ename varchar(20),sal number(20))
insert into wf values(1,‘王坤华’,2)
insert into wf values(2,‘孙铭浩’, 3)
update wf set sal=9999 where empno=1
update wf set sal=9999 where empno=2

select * from emp

查询每个员工的编号、姓名、职位、基本工资、部门名称、部门位置信息
select e.empno,e.ename,e.job,e.sal,
d.deptno,
d.loc
from emp e join dept d on e.deptno=d.deptno
查询出每个员工的编号、姓名、雇佣日期、基本工资、工资等级
select e.empno,e.ename,e.hiredate,e.sal,s.grade
from emp e join salgrade s on e.sal between s.losal and s.hisal
查询出每个员工的姓名、职位、基本工资、部门名称、工资等级
select e.ename,e.job,e.sal,d.dname,s.grade
from emp e join dept d on e. deptno=d.deptno
join salgrade s on e.sal between s.losal
and s.hisal
select * from emp e join dept d on e.deptno=d.deptno
join salgrade s on e.sal between losal and hisal
查询出每个雇员的编号、姓名及上级领导的编号、姓名
select e.ename,e.empno,e.ename,m.mgr,m.ename
from emp e,emp m where e.mgr=m.empno

查询雇佣的雇员编号、姓名、雇佣日期、职位、领导姓名、月工资、年工资(基本工资+提成)、
工资等级、部门编号、部门姓名、部门地址、,同时要求这些员工的月工资在1500~3500之间,
最后的结果按照年工资进行降序排列,工资相同,按照雇佣日期.

select e.empno,e.ename,e.hiredate,e.job, e.sal,
m.mgr,
(nvl(e.comm,0)+e.sal)*12 NX,
s.grade,
d.deptno,d.dname,d.loc
from emp e join emp m on e.mgr=m.empno
join dept d on e.deptno=d.deptno
join salgrade s on e.sal between s.losal and s.hisal
and e.sal between 1500 and 3500
order by sal

select * from emp e right join dept d on e.deptno=d.deptno/范例:实现右外连接/

select * from emp e left outer join dept d on e.deptno=d.deptno/范例:实现左外连接/

select * from emp e full join dept d on e.deptno=d.deptno/范例:实现全外连接/

select * from emp where rownum<=5;

select rownum,a. * from emp a
select rownum,a.* from emp a order by sal;
select rownum,a.* from (select * from emp order by sal) a
按照工资排序,查找出工资最低的后两位员工信息
select rownum,a.* from (select * from emp order by sal) a where rownum<=2;
查找出工资最高的第4到第6名员工信息
select * from (select rownum r,a.* from (select * from emp order by sal desc) a) where r between 4 and 6
查询30部门 工资最高的低2到第4名人员信息
select * from
(select rownum r,a.* from
(select * from emp order by sal desc)a)
where r between 4 and 6

查找出工资最高的第4到第6名员工信息
select * from
(select rownum r,a.* from(select * from emp order by sal desc)a)
where r>=4 and r<=6

查询出每个雇员的到今天为止的雇佣天数、以及十天前每个雇员的雇佣天数
select sysdate-hiredate,sysdate-10-hiredate from emp

查询距离今天为止3天之后以及3天之前的日期
select sysdate+3 ,sysdate-3 from dual

按照工资排序,查找出工资最低的后两位员工信息
select rownum,a.* from (select * from emp order by sal)a where rownum between 1 and 2
查询30部门 工资最高的低2到第4名人员信息
select * from (select rownum r,a.from (select * from emp where deptno=30 order by sal desc)a) where r between 2 and 4
查找出工资最高的第4到第6名员工信息
select rownum,a.
from (select * from emp order by sal desc)a where rownum between 4 and 6

查询出每个雇员的到今天为止的雇佣天数、以及十天前每个雇员的雇佣天数
select trunc( sysdate-hiredate),trunc (sysdate-10-hiredate) from emp
要求显示所有雇员在被雇佣三个月之后的日期
select sysdate, ename, job, sal, add_months(hiredate,3)from emp
查询emp表,入职日期的下个星期一是多少号
select sysdate,next_day(hiredate,‘星期一’) 下个星期一 from emp
查询所有是在其雇佣所在月的倒数第三天被公司雇佣的完整雇员信息
select * from emp where hiredate+2=last_day(hiredate)
查询出每个雇员的编号、姓名、雇佣日期、雇佣的月数及年份
select empno,ename,hiredate,trunc(months_between(sysdate,hiredate)),trunc(months_between(sysdate,hiredate)/12)from emp
查询出所有在每年2月份雇佣的雇员信息
select * from emp where to_char(hiredate,‘mm’)=‘02’
现在要求将每个雇员的雇佣日期进行格式化显示,要求所有的雇佣日期可以按照“年-月-日”的形式显示,
也可以将雇佣的年、月、日拆开分别显示
select empno,ename,job,hiredate, to_char(hiredate,‘yyyy-mm-dd’),
to_char(hiredate,‘yyyy’)年,
to_char(hiredate,‘mm’)月,
to_char(hiredate,‘dd’)日
from emp

select job Job,length(job) lengt2h from emp order by ename

要求显示所有雇员在被雇佣三个月之后的日期
select sysdate,add_months(hiredate,3)from emp
查询emp表,入职日期的下个星期一是多少号
select empno,ename,job,hiredate,next_day(hiredate,‘星期一’)from emp
查询所有是在其雇佣所在月的倒数第三天被公司雇佣的完整雇员信息
select * from emp where hiredate+2=last_day(hiredate)
查询出每个雇员的编号、姓名、雇佣日期、雇佣的月数及年份
select empno,ename,hiredate,trunc(months_between(sysdate,hiredate)),trunc(months_between(sysdate,hiredate)/12)from emp
查询出所有在每年2月份雇佣的雇员信息
select * from emp where to_char(hiredate,‘mm’)=‘02’
现在要求将每个雇员的雇佣日期进行格式化显示,要求所有的雇佣日期可以按照“年-月-日”的形式显示,
也可以将雇佣的年、月、日拆开分别显示
select empno,ename,job,hiredate, to_char(hiredate,‘yyyy-mm-dd’),
to_char(hiredate,‘yyyy’)年,
to_char(hiredate,‘mm’)月,
to_char(hiredate,‘dd’)日
from emp

select hiredate,next_day(hiredate,‘星期一’)from emp

Add_months(X,Y) /指定的日期上加如指定的月数,求出新的日期/
NEXT_DAY/(日期,星期数)要想知道下一个“星期一”或是“星期日”的具体日期/
LAST_DAY/(日期)求得指定日期所在月的最后一天日期/
MONTHS_BETWEEN/(日期1,日期2)此函数的功能是取得两个日期之间的所经过的月份间隔数/
To_char()函数
To_date()/函数使用TO_DATE()函数 SELECT TO_DATE(‘19790919’,‘YYYY-MM-DD’) FROM dual ;/
To_number()/函数使用TO_NUMBER()函数将字符串变为数字/

/现在雇员表中的工作有以下几种:
? CLERK:业务员
? SALESMAN:销售人员
? MANAGER:经理
? ANALYST:分析员
? PRESIDENT:总裁
/
要求可以查询雇员的姓名、职位、基本工资等信息,但是要求将所有的职位信息都替换为中文显示。
select ename,sal,decode(job,‘CLERK’,‘业务员’,
‘SALESMAN’,‘销售人员’,
‘MANAGER’,‘经理’,
‘ANALYST’,‘分析员’,
‘PRESIDENT’,‘总裁’)job
from emp
显示emp表部门,当等于10部门的时候,显示‘十部门’,20部门的时候显示‘二十部门’,
30部门的时候显示‘三十部门’,显示员工编号,姓名,部门
select empno,ename,deptno,
case when deptno=10 then ‘十部门’
when deptno=20 then ‘二十部门’
when deptno=30 then ‘三十部门’
end 部门
from emp

select empno,ename,deptno,
decode(deptno,10,‘十部门’,
20,‘二十部门’,
30,‘三十部门’)deptno
from emp
显示每个雇员的姓名、工资、职位,同时显示新的工资
(新工资的标准为:办事员增长10%、销售人员增长20%、经理增长30%、其他职位的人增长50%)
select ename,sal,
case when job=‘CLERK’ then sal1.1
when job=‘SALESMAN’ then sal
1.2
when job=‘MANAGER’ then sal1.3
else sal
1.5
end 新工资
from emp

如果是1的时候,显示‘一等级’,2的时候显示‘二等级’以此类推到4级,
剩下的结果都显示‘最高级’,显示等级和最低工资和最高工资
select hisal,losal,
case when grade=1 then ‘一等级’
when grade=2 then ‘二等级’
when grade=3 then ‘三等级’
when grade=4 then ‘四等级’
else ‘最高级’
end 等级
from salgrade

查询工资,当工资在1000以下的时候显示低工资,当工资在1001到2000的时候显示中等工资,其他显示高工资
select empno,ename,
case when sal<1000 then ‘低工资’
when sal between 1001 and 2000 then ‘中等工资’
else ‘最高工资’
end 工资
from emp

/新课件/
统计出每个部门的人数
select count(deptno),count(empno) from emp
统计出每种职位的最低和最高工资
select job,min(sal),max(sal) from emp group by job
求出每个部门的平均工资最高的工资
select max(avg(sal))from emp group by deptno
查询每个部门的名称、部门人数、部门平均工资、平均服务年限
select d.dname 部门名称,count(e.empno)部门人数,round(avg(e.sal),2) 部门平均工资,
round(avg(months_between(sysdate,hiredate)/12),2) 平均服务年限 from emp e
right join dept d on e.deptno=d.deptno
group by d.dname
查询出公司各个工资等级,雇员的雇佣数量、平均工资。
select s.grade 工作等级,count(e.empno) 雇佣数量,avg(e.sal)平均工资 from emp e
join salgrade s on e.sal between s.losal and s.hisal
group by s.grade

统计出有提成与没有提成的雇员的平均工资、平均雇佣年限、雇员人数。
select comm,avg(sal), round(avg(months_between(sysdate,hiredate)/12),2)雇佣年限,
count(empno)雇员人数
from emp
group by comm
现在要求查询出每个部门的详细信息。
(包含部门编号、部门名称、位置、平均工资、总工资、最高工资、最低工资、部门人数)
select d.deptno,d.dname,d.loc,avg(sal),sum(sal),max(sal),min(sal),count(empno) from emp e
right join dept d on e.deptno=d.deptno
group by d.deptno,d.dname,d.loc
查询出所有平均工资大于2000的职位信息、平均工资、雇员人数
select job,avg(sal),count(empno)
from emp
group by job
having avg(sal)>2000

列出至少有四个员工的所有部门编号、部门名称,并统计出这些部门的平均工资、最低工资、最高工资
select d.deptno,d.dname,avg(e.sal),min(e.sal),max(e.sal) from emp e
join dept d on e.deptno=d.deptno
group by d.deptno,d.dname
having count(e.empno)>=4

显示非销售人员(SALESMAN)工作名称以及从事同一工作雇员的月工资的总和,
并且要满足从事同一工作的雇员的月工资合计大于$5000, 输出结果按月工 资的合计升序排列
select job,sum(sal)月工资 from emp
where job<>‘SALESMAN’
group by job
having sum(sal)>5000
order by sum(sal) desc

                          from    where   group by      having      order by

查询公司之中工资最低的雇员的完整信息
select * from emp where sal=(select min(sal) from emp )
查询出基本工资比ALLEN低的全部雇员信息

select * from emp where sal<(select sal from emp where ename=‘ALLEN’)
查询基本工资高于公司平均薪金的全部雇员信息

select * from emp where sal>(select avg(sal) from emp)
查找出与ALLEN从事同一工作,并且基本工资高于雇员编号为7521的全部雇员信息

select * from emp where
sal>(select sal from emp where empno=7521)
and
job=(select job from emp where ename=‘ALLEN’)
查询与SCOTT从事同一工作且工资相同的雇员信息(不包括scott)

select * from emp
where (job,sal)=(select job,sal from emp where ename=‘SCOTT’) and ename<>‘SCOTT’

查询与雇员7566从事同一工作且领导相同的全部雇员信息(不包括7566)
select * from emp where (job,mgr)=(select job,mgr from emp where empno=7566) and empno<>7566

查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN)
select * from emp
where (job,to_char(hiredate,‘yyyy’))=(select job,to_char(hiredate,‘yyyy’) from emp where ename=‘ALLEN’)

/查询出与每个部门中最低工资的全部雇员信息/
select * from emp where sal in(select min(sal) from emp group by deptno)
/查询出不与每个部门中最低工资相同的全部雇员信息/
select * from emp where sal not in(select min(sal) from emp group by deptno)
/查询部门编号、雇员人数、平均工资,并且要求这些部门的平均工资高于公司平均薪金]/
select deptno,count(empno),avg(sal) from emp
group by deptno
having avg(sal)>(select avg(sal) from emp)
/*查询出平均工资最高的部门名称及平均工资
*/
select d.dname,avg(e.sal) from emp e
join dept d on e.deptno=d.deptno
group by d.dname
having avg(sal)=(select max(avg(sal)) from emp group by deptno)

/要求查询出每个部门的编号、名称、位置、部门人数、平均工资/
select d.deptno,d.dname,d.loc,t.count,t.avg
from dept d,(select deptno,count(empno) count,avg(sal) avg from emp group by deptno) t
where d.deptno=t.deptno

/查询出所有在部门“SALES”(销售部)工作的员工的编号、姓名、基本工资、奖金、职位、雇佣日期、部门的最高和最低工资。/
select e.empno,e.ename,e.sal,e.comm,e.hiredate,t.max,t.min from dept d,emp e,
(select deptno,max(sal) max,min(sal) min from emp group by deptno) t
where e.deptno=d.deptno
and e.deptno=t.deptno
and dname=‘SALES’

查询出所有薪金高于公司平均薪金的员工编号、姓名、基本工资、职位、雇佣日期,
所在部门名称、位置,上级领导姓名,公司的工资等级,部门人数、平均工资、平均服务年限。
select e.empno,e.ename,e.sal,e.job,e.hiredate,
d.dname,d.loc,
m.ename,
s.grade,t.count,t.avg,t.r from emp e,dept d,emp m,salgrade s,
(select deptno,count(empno) count,avg(sal) avg,avg(months_between(sysdate,hiredate)/12) r from emp group by deptno) t
where e.deptno=d.deptno
and e.mgr=m.empno
and e.deptno=t.deptno
and e.sal between s.losal and s.hisal
and e.sal>(select avg(sal) from emp )

/列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。/

/出公司各个部门的经理(假设每个部门只有一个经理,job为“MANAGER”)
的姓名、薪金、部门名称、部门人数、部门平均工资。*/
select e.ename,e.sal,d.dname,t.count,t.avg from emp e,dept d,
(select deptno,count(empno) count,avg(sal) avg from emp group by deptno) t
where e.deptno=d.deptno
and e.deptno=t.deptno
and job=‘MANAGER’

查询每个部门的编号、名称、位置、部门平均工资、人数
with a AS(
select deptno,round)

查询每个部门工资最高的雇员编号、姓名、职位、雇佣日期、最高工资、部门编号、部门名称,显示的结果按照部门编号进行排序

select * from a
create table a (empno number(30),ename varchar2(30),job varchar2(30),hiredate date)
insert into a(empno,ename,job,hiredate) values (1,‘小红’,‘MANAGER’,to_date(‘1990-1-23’,‘yyyy-mm-dd’))
insert into a(empno,ename,job,hiredate) values (2,‘张四’,‘CHISHI’,to_date(‘1992-3-14’,‘yyyy-mm-dd’))
update a set ename=‘王飞’ where empno=1
delete from a where empno=1

alter table a add(mgr number(30))
alter table a modify(mgr varchar2(30))
update a set mgr=‘傻子’ where empno=1
alter table a drop column mgr

查询出所有薪金高于公司平均薪金的员工编号、姓名、基本工资、职位、雇佣日期,所在部门名称、
位置,上级领导姓名,公司的工资等级,部门人数、平均工资、平均服务年限。
select e.empno,e.sal,e.job,e.hiredate,
d.dname,d.loc,
m.ename,
s.grade,t.count,t.r from emp e,emp m,dept d,salgrade s,
(select deptno,count(empno) count,avg(months_between(sysdate,hiredate)/12) r from emp group by deptno) t
where e.deptno=d.deptno
and e.mgr=m.empno
and e.deptno=t.deptno
and e.sal between s.losal and s.hisal
and e.sal>(select avg(sal) from emp)
查询部门编号、雇员人数、平均工资,并且要求这些部门的平均工资高于公司平均薪金
select deptno,count(*),avg(sal) from emp group by deptno
having avg(sal)>(select avg(sal) from emp)

列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。
select e.empno,e.ename,e.sal,
d.dname,
m.ename, t.count from emp e,emp m,dept d,
(select deptno,count(empno) count from emp group by deptno) t
where e.deptno=d.deptno
and e.mgr=m.empno
and e.deptno=t.deptno
and e.sal>(select sal from emp where ename in(‘ALLEN’,‘CLARK’))
显示非销售人员(SALESMAN)工作名称以及从事同一工作雇员的月工资的总和,
并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列
select job,sum(sal) from emp
where job<>'SALESMAN’group by job
having sum(sal)>5000 order by sum(sal) desc

SELECT deptno , ename, sal ,
SUM(sal) OVER () sum
FROM emp ;

SELECT deptno , ename, sal , comm ,
RANK() OVER (ORDER BY comm DESC NULLS LAST) rk ,
SUM(sal) OVER (ORDER BY comm DESC NULLS LAST) SUM
FROM emp

查询雇员编号是7369的雇员姓名、职、基本工资、部门编号、部门的人数、平均工资、最高工资、最低工资、总工资

查询每个部门中各个职位的总工资
SELECT deptno , job , SUM(sal)
FROM emp
GROUP BY deptno , job ;

统计出有提成与没有提成的雇员的平均工资、平均雇佣年限、雇员人数。
select comm,avg(sal),round(avg(months_between(sysdate,hiredate)/12)),count(empno) from emp group by comm

显示非销售人员(SALESMAN)工作名称以及从事同一工作雇员的月工资的总和,
并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列
select job,sum(sal) from emp
where job<>‘SALESMAN’
group by job
having sum(sal)>5000
order by sum(sal) desc

查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN)
select * from emp
where (job,to_char(hiredate,‘yyyy’))=(select job,to_char(hiredate,‘yyyy’) from emp where ename=‘ALLEN’)

列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。

select e.empno,e.ename,e.sal,
d.dname,
m.ename,r.count
from emp e,dept d,emp m,
(select deptno,count(empno) count from emp group by deptno) r
where e.mgr=m.empno(+)
and e.deptno=d.deptno
and e.deptno=r.deptno
and e.sal>any(select sal from emp where ename in (‘ALLEN’,‘CLAEN’))

select e.empno,e.ename,e.sal,
d.dname,
m.ename, r.部门人数
from emp e,emp m,dept d,
(select deptno,count(empno) 部门人数 from emp group by deptno) r
where e.mgr=m.empno(+)
and e.deptno=d.deptno
and e.deptno=r.deptno
and e.sal>any(select sal from emp where ename in (‘ALLEN’,‘CLARK’) )
查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN)
select * from emp where
(job,to_char(hiredate,‘yyyy’))=(select job,to_char(hiredate,‘yyyy’) from emp where ename=‘ALLEN’)

列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。
select e.empno,e.ename,e.sal,
d.dname,
m.ename,r.count(empno)) from emp e,dept d,emp m,
(select deptno, count(empno) from emp group by deptno) r
where e.deptno=d.deptno
and e.mgr=m.empno(+)
and e.deptno=r.deptno
and e.sal>any(select sal from emp where ename in(‘ALLEN’,‘CLAKE’))

select e.empno,e.ename,e.sal,d.dname,n.ename,m.部门人数
from emp e,emp n,dept d,(select deptno,count(empno) 部门人数 from emp group by deptno) m
where e.mgr=n.empno(+)
and e.deptno=d.deptno
and e.deptno=m.deptno
and e.sal>any(select sal from emp where ename in (‘ALLEN’,‘CLARK’) )

查询每个部门中各个职位的总工资
select deptno,
sum(decode(job,‘CLERK’,sal,0)),
sum(decode(job,‘SALESMAN’,sal,0)),
sum(decode(job,‘MANAGER’,sal,0)),
sum(decode(job,‘ANAESMAN’,sal,0)),
sum(decode(job,‘ANALYST’,sal,0))
from emp
group by deptno

1.1 、查询同时存在"01" 课程和"02"
select st.*,s.score,c.score from student st join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02

1.2 、查询必须存在"01" 课程,“02”.( 不存在时显示为 null)
select st.,s.score,c.score from student st join sc s on st.sno=s.sno and s.cno=01
left join sc c on st.sno=c.sno and c.cno=02
2.1 、查询同时’01’ 课程比’02’课程低的数据
select st.
,s.score,c.score from student st join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02
where s.score<c.score
2.2 、查询同时’01’ 课程比’02’ 课程分数低或’01’缺考的数据
select st.*,s.score,c.score from student st left join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02
where s.score<c.score or s.score is null
3 、查询平均成绩大于等于 60分的同学的学生编号和学生姓名和平均成绩
select st.sno,st.sname,avg(s.score) from student st join sc s on st.sno=s.sno
group by st.sno,st.sname
having avg(s.score)>60
order by st.sno
4 、查询平均成绩小于 60分的同学的学生编号和学生姓名和平均成绩
select st.sno,st.sname,avg(s.score) from student st join sc s on st.sno=s.sno
group by st.sno, st.sname
having avg(s.score)<60
order by st.sno

4.2 、包括没有考试成绩的数据

select st.sno,st.sname,round(avg(score),2)
from student st left join sc s on st.sno=s.sno
group by st.sno,st.sname
having avg (nvl(s.score,0))<60
order by st.sno

5 、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
5.1 、查询所有成绩的(不含缺考的)。
select st.sno,st.sname,count(s.cno),sum(s.score) from student st join sc s on st.sno=s.sno
group by st.sno,st.sname
5.2 、查询所有成绩的( 包括缺考的) 。
select st.sno,st.sname,count(s.cno),sum(s.score) from student st left join sc s on st.sno=s.sno
group by st.sno,st.sname

6 、查询" 李" 姓老师的数量 (有几个老师姓李.)
select count(tname) from teacher where tname like ‘李%’
7 、哪些学生上过张三(老师)的课
select st.* from student st join sc s on st.sno=s.sno
join course co on s.cno=co.cno
join teacher te on co.tno=te.tno
where te.tname=‘张三’
8 些学生没上过张三(老师)的课
select * from student where sname not in
(select st.sname from student st join sc s on st.sno=s.sno
join course co on s.cno=co.cno
join teacher te on co.tno=te.tno
where te.tname=‘张三’)
9询 、查询 ‘01’ ‘02’ 都学过的同学的信息
select st.* from student st join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02

10 、查询学过编号为’01’ 但是没有学过编号为’02’ 的课程的同学的信息
select st.* from student st join sc s on st.sno=s.sno and s.cno=01
minus
select st.* from student st join sc s on st.sno=s.sno and s.cno=02

                          from    where   group by      having      order by

select * from student
select * from course 课程表
select * from teacher 老师表66
select * from sc; 分数表

11 、查询没有学全所有课程的同学的信息
11.1 学完所有课程的
select * from student where sno in
(select sno from sc group by sno having count(cno)>=3)
11.2 没有学完所有课程的
select * from student where sno not in
(select sno from sc group by sno having count(sno)>=3)
/*12 、查询至少有一门课与学号为’01’ 的同学所学相同的同学的信息
/select distinct st. from student st join sc s on st.sno=s.sno
where s.cno in (select cno from sc where sno=01) and st.sno<>01 order by st.sno
/*13 、查询和’01’ 号的同学学习的课程完全相同的其他同学的信息
/select distinct st. from
(select * from student where sname not in (select sname from student st join sc s on st.sno=s.sno
where s.sno not in (select cno from sc where sno=01))) st join sc s on st.sno=s.sno where s.score is not null;
/14 、查询没学过" 张三" 老师讲授的任一门课程的学生姓名/
select * from student where sno not in (select st.sno from student st join sc s on st.sno=s.sno where s.cno in
(select cno from course co join teacher te on co.tno=te.tno where te.tname=‘张三’));
15 、查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
select st.sno,st.sname,avg(s.score) from student st join sc s on st.sno=s.sno
where s.score<60
group by st.sno,st.sname

16 、检索’01’ 课程分数小于 60 ,按分数降序排列的学生信息
select st.*,s.cno,s.score from student st join sc s on st.sno=s.sno and s.cno=01
where s.score<60
order by s.score desc
/*17 、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
*/
/18 、查询各科成绩最高分、最低 分和平均分:以如下形式显示:课程 ID,课

,课
程 name ,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90
/
/19 、按各科成绩进行排序,并显示排名/
20.1 查询学生的总成绩
select st.sno,st.sname,sum(nvl(s.score,0)) from student st left join sc s on st.sno=s.sno
group by st.sno,st.sname

20.2 查询学生的总成绩并进行排名。
select * from (select st.sno,st.sname,round(sum(nvl(score,0))) zz,row_number()over(order by sum(s.score) desc) px
from student st left join sc s on st.sno=s.sno
group by st.sno,st.sname ) px order by zz desc
21 、查询不同老师所教不同课程平均分从高到低显示
select te.tno,te.tname,round(avg(s.score)) zz from sc s join course co on s.cno=co.cno
join teacher te on co.tno=te.tno
group by te.tno,te.tname
order by zz desc
/22 、查询所有课程的成绩第 2 名到第 3 名的学生信息及该课程成绩 Score 重复时保留名次空缺
Score 重复时合并名次
/
select * from (select sno,cno,score,dense_rank()over (partition by cno order by score desc)px from sc)
where px between 2 and 3 ;

select * from (select sno,cno,score,rank()over
(partition by cno order by score desc)px from sc)
where px between 2 and 3 ;

23 号 、 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名

课 程 名
称,“100-85”,“85-70”,“70-60”,“0-60” 及所占百分比
23.1 号 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名

课 程 名
称,“100-85”,“85-70”,“70-60”,“0-60”
横向显示
纵向显示 1(显示存在的分数段);
select co.cno,co.cname,
sum(case when score between 85 and 100 then 1 else 0 end ) “85-100”,
sum(case when score between 70 and 84 then 1 else 0 end ) “70-84”,
sum(case when score between 60 and 69 then 1 else 0 end ) “60-69”,
sum(case when score <60 then 1 else 0 end ) “0<60”
from course co join sc s on co.cno=s.cno
group by co.cno,co.cname

/*23.2 号 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名

课 程 名
称,“100-85”,“85-70”,“70-60”,"<60"及所占百分比
横向显示
及所占百分比
横向显示
纵向显示 1(显示存在的分数段);

*/
24 、 查询学生的平均成绩并进行排名
select st.sno,st.sname,round(avg(nvl(s.score,0)),2) zz,row_number()over(order by avg(s.score) desc ) px
from student st left join sc s on st.sno=s.sno
group by st.sno,st.sname
order by zz desc

25 、查询各科成绩前三名的记录
25.1 分数重复时保留名次空缺

25.2 分数重复时不保留名次空缺,合并名次
26 、查询每门课程被选修的学生数
27 、查询出只有两门课程的全部学生的学号和姓名
28 、查询男生、女生人数
29 、查询名字中含有" 风" 字的学生信息
31 、查询 1990 年出生的学生名单( 注:Student 表中 Sage 列的类型是 date)
32、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,
按课程编号升序排列
、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,
按课程编号升序排列
33 、查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩
34 、查询课程名称为" 数学" ,且分数低于 60 的学生姓名和分数
35 、查询所有学生的课程及分数情况;
36 、查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数;
37 、查询不及格的课程
38 、查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名;
39 、求每门课程的学生人数
40 、查询选修" 张三" 老师所授课程的学生中,成绩最高的学生信息及其成绩
41 、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
42 、查询每门功成绩最好的前两名
44 、检索至少选修两门课程的学生学号
46 、查询各学生的年龄
47 、查询本周过生日的学生
48 、查询下周过生日的学生
49 、查询本月过生日的学生
50

select * from

select * from student
select * from course 课程表
select * from teacher 老师表66
select * from sc; 分数表

11 、查询没有学全所有课程的同学的信息
11.1 学完所有课程的
11.2 没有学完所有课程的
12 、查询至少有一门课与学号为’01’ 的同学所学相同的同学的信息
13 、查询和’01’ 号的同学学习的课程完全相同的其他同学的信息
14 、查询没学过" 张三" 老师讲授的任一门课程的学生姓名
15 、查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
16 、检索’01’ 课程分数小于 60 ,按分数降序排列的学生信息
17 、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
18 、查询各科成绩最高分、最低分和平均分:以如下形式显示:课程 ID,课

,课
程 name ,最高分,最低分,平均分,及格率,中等率,优良率,优秀率
及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90
19 、按各科成绩进行排序,并显示排名
20 、查询学生的总成绩并进行排名
20.1 查询学生的总成绩
20.2 查询学生的总成绩并进行排名。
21 、查询不同老师所教不同课程平均分从高到低显示
22 、查询所有课程的成绩第 2 名到第 3 名的学生信息及该课程成绩
Score 重复时保留名次空缺
Score 重复时合并名次
23 号 、 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名

课 程 名
称,“100-85”,“85-70”,“70-60”,“0-60” 及所占百分比
23.1 号 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名

课 程 名
称,“100-85”,“85-70”,“70-60”,“0-60”
横向显示
纵向显示 1(显示存在的分数段);
23.2 号 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名

课 程 名
称,“100-85”,“85-70”,“70-60”,"<60"及所占百分比
横向显示
及所占百分比
横向显示
纵向显示 1(显示存在的分数段);
24 、 查询学生的平均成绩并进行排名
25 、查询各科成绩前三名的记录
25.1 分数重复时保留名次空缺
25.2 分数重复时不保留名次空缺,合并名次
26 、查询每门课程被选修的学生数
27 、查询出只有两门课程的全部学生的学号和姓名
28 、查询男生、女生人数
29 、查询名字中含有" 风" 字的学生信息
31 、查询 1990 年出生的学生名单( 注:Student 表中 Sage 列的类型是 date)
32、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,
按课程编号升序排列
、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,
按课程编号升序排列
33 、查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩
34 、查询课程名称为" 数学" ,且分数低于 60 的学生姓名和分数
35 、查询所有学生的课程及分数情况;
36 、查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数;
37 、查询不及格的课程
38 、查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名;
39 、求每门课程的学生人数
40 、查询选修" 张三" 老师所授课程的学生中,成绩最高的学生信息及其成绩
41 、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
42 、查询每门功成绩最好的前两名
44 、检索至少选修两门课程的学生学号
46 、查询各学生的年龄
47 、查询本周过生日的学生
48 、查询下周过生日的学生
49 、查询本月过生日的学生
50

7例题: 现在要求查询出公司的雇员雇佣情况,希望通过数据库可以查找到每个雇员的编号、姓名、基本工资三个信息进行浏览
select empno,ename,sal from emp
现在要求查询公司中所有雇员的职位信息
select ename,job from emp
要求通过数据库查询出所有雇员的编号、雇员姓名和年基本工资、日基本工资,以作为年终奖金的发放标准
select empno,ename,sal,sal/30 from emp
现在公司每个雇员在年底的时候可以领取5000元的年终奖金,要求查询雇员编号、雇员姓名和增长后的年基本工资(不包括提成)。
select empno,ename,sal,(sal*12)+5000 from emp
公司每个月为雇员增加200元的补助金,此时,要求可以查询出每个雇员的编号、姓名、基本年工资(包括在年底的时候可以领取5000元的年终奖金)。
select empno,ename,sal,((sal+200)12)+5000 from emp/一个月的工资+每个月200补助一年12个月+5000年元终奖/
统计出基本工资高于1500的全部雇员信息
select * from emp where sal>1500
现在要求查询出所有基本工资小于等于2000的全部雇员信息
select * from emp where sal<2000
根据之前的查询结果发现SMITH的工资最低,所以现在希望可以取得SMITH的详细资料
select * from emp where ename=‘SMITH’
查询出所有办事员(CLERK)的雇员信息
select * from emp where job=‘CLERK’
查询所有不是办事员的雇员信息
select * from emp where job<>‘CLERK’

select * from emp where comm is null or comm=0

现在要求查询出公司的雇员雇佣情况,希望通过数据库可以查找到每个雇员的编号、姓名、基本工资三个信息进行浏览
现在要求查询公司中所有雇员的职位信息
select empno,ename,job from emp;
要求通过数据库查询出所有雇员的编号、雇员姓名和年基本工资、日基本工资,以作为年终奖金的发放标准
select empno,ename,sal/30, sal12 from emp ;
现在公司每个雇员在年底的时候可以领取5000元的年终奖金,要求查询雇员编号、雇员姓名和增长后的年基本工资(不包括提成)。
select empno,ename,sal
12+5000 from emp;
公司每个月为雇员增加200元的补助金,此时,要求可以查询出每个雇员的编号、姓名、基本年工资(包括在年底的时候可以领取5000元的年终奖金)。
select empno,ename,(sal+200)*12+5000 from emp;
统计出基本工资高于1500的全部雇员信息
select * from emp where sal>1500;
现在要求查询出所有基本工资小于等于2000的全部雇员信息
select * from emp where sal<2000
根据之前的查询结果发现SMITH的工资最低,所以现在希望可以取得SMITH的详细资料
select * from emp where ename=‘SMITH’
查询出所有办事员(CLERK)的雇员信息
select * from emp where job=‘CLERK’
查询所有不是办事员的雇员信息
select * from emp where job<>‘CLERK’
查询出工资范围在1500 ~ 3000(包含1500和3000)的全部雇员信息
select * from emp where sal between 1500 and 3000
查询职位是办事员,并且基本工资高于1200的所有雇员信息
select * from emp where job='CLERK’and sal>1200
查询不是办事员(CLERK),且基本工资大于2000的全部雇员信息
select * from emp where job<>‘CLERK’ and sal>2000

查询每个员工涨20%的工资是多少,显示名字和金额
select ename, sal*(1+0.2)from emp
查看给每个员工工资加500的薪金是多少
select ename,sal+500 from emp;
查询没有提成的员工信息
select * from emp where comm is null or comm=0;/没有提成的员工/
查询有提成的员工所有信息
select * from emp where comm is not null and comm>0;/有提成的员工/
Null和任何值运算,结果为null
select null+10,null-10,null*10,null/10 from emp;
查询提成加500的员工名字和提成
select ename, comm+500,comm from emp;
找出有奖金的员工的不同工作,不要重复数据
select distinct job from emp where comm is not null and comm>0;
查询没有提成且工资大于2000的员工信息
select * from emp where (comm is null or comm=0) and sal>2000
找出没有奖金或者奖金低于 1000 的员工信息
select * from emp where (comm is null or comm=0)or comm<1000
查询员工编号在7788或者7499或者是 7369的员工信息
select * from emp where empno in(7788,7499,7369);
查询员工姓名是SMITH或者是SCOTT的人员信息
select * from emp where ename in(‘MANAGER’,‘SCOTT’);
习题
找出部门 10 中既不是经理(MANAGER)也不是普通员工(CLERK)的信息,
select * from emp where deptno=10 and job not in (‘MANAGER’,‘CLERK’)
找出部门 20 中既不是经理(MANAGER)也不是普通员工(CLERK)的信息,而且工资大于等于 2000 的员工
select * from emp where deptno=20 and job not in (‘MANAGER’,‘CLERK’)and sal>2000;
例题:现在查询出雇员姓名是S开头的全部雇员信息
select * from emp where ename like ‘%S%’
select * from emp where ename like ‘%S’;
select * from emp where ename like ‘S%’;
select * from emp where ename like ‘_S%’
习题:
查询名字以S结尾和部门是20的员工编号、入职日期、部门编号 ,提成
select empno,hiredate,mgr,comm from emp where ename like’%S’ and (deptno=20)
查询员工工资大于等于2000 或者部门是20的员工姓名、入职日期、
select ename,hiredate from emp where deptno=20 or sal>=2000
查询工资在1000到2000之间的员工的姓名和工资
select ename,sal from emp where sal between 1000 and 2000
查询员工叫KING的工资、提成、部门
select sal,comm,deptno from emp where ename=‘KING’
查询员工姓名的第三个字母是A的员工姓名
select * from emp where ename like (’__A%’)
显示提成(COMM)收入比工资(SAL)高的员工的部门编号、名字、入职日期
select empno,ename,hiredate,sal from emp where sal<comm
查询部门20的详细信息,地址,位置

显示10 号部门的所有经理(‘MANAGER’)或者20 号部门的所有职员(‘CLERK’)的员工编号、职位、薪金、部门编号
select empno,job,sal,mgr from emp where( deptno=10 and job=‘MANAGER’) or deptno=20 and job=‘CLERK’
查询不是10部门的员工或者名字带S开头的姓名的信息
select * from emp where ename like’%S’or deptno<>10

/练习题/
测试题:
1.查询20部门的员工信息和上级编号是7788的员工编号、姓名、上级编号和部门
select empno,ename,mgr,deptno from emp where mgr in 7788 and deptno=20
2.查询员工名字叫SCOTT的这个人的所以信息
select * from emp where ename=‘SCOTT’
3.查询工资大于1000和部门是30的员工的编号,姓名,工资
select empno,ename,sal from emp where sal>1000 and deptno=30
4.查询员工叫KING的工资、提成、部门
select sal,comm,/ deptno from emp where ename=‘KING’
/5.查询员工姓名的第三个字母是A的员工或者编号第二位的3的员工编号、姓名和部门/
select * from emp
6.查询职位有哪些(去重),显示职位
select distinct job from emp
7.查询职位(JOB)为’PRESIDENT’的员工的工资和姓名
select sal,ename from emp where job=‘PRESIDENT’
8.查询没有提成的员工和部门是20的员工编号、姓名、日期和提成
select empno,ename,hiredate,comm from emp where deptno=20and comm is null or comm=0 /111/
/9.查询部门40的部门名称,位置(dept表)/

10.显示10 号部门的所有经理(‘MANAGER’)和20 号部门的所有职员(‘CLERK’)的详细信息
/*select * from emp where (deptno=10 and job=‘MANAGER’) or deptno=20 and ename=‘CLERK’
*//*11.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息
*/
12.查询以S结尾的员工姓名及月收入
select * from emp where ename like’%S’
13.查询工资在1000到2000之间的员工的姓名和工资
select ename,sal from emp where sal between 1000 and 2000
14.查询工资大于2000或者部门是20的员工的编号,姓名,工资
select empno,ename,sal,deptno from emp where sal>2000 or deptno=20
15.查询编号以7开头和以8结尾的员工编号、姓名、部门编号
select empno,ename,deptno from emp where empno like ‘7%8’
16.查询编号第四位是8的员工信息,显示编号、姓名和薪金
select empno,ename,sal from emp where empno like ‘___8%’
17.查询名字第三位是A的员工编号、上级编号、日期和部门
select ename,mgr,hiredate,deptno from emp where ename like ‘__A%’

select empno||job from emp --拼接

/第二课时总结/

查询名字以S结尾和部门是20的员工编号、入职日期、部门编号
select empno,hiredate,deptno from emp where ename like ‘S%’ and deptno=20
查询员工工资大于等于2000 或者部门是20的员工姓名、入职日期、提成
select ename,hiredate,comm from emp where sal>=2000 or deptno=20
查询工资在1000到2000之间的员工的姓名和工资
select ename,sal from emp where sal between 1000 and 2000
查询员工叫KING的工资、提成、部门
select ename, sal,comm,deptno from emp where ename=‘KING’
查询员工姓名的第三个字母是A的员工姓名
select * from emp where ename like ‘__A%’
显示提成(COMM)收入比工资(SAL)高的员工的部门编号、名字、入职日期
select empno,ename,hiredate from emp where comm>sal
显示佣金(COMM)收入比工资(SAL)高的员工的详细信息
select * from emp where sal<comm
查询部门20的详细信息,地址,位置

显示10 号部门的所有经理(‘MANAGER’)或者20 号部门的所有职员(‘CLERK’)的员工编号、职位、薪金、部门编号
查询不是10部门的员工或者名字带S开头的姓-
名的信息
select empno,job,sal,deptno from emp where (deptno=10 and job=‘MANAGER’) or deptno=20 and ename=‘CLERK’
显示10 号部门的所有经理(‘MANAGER’)和20 号部门的所有职员(‘CLERK’)的详细信息
select deptno, job,ename from emp where (deptno=10 and job=‘MANAGER’) and deptno=20 and ename=‘CLERK’

select * from emp where ename like’S%'and deptno<>10

/第三课时/
/查看当前日期/
select sysdate from dual
/显示用户/
select user from dual
/显示总行数/
select count() from dual
/运算方式/
select 7
9*10-10 from dual
/查询工资信息,按照工资从低到高顺序进行排列/
select * from emp order by sal
/查询工资信息,按降序排列显示所以信息/
select * from emp order by sal desc
/查询20部门员工的所有信息按薪金降序排序/
select * from emp where deptno=20 order by sal desc
/显示雇员姓名、入职日期、部门编号,根据其服务年限,将最老的雇员排在最前面/
select ename,hiredate,deptno from emp order by hiredate

/* 第四课时*/
select * from a
create table a (empno number(30),ename varchar2(30),job varchar2(30))
insert into a (empno,ename,job) values (1,‘王飞’,‘manager’)
insert into a (empno,ename,job) values (2,‘小明’,‘chishi’)
insert into a (empno,ename,job) values (3,‘李四’,‘henie’)
insert into a (empno,ename,job) values (4,‘张三’,‘maidong’)
insert into a (empno,ename,job) values (5,‘董伟’,‘kele’)
update a set ename='张伟民’where empno=2
alter table a add (mgr number(30))
update a set mgr=3 where empno=1
delete from a where mgr=3

select * from q /执行表格q/
create table q (empno number(30),ename varchar2(30),job varchar2(30))/创建表格q 加表结构/
insert into q (empno,ename,job)values (1,‘小明’,‘manager’) /插入/
insert into q (empno,ename,job)values (2,‘小红’,‘maishi’) /插入/
update q set job='manager’where empno=1/更改表内数据/
delete from q where empno=2 /删除一行/
alter table q add(mgr number(30))/增加一列/
alter table q modify(mgr varchar2(30))/修改成字符串模式/
update q set mgr=‘王’ where empno=1 /列表插值/
alter table q drop column mgr/删除一列/
varchar2 /字符串类型/ number/数字类型/ date /日期类型/ int /整数类型/

select * from f
create table f (empno number(30),ename varchar2(30),job varchar2(30))
insert into f values(1,‘张三’,‘办事处’)/插值/
insert into f values(2,‘李四’,‘门卫’)
update f set ename=‘小明’ where empno=1/更改表内数据/
delete from f where empno=1/删除一行/
alter table f add (mgr number(30))/增加一列/
alter table f modify (mgr varchar2(30))/写改成字符串模式/
update f set mgr=‘王’ where empno=2/列表插值/
alter table f drop column enam/删除一列/

select * from wf
create table wf (empno number(20),ename varchar(20),sal number(20))
insert into wf values(1,‘王坤华’,2)
insert into wf values(2,‘孙铭浩’, 3)
update wf set sal=9999 where empno=1
update wf set sal=9999 where empno=2

查询每个员工的编号、姓名、职位、基本工资、部门名称、部门位置信息
select e.empno,e.ename,e.job,e.sal,
d.deptno,
d.loc
from emp e join dept d on e.deptno=d.deptno
查询出每个员工的编号、姓名、雇佣日期、基本工资、工资等级
select e.empno,e.ename,e.hiredate,e.sal,s.grade
from emp e join salgrade s on e.sal between s.losal and s.hisal
查询出每个员工的姓名、职位、基本工资、部门名称、工资等级
select e.ename,e.job,e.sal,d.dname,s.grade
from emp e join dept d on e. deptno=d.deptno
join salgrade s on e.sal between s.losal
and s.hisal
select * from emp e join dept d on e.deptno=d.deptno
join salgrade s on e.sal between losal and hisal
查询出每个雇员的编号、姓名及上级领导的编号、姓名
select e.ename,e.empno,e.ename,m.mgr,m.ename
from emp e,emp m where e.mgr=m.empno

查询雇佣的雇员编号、姓名、雇佣日期、职位、领导姓名、月工资、年工资(基本工资+提成)、
工资等级、部门编号、部门姓名、部门地址、,同时要求这些员工的月工资在1500~3500之间,
最后的结果按照年工资进行降序排列,工资相同,按照雇佣日期.

select e.empno,e.ename,e.hiredate,e.job, e.sal,
m.mgr,
(nvl(e.comm,0)+e.sal)*12 NX,
s.grade,
d.deptno,d.dname,d.loc
from emp e join emp m on e.mgr=m.empno
join dept d on e.deptno=d.deptno
join salgrade s on e.sal between s.losal and s.hisal
and e.sal between 1500 and 3500
order by sal

select * from emp e right join dept d on e.deptno=d.deptno/范例:实现右外连接/

select * from emp e left outer join dept d on e.deptno=d.deptno/范例:实现左外连接/

select * from emp e full join dept d on e.deptno=d.deptno/范例:实现全外连接/

select * from emp where rownum<=5;

select rownum,a. * from emp a
select rownum,a.* from emp a order by sal;
select rownum,a.* from (select * from emp order by sal) a
按照工资排序,查找出工资最低的后两位员工信息
select rownum,a.* from (select * from emp order by sal) a where rownum<=2;
查找出工资最高的第4到第6名员工信息
select * from (select rownum r,a.* from (select * from emp order by sal desc) a) where r between 4 and 6
查询30部门 工资最高的低2到第4名人员信息
select * from
(select rownum r,a.* from
(select * from emp order by sal desc)a)
where r between 4 and 6

查找出工资最高的第4到第6名员工信息
select * from
(select rownum r,a.* from(select * from emp order by sal desc)a)
where r>=4 and r<=6

查询出每个雇员的到今天为止的雇佣天数、以及十天前每个雇员的雇佣天数
select sysdate-hiredate,sysdate-10-hiredate from emp

查询距离今天为止3天之后以及3天之前的日期
select sysdate+3 ,sysdate-3 from dual

按照工资排序,查找出工资最低的后两位员工信息
select rownum,a.* from (select * from emp order by sal)a where rownum between 1 and 2
查询30部门 工资最高的低2到第4名人员信息
select * from (select rownum r,a.from (select * from emp where deptno=30 order by sal desc)a) where r between 2 and 4
查找出工资最高的第4到第6名员工信息
select rownum,a.
from (select * from emp order by sal desc)a where rownum between 4 and 6

查询出每个雇员的到今天为止的雇佣天数、以及十天前每个雇员的雇佣天数
select trunc( sysdate-hiredate),trunc (sysdate-10-hiredate) from emp
要求显示所有雇员在被雇佣三个月之后的日期
select sysdate, ename, job, sal, add_months(hiredate,3)from emp
查询emp表,入职日期的下个星期一是多少号
select sysdate,next_day(hiredate,‘星期一’) 下个星期一 from emp
查询所有是在其雇佣所在月的倒数第三天被公司雇佣的完整雇员信息
select * from emp where hiredate+2=last_day(hiredate)
查询出每个雇员的编号、姓名、雇佣日期、雇佣的月数及年份
select empno,ename,hiredate,trunc(months_between(sysdate,hiredate)),trunc(months_between(sysdate,hiredate)/12)from emp
查询出所有在每年2月份雇佣的雇员信息
select * from emp where to_char(hiredate,‘mm’)=‘02’
现在要求将每个雇员的雇佣日期进行格式化显示,要求所有的雇佣日期可以按照“年-月-日”的形式显示,
也可以将雇佣的年、月、日拆开分别显示
select empno,ename,job,hiredate, to_char(hiredate,‘yyyy-mm-dd’),
to_char(hiredate,‘yyyy’)年,
to_char(hiredate,‘mm’)月,
to_char(hiredate,‘dd’)日
from emp

要求显示所有雇员在被雇佣三个月之后的日期
select sysdate,add_months(hiredate,3)from emp
查询emp表,入职日期的下个星期一是多少号
select empno,ename,job,hiredate,next_day(hiredate,‘星期一’)from emp
查询所有是在其雇佣所在月的倒数第三天被公司雇佣的完整雇员信息
select * from emp where hiredate+2=last_day(hiredate)
查询出每个雇员的编号、姓名、雇佣日期、雇佣的月数及年份
select empno,ename,hiredate,trunc(months_between(sysdate,hiredate)),trunc(months_between(sysdate,hiredate)/12)from emp
查询出所有在每年2月份雇佣的雇员信息
select * from emp where to_char(hiredate,‘mm’)=‘02’
现在要求将每个雇员的雇佣日期进行格式化显示,要求所有的雇佣日期可以按照“年-月-日”的形式显示,
也可以将雇佣的年、月、日拆开分别显示
select empno,ename,job,hiredate, to_char(hiredate,‘yyyy-mm-dd’),
to_char(hiredate,‘yyyy’)年,
to_char(hiredate,‘mm’)月,
to_char(hiredate,‘dd’)日
from emp

select hiredate,next_day(hiredate,‘星期一’)from emp

Add_months(X,Y) /指定的日期上加如指定的月数,求出新的日期/
NEXT_DAY/(日期,星期数)要想知道下一个“星期一”或是“星期日”的具体日期/
LAST_DAY/(日期)求得指定日期所在月的最后一天日期/
MONTHS_BETWEEN/(日期1,日期2)此函数的功能是取得两个日期之间的所经过的月份间隔数/
To_char()函数
To_date()/函数使用TO_DATE()函数 SELECT TO_DATE(‘19790919’,‘YYYY-MM-DD’) FROM dual ;/
To_number()/函数使用TO_NUMBER()函数将字符串变为数字/

/现在雇员表中的工作有以下几种:
? CLERK:业务员
? SALESMAN:销售人员
? MANAGER:经理
? ANALYST:分析员
? PRESIDENT:总裁
/
要求可以查询雇员的姓名、职位、基本工资等信息,但是要求将所有的职位信息都替换为中文显示。
select ename,sal,decode(job,‘CLERK’,‘业务员’,
‘SALESMAN’,‘销售人员’,
‘MANAGER’,‘经理’,
‘ANALYST’,‘分析员’,
‘PRESIDENT’,‘总裁’)job
from emp
显示emp表部门,当等于10部门的时候,显示‘十部门’,20部门的时候显示‘二十部门’,
30部门的时候显示‘三十部门’,显示员工编号,姓名,部门
select empno,ename,deptno,
case when deptno=10 then ‘十部门’
when deptno=20 then ‘二十部门’
when deptno=30 then ‘三十部门’
end 部门
from emp

select empno,ename,deptno,
decode(deptno,10,‘十部门’,
20,‘二十部门’,
30,‘三十部门’)deptno
from emp
显示每个雇员的姓名、工资、职位,同时显示新的工资
(新工资的标准为:办事员增长10%、销售人员增长20%、经理增长30%、其他职位的人增长50%)
select ename,sal,
case when job=‘CLERK’ then sal1.1
when job=‘SALESMAN’ then sal
1.2
when job=‘MANAGER’ then sal1.3
else sal
1.5
end 新工资
from emp

如果是1的时候,显示‘一等级’,2的时候显示‘二等级’以此类推到4级,
剩下的结果都显示‘最高级’,显示等级和最低工资和最高工资
select hisal,losal,
case when grade=1 then ‘一等级’
when grade=2 then ‘二等级’
when grade=3 then ‘三等级’
when grade=4 then ‘四等级’
else ‘最高级’
end 等级
from salgrade

查询工资,当工资在1000以下的时候显示低工资,当工资在1001到2000的时候显示中等工资,其他显示高工资
select empno,ename,
case when sal<1000 then ‘低工资’
when sal between 1001 and 2000 then ‘中等工资’
else ‘最高工资’
end 工资
from emp

/新课件/
统计出每个部门的人数
select count(deptno),count(empno) from emp
统计出每种职位的最低和最高工资
select job,min(sal),max(sal) from emp group by job
求出每个部门的平均工资最高的工资
select max(avg(sal))from emp group by deptno
查询每个部门的名称、部门人数、部门平均工资、平均服务年限
select d.dname 部门名称,count(e.empno)部门人数,round(avg(e.sal),2) 部门平均工资,
round(avg(months_between(sysdate,hiredate)/12),2) 平均服务年限 from emp e
right join dept d on e.deptno=d.deptno
group by d.dname
查询出公司各个工资等级,雇员的雇佣数量、平均工资。
select s.grade 工作等级,count(e.empno) 雇佣数量,avg(e.sal)平均工资 from emp e
join salgrade s on e.sal between s.losal and s.hisal
group by s.grade

统计出有提成与没有提成的雇员的平均工资、平均雇佣年限、雇员人数。
select comm,avg(sal), round(avg(months_between(sysdate,hiredate)/12),2)雇佣年限,
count(empno)雇员人数
from emp
group by comm
现在要求查询出每个部门的详细信息。
(包含部门编号、部门名称、位置、平均工资、总工资、最高工资、最低工资、部门人数)
select d.deptno,d.dname,d.loc,avg(sal),sum(sal),max(sal),min(sal),count(empno) from emp e
right join dept d on e.deptno=d.deptno
group by d.deptno,d.dname,d.loc
查询出所有平均工资大于2000的职位信息、平均工资、雇员人数
select job,avg(sal),count(empno)
from emp
group by job
having avg(sal)>2000

列出至少有四个员工的所有部门编号、部门名称,并统计出这些部门的平均工资、最低工资、最高工资
select d.deptno,d.dname,avg(e.sal),min(e.sal),max(e.sal) from emp e
join dept d on e.deptno=d.deptno
group by d.deptno,d.dname
having count(e.empno)>=4

显示非销售人员(SALESMAN)工作名称以及从事同一工作雇员的月工资的总和,
并且要满足从事同一工作的雇员的月工资合计大于$5000, 输出结果按月工 资的合计升序排列
select job,sum(sal)月工资 from emp
where job<>‘SALESMAN’
group by job
having sum(sal)>5000
order by sum(sal) desc

                          from    where   group by      having      order by

查询公司之中工资最低的雇员的完整信息
select * from emp where sal=(select min(sal) from emp )
查询出基本工资比ALLEN低的全部雇员信息

select * from emp where sal<(select sal from emp where ename=‘ALLEN’)
查询基本工资高于公司平均薪金的全部雇员信息

select * from emp where sal>(select avg(sal) from emp)
查找出与ALLEN从事同一工作,并且基本工资高于雇员编号为7521的全部雇员信息

select * from emp where
sal>(select sal from emp where empno=7521)
and
job=(select job from emp where ename=‘ALLEN’)
查询与SCOTT从事同一工作且工资相同的雇员信息(不包括scott)

select * from emp
where (job,sal)=(select job,sal from emp where ename=‘SCOTT’) and ename<>‘SCOTT’

查询与雇员7566从事同一工作且领导相同的全部雇员信息(不包括7566)
select * from emp where (job,mgr)=(select job,mgr from emp where empno=7566) and empno<>7566

查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN)
select * from emp
where (job,to_char(hiredate,‘yyyy’))=(select job,to_char(hiredate,‘yyyy’) from emp where ename=‘ALLEN’)

/查询出与每个部门中最低工资的全部雇员信息/
select * from emp where sal in(select min(sal) from emp group by deptno)
/查询出不与每个部门中最低工资相同的全部雇员信息/
select * from emp where sal not in(select min(sal) from emp group by deptno)
/查询部门编号、雇员人数、平均工资,并且要求这些部门的平均工资高于公司平均薪金]/
select deptno,count(empno),avg(sal) from emp
group by deptno
having avg(sal)>(select avg(sal) from emp)
/*查询出平均工资最高的部门名称及平均工资
*/
select d.dname,avg(e.sal) from emp e
join dept d on e.deptno=d.deptno
group by d.dname
having avg(sal)=(select max(avg(sal)) from emp group by deptno)

/要求查询出每个部门的编号、名称、位置、部门人数、平均工资/
select d.deptno,d.dname,d.loc,t.count,t.avg
from dept d,(select deptno,count(empno) count,avg(sal) avg from emp group by deptno) t
where d.deptno=t.deptno

/查询出所有在部门“SALES”(销售部)工作的员工的编号、姓名、基本工资、奖金、职位、雇佣日期、部门的最高和最低工资。/
select e.empno,e.ename,e.sal,e.comm,e.hiredate,t.max,t.min from dept d,emp e,
(select deptno,max(sal) max,min(sal) min from emp group by deptno) t
where e.deptno=d.deptno
and e.deptno=t.deptno
and dname=‘SALES’

查询出所有薪金高于公司平均薪金的员工编号、姓名、基本工资、职位、雇佣日期,
所在部门名称、位置,上级领导姓名,公司的工资等级,部门人数、平均工资、平均服务年限。
select e.empno,e.ename,e.sal,e.job,e.hiredate,
d.dname,d.loc,
m.ename,
s.grade,t.count,t.avg,t.r from emp e,dept d,emp m,salgrade s,
(select deptno,count(empno) count,avg(sal) avg,avg(months_between(sysdate,hiredate)/12) r from emp group by deptno) t
where e.deptno=d.deptno
and e.mgr=m.empno
and e.deptno=t.deptno
and e.sal between s.losal and s.hisal
and e.sal>(select avg(sal) from emp )

/列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。/

/出公司各个部门的经理(假设每个部门只有一个经理,job为“MANAGER”)
的姓名、薪金、部门名称、部门人数、部门平均工资。*/
select e.ename,e.sal,d.dname,t.count,t.avg from emp e,dept d,
(select deptno,count(empno) count,avg(sal) avg from emp group by deptno) t
where e.deptno=d.deptno
and e.deptno=t.deptno
and job=‘MANAGER’

查询每个部门的编号、名称、位置、部门平均工资、人数
with a AS(
select deptno,round)

查询每个部门工资最高的雇员编号、姓名、职位、雇佣日期、最高工资、部门编号、部门名称,显示的结果按照部门编号进行排序

select * from a
create table a (empno number(30),ename varchar2(30),job varchar2(30),hiredate date)
insert into a(empno,ename,job,hiredate) values (1,‘小红’,‘MANAGER’,to_date(‘1990-1-23’,‘yyyy-mm-dd’))
insert into a(empno,ename,job,hiredate) values (2,‘张四’,‘CHISHI’,to_date(‘1992-3-14’,‘yyyy-mm-dd’))
update a set ename=‘王飞’ where empno=1
delete from a where empno=1

alter table a add(mgr number(30))
alter table a modify(mgr varchar2(30))
update a set mgr=‘傻子’ where empno=1
alter table a drop column mgr

查询出所有薪金高于公司平均薪金的员工编号、姓名、基本工资、职位、雇佣日期,所在部门名称、
位置,上级领导姓名,公司的工资等级,部门人数、平均工资、平均服务年限。
select e.empno,e.sal,e.job,e.hiredate,
d.dname,d.loc,
m.ename,
s.grade,t.count,t.r from emp e,emp m,dept d,salgrade s,
(select deptno,count(empno) count,avg(months_between(sysdate,hiredate)/12) r from emp group by deptno) t
where e.deptno=d.deptno
and e.mgr=m.empno
and e.deptno=t.deptno
and e.sal between s.losal and s.hisal
and e.sal>(select avg(sal) from emp)
查询部门编号、雇员人数、平均工资,并且要求这些部门的平均工资高于公司平均薪金
select deptno,count(*),avg(sal) from emp group by deptno
having avg(sal)>(select avg(sal) from emp)

列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。
select e.empno,e.ename,e.sal,
d.dname,
m.ename, t.count from emp e,emp m,dept d,
(select deptno,count(empno) count from emp group by deptno) t
where e.deptno=d.deptno
and e.mgr=m.empno
and e.deptno=t.deptno
and e.sal>(select sal from emp where ename in(‘ALLEN’,‘CLARK’))
显示非销售人员(SALESMAN)工作名称以及从事同一工作雇员的月工资的总和,
并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列
select job,sum(sal) from emp
where job<>'SALESMAN’group by job
having sum(sal)>5000 order by sum(sal) desc

SELECT deptno , ename, sal ,
SUM(sal) OVER () sum
FROM emp ;

SELECT deptno , ename, sal , comm ,
RANK() OVER (ORDER BY comm DESC NULLS LAST) rk ,
SUM(sal) OVER (ORDER BY comm DESC NULLS LAST) SUM
FROM emp

查询雇员编号是7369的雇员姓名、职、基本工资、部门编号、部门的人数、平均工资、最高工资、最低工资、总工资

查询每个部门中各个职位的总工资
SELECT deptno , job , SUM(sal)
FROM emp
GROUP BY deptno , job ;

统计出有提成与没有提成的雇员的平均工资、平均雇佣年限、雇员人数。
select comm,avg(sal),round(avg(months_between(sysdate,hiredate)/12)),count(empno) from emp group by comm

显示非销售人员(SALESMAN)工作名称以及从事同一工作雇员的月工资的总和,
并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列
select job,sum(sal) from emp
where job<>‘SALESMAN’
group by job
having sum(sal)>5000
order by sum(sal) desc

查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN)
select * from emp
where (job,to_char(hiredate,‘yyyy’))=(select job,to_char(hiredate,‘yyyy’) from emp where ename=‘ALLEN’)

列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。

select e.empno,e.ename,e.sal,
d.dname,
m.ename,r.count
from emp e,dept d,emp m,
(select deptno,count(empno) count from emp group by deptno) r
where e.mgr=m.empno(+)
and e.deptno=d.deptno
and e.deptno=r.deptno
and e.sal>any(select sal from emp where ename in (‘ALLEN’,‘CLAEN’))

select e.empno,e.ename,e.sal,
d.dname,
m.ename, r.部门人数
from emp e,emp m,dept d,
(select deptno,count(empno) 部门人数 from emp group by deptno) r
where e.mgr=m.empno(+)
and e.deptno=d.deptno
and e.deptno=r.deptno
and e.sal>any(select sal from emp where ename in (‘ALLEN’,‘CLARK’) )
查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN)
select * from emp where
(job,to_char(hiredate,‘yyyy’))=(select job,to_char(hiredate,‘yyyy’) from emp where ename=‘ALLEN’)

列出薪金比“ALLEN”或“CLARK”多的所有员工的编号、姓名、基本工资、部门名称、其领导姓名,部门人数。
select e.empno,e.ename,e.sal,
d.dname,
m.ename,r.count(empno)) from emp e,dept d,emp m,
(select deptno, count(empno) from emp group by deptno) r
where e.deptno=d.deptno
and e.mgr=m.empno(+)
and e.deptno=r.deptno
and e.sal>any(select sal from emp where ename in(‘ALLEN’,‘CLAKE’))

select e.empno, e.ename, e.sal, d.dname, n.ename, m.部门人数
from emp e,
emp n,
dept d,
(select deptno, count(empno) 部门人数 from emp group by deptno) m
where e.mgr = n.empno(+)
and e.deptno = d.deptno
and e.deptno = m.deptno
and e.sal > any
(select sal from emp where ename in (‘ALLEN’, ‘CLARK’))

查询每个部门中各个职位的总工资
select deptno,
sum(decode(job,‘CLERK’,sal,0)),
sum(decode(job,‘SALESMAN’,sal,0)),
sum(decode(job,‘MANAGER’,sal,0)),
sum(decode(job,‘ANAESMAN’,sal,0)),
sum(decode(job,‘ANALYST’,sal,0))
from emp
group by deptno

/50道题/
/*
Drop Table student;–学生表 sno学号 sname姓名 sage年龄 ssex性别
Drop Table sc; --成绩表 sno学号 cno学科号 score成绩
Drop Table teacher;–教师表 tno教师号 tname教师姓名
Drop Table course; --课程表 tno教师号 cno学科号 cname学科
*/

select * from student
select * from sc
select * from teacher
select * from course

/1、查询’01’ '02’课程分数/
1.1 、查询同时存在"01" 课程和"02"课程的情况
select st.*,
s.score,c.score
from student st join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02

1.2 、查询必须存在"01" 课程,“02” 课程可以没有的情况
select st.,
s.score,c.score
from student st join sc s on st.sno=s.sno and s.cno=01
left join sc c on st.sno=c.sno and c.cno=02
/2、查询’01’课程比’02’课程成绩低的学生的信息及课程分数/
2.1 、查询同时’01’ 课程比’02’课程分数低的数据
select st.
,s.score,c.score
from student st join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02
where s.score<c.score
2.2 、查询同时’01’ 课程比’02’ 课程分数低或’01’ 缺考的数据
select st.*,s.score,c.score
from student st left join sc s on st.sno=s.sno and s.cno=01
join sc c on st.sno=c.sno and c.cno=02
where nvl(s.score,0)<c.score
3 、查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
select st.sno,st.sname,round(avg(score),2) from student st
join sc s on st.sno=s.sno
group by st.sname,st.sno
having avg(score)>=60
order by st.sno
/4、查询平均成绩小于 60 分的同学的学生编号和学生姓名和平均成绩/
4.1 、有考试成绩,且小于 60
select st.sno,st.sname,avg(score) from student st
join sc s on st.sno=s.sno
group by st.sno,st.sname
having avg(score)<60
order by st.sno
4.2 包括没有考试成绩的数据
select st.sno,st.sname,round(avg(score),2) from student st
left join sc s on st.sno=s.sno
group by st.sno,st.sname
having round(avg(score),2)<60
order by st.sno
/5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩/
5.1 、查询所有成绩的(不含缺考的)。
select st.sno,st.sname,count(c.cno),sum(c.score) from student st
join sc c on st.sno=c.sno
group by st.sno,st.sname
order by st.sno
5.2 、查询所有成绩的( 包括缺考的) 。
select st.sno,st.sname,count(c.cno),sum(c.score) from sc c
right join student st on st.sno=c.sno
group by st.sno,st.sname
order by st.sno

6 、查询" 李" 姓老师的数量 (有几个老师姓李)
select count(tname) from teacher where tname like’李%’
7、哪些学生上过张三(老师)的课
select * from student st join sc s on st.sno=s.sno
join course c on c.cno=s.cno
join teacher t on c.tno=t.tno
where tname=‘张三’

8、哪些学生没上过张三(老师)的课
select * from student where sname not in (select st.sname from student st join sc s on st.sno=s.sno
join course c on s.cno=c.cno
join teacher t on c.tno=t.tno
where tname=‘张三’)
9、查询 ‘01’ ‘02’ 都学过的同学的信息
select st.* from student st join sc s on st.sno=s.sno and s.cno=‘01’
join sc c on st.sno=c.sno and c.cno=‘02’
10 、查询学过编号为’01’ 但是没有学过编号为’02’ 的课程的同学的信息
select st.* from student st join sc s on st.sno=s.sno and s.cno=‘01’
left join sc c on st.sno=c.sno and c.cno=‘02’
where c.cno is null

11.1 学完所有课程的

11.2 没有学完所有课程的

12 、查询至少有一门课与学号为’01’ 的同学所学相同的同学的信息

13 、查询和’01’ 号的同学学习的课程完全相同的其他同学的信息

14 、查询没学过" 张三"老师讲授的任一门课程的学生姓名

15 、查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩

16 、检索’01’ 课程分数小于 60 ,按分数降序排列的学生信息

17 、按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

18 、查询各科成绩最高分、最低分和平均分:以如下形式显示:课程 ID,课
程,课程 name ,最高分,最低分,平均分,及格率,中等率,优良率,优秀率

19 、按各科成绩进行排序,并显示排名

20.1 查询学生的总成绩

20.2 查询学生的总成绩并进行排名

21 、查询不同老师所教不同课程平均分从高到低显示

22 、查询所有课程的成绩第 2 名到第 3 名的学生信息及该课程成绩

23.1 号 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名
称课程名称,“100-85”,“85-70”,“70-60”,“0-60”

23.2 号 统 计 各 科 成 绩 各 分 数 段 人 数 : 课 程 编 号 , 课 程 名
称课程名称,“100-85”,“85-70”,“70-60”,"<60"及所占百分比

24 、 查询学生的平均成绩并进行排名

25.1 分数重复时保留名次空缺

25.2 分数重复时不保留名次空缺,合并名次

26 、查询每门课程被选修的学生数

27、查询出只有两门课程的全部学生的学号和姓名

28、查询男生、女生人数

29 、查询名字中含有" 风" 字的学生信息

31 、查询 1990 年出生的学生名单( 注:Student 表中 Sage 列的类型是 date)

32、查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,
按课程编号升序排列

33 、查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩

34 、查询课程名称为" 数学" ,且分数低于 60 的学生姓名和分数

35 、查询所有学生的课程及分数情况;

36 、查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数;

37 、查询不及格的课程

38 、查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名;

39 、求每门课程的学生人数

40 、查询选修" 张三" 老师所授课程的学生中,成绩最高的学生信息及其成绩

41 、查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩

42、查询每门功成绩最好的前两名

44、检索至少选修两门课程的学生学号

46、查询各学生的年龄

47 、查询本周过生日的学生

48 、查询下周过生日的学生

49 、查询本月过生日的学生
50 、查询下月过生日的学生


declare
–定义变量
v_num number;

begin
–给变量赋值
v_num:=1000;
–输出
dbms_output.put_line(‘v_num的变量是内容是’||v_num);

end;


–编写PL/SQL块,输入一个雇员编号,而后取得指定的雇员姓名
DECLARE
v_empno NUMBER;
v_ename VARCHAR(10);
BEGIN
v_empno:=&empno;
SELECT ename INTO v_ename FROM emp WHERE empno=v_empno;
dbms_output.put_line(‘输入的编号为’||v_empno||‘姓名是’||v_ename);
END;


–编写PL/SQL块,输入一个雇员编号,输出这个人的名字和年薪?
DECLARE
v_empno NUMBER;
v_ename VARCHAR(10);
v_sal NUMBER;
BEGIN
v_empno:=&empno;
SELECT ename,(sal+NVL(comm,0))*12 INTO v_ename,v_sal FROM emp WHERE empno=v_empno;
dbms_output.put_line(‘输入的员工编号是’||v_empno||‘姓名是’||v_ename||‘薪资是’||v_sal);
END;


–Dept表:输入部门编号显示地址和部门名称
declare
–定义变量
v_deptno number;
v_loc varchar2(100);
v_dname varchar2(100);
begin
–键盘输入
v_deptno := &deptmo;
–获取数据,如果有的话就赋值给变量
select deptno, loc, dname into v_deptno, v_loc, v_dname from dept where deptno = v_deptno;
–打印输出
dbms_output.put_line(‘部门编号为:’ || v_deptno || ‘,地址:’ || v_loc || ‘,部门名称:’ ||
v_dname);
end;


declare
–定义一个常量赋值(不可变的量)
v_jiegouA constant number not null :=100;

begin
dbms_output.put_line(‘sada的内容’||v_jiegouA);

end;


–记录性变量
declare

v_deptno dept%rowtype;

begin

select * into v_deptno from dept where deptno = 20;
dbms_output.put_line(‘部门编号’ || v_deptno.deptno || ‘,名称’ ||
v_deptno.dname || ‘,位置’ || v_deptno.loc);

end;


declare
v_wz varchar2(30) := ‘www.gouzhengjiaoyv.cn’;
v_sum1 number := 30;
v_sum2 number := 19;

begin
if v_sum1 > v_sum2 then
dbms_output.put_line(‘第一个数比第二个大’);
end if;

if v_wz like ‘%jiaoyv%’ then
dbms_output.put_line(‘网址中包含jiaoyv单词’);
end if;

end;


declare
v_count number;
begin
select count(empno) into v_count from emp;
if v_count > 10 then
dbms_output.put_line(‘emp表中的数据大于10条’);
elsif v_count < 10 then
dbms_output.put_line(‘emp表中的数据小于10条’);
else
dbms_output.put_line(‘emp表中的数据等于10条’);
end if;
end;


–查询emp表的工资,输入员工编号,根据编号查询工资,如果工资高于3000元,则显示高工资,
–如果工资大于2000元,则显示中等工资,如果工资小于等于2000元,则显示低工资。

declare
v_empno number;
v_sal number;
begin
–键盘输入
v_empno:=&empno;
select sal into v_sal from emp where empno=v_empno;

if v_sal>3000 then
dbms_output.put_line(‘高工资’);
elsif v_sal>2000 then
dbms_output.put_line(‘中等工资’);
elsif v_sal<=2000 then
dbms_output.put_line(‘低工资’);
end if;
end;


–用户输入一个雇员编号,根据它所在的部门给上涨工资(更改数据,不输出打印),规则: 10部门上涨10%,20上涨20%,30上涨30%;
–但是要求最高不能超过5000,超过5000就停留在5000
declare
v_sal emp.sal%type; – 定义变量与emp.sal字段类型相同
v_deptno emp.deptno%type; – 定义变量与emp.deptno字段类型相同
v_empno emp.empno%type; – 定义变量与emp.empno字段类型相同
begin
v_empno := &empno; – 用户输入要查找的雇员编号
select deptno, sal into v_deptno, v_sal from emp where empno = v_empno;

if v_deptno = 10 then
if v_sal * 1.1 > 5000 then
update emp set sal = 5000 where empno = v_empno;
else
update emp set sal = sal * 1.1 where empno = v_empno;
end if;

elsif v_deptno = 20 then
if v_sal * 1.2 > 5000 then
update emp set sal = 5000 where empno = v_empno;
else
update emp set sal = sal * 1.2 where empno = v_empno;
end if;

elsif v_deptno = 30 then
IF v_sal * 1.3 > 5000 then
update emp set sal = 5000 where empno = v_empno;
else
update emp set sal = sal * 1.3 where empno = v_empno;
end if;

else
null;
end if;
end;


declare

begin
if to_date(‘1983-09-19’,‘yyyy-mm-dd’)between to_date(‘1980-01-01’,‘yyyy-mm-dd’)
and to_date(‘1989-12-31’,‘yyyy-mm-dd’) then
dbms_output.put_line(‘您俗称80后!’);
end if;

end;


BEGIN
IF 10 IN (10,20,30) THEN
DBMS_OUTPUT.put_line(‘数据已成功查找到’) ;
END IF ;
END;


DECLARE
v_xz NUMBER := 1 ;
BEGIN
CASE WHEN v_xz=0 THEN
DBMS_OUTPUT.put_line(‘您选择的是第0项。’) ;
WHEN v_xz=1 THEN
DBMS_OUTPUT.put_line(‘您选择的是第1项。’) ;
ELSE
DBMS_OUTPUT.put_line(‘没有选项满足。’) ;
END CASE ;
END ;


–打印循环1-10
declare
–声明一个循环变量赋初值
v_sum number := 1;
begin

loop
exit when v_sum > 10;
dbms_output.put_line(v_sum);
v_sum := v_sum + 1;
end loop;

end;


–Loop:先执行后判断,至少执行一次;
–While…loop:先判断再执行;


–求: 12+32+52+…+152 的值。
declare
v_t number(6) := 0;
v_count number(6) := 1;

begin
loop
v_t := v_t + v_count ** 2;
exit when v_count = 15;

v_count := v_count + 2;
dbms_output.put_line(v_count);

end loop;
dbms_output.put_line(v_t);

end;


–求:2 +4 +6 +8…20的值
declare
sum1 number := 0;
sum2 number := 2;
begin
loop
sum1 := sum1 + sum2;
exit when sum2 = 20;
sum2 := sum2 + 2;
end loop;
dbms_output.put_line(sum1);

end;

–求:1234…*8的值。
declare
sum1 number := 1;
sum2 number := 2;
begin
loop
sum1 := sum1 * sum2;
exit when sum2 = 8;
sum2 := sum2 + 1;
end loop;
dbms_output.put_line(sum1);

end;

–求:显示(1+2)(2+3)(3+4)…(6+7)的结果
declare
sum1 number := 1;
sum2 number := 2;
sum3 number := 1;
begin
loop
sum3 := sum3*(sum1+sum2);
exit when sum1=6 and sum2=7;
sum1 := sum1 + 1;
sum2 := sum2 + 1;
end loop;
dbms_output.put_line(sum3);

end;

–求:(12+1)+(23+2)+(34+3)…(56+5)的值。
declare
sum1 number :=1;
sum2 number :=2;
sum3 number :=1;
sum4 number :=0;
begin
loop
sum4 := sum4+(sum1*sum2+sum3);
exit when sum1=5 and sum2=6 and sum3=5;
sum1 :=sum1+1;
sum2 :=sum2+1;
sum3 :=sum3+1;
dbms_output.put_line(sum1);
dbms_output.put_line(sum2);
dbms_output.put_line(sum3);

end loop;
dbms_output.put_line(sum4);

end;


–While…loop:先判断再执行;
declare
v_i number := 1;
begin
while (v_i <= 3) loop
dbms_output.put_line(‘v_i是:’||v_i);
v_i := v_i + 1;
end loop;
end;


–求:1+3+5+…+15的值
–求:2 +4 +6 +8+…+12的值


–for循环
declare
v_i number := 1;
begin
for v_i in 1 …10 loop
dbms_output.put_line(‘v_i是:’ || v_i);
end loop;
end;


–执行跳出结束
declare
v_i number := 1; --定义一个变量,用于循环
begin
for v_i in 1 … 10 loop
if v_i = 5 then --当v_i等于5的时候就跳出循环
exit;
end if;
dbms_output.put_line(‘v_i是:’ || v_i);
end loop;
end;


–执行跳出本次循环
declare
v_i number := 1; --定义一个变量,用于循环
begin
for v_i in 1 … 10 loop
if v_i = 5 then
continue; --为5的时候不执行
end if;
dbms_output.put_line(‘v_i是:’ || v_i);
end loop;
end;


select * from dept /执行表格q/
create table q (empno number(30),ename varchar2(30),job varchar2(30))/创建表格q 加表结构/
insert into q (empno,ename,job)values (1,‘小明’,‘manager’) /插入/
insert into q (empno,ename,job)values (2,‘小红’,‘maishi’) /插入/
update q set job='manager’where empno=1/更改表内数据/
delete from dept where deptno=90 /删除一行/
alter table q add(mgr number(30))/增加一列/
alter table q modify(mgr varchar2(30))/修改成字符串模式/
update q set mgr=‘王’ where empno=1 /列表插值/
alter table q drop column mgr/删除一列/
varchar2 /字符串类型/ number/数字类型/ date /日期类型/ int /整数类型/
select * from dept1


–1.用 loop 循环结构,为 dept 表增加 50、60…90 这些部门
declare
deptno number:=50;
begin
loop
insert into dept1(deptno) values (deptno);
exit when deptno>=90;
deptno:=deptno+10;
end loop;
end;
select * from dept1;


–2.接收一个雇员名,显示该雇员的所有内容,(用%rowtype 实现),当没有这个雇员时,用异常来显示错误提示
declare
v_ename emp.ename%type;
v_www emp%rowtype;
begin
v_ename:=&ename;
select * into v_www from emp where ename = v_ename;
dbms_output.put_line(v_www.empno || ‘,’ || v_www.job || ‘,’ ||
v_www.hiredate || ‘,’ || v_www.sal || ‘,’ ||
v_www.deptno || ‘,’ || v_www.comm || ‘,’ ||
v_www.mgr);
exception
when others then
dbms_output.put_line(‘没有这个雇员’);
end;
select * from emp


–3.编写一个 PL/SQL 程序块以计算某个雇员的年度薪水总额,包括提成(手动输入名字)
declare
v_ename emp.ename%type := ‘&v_ename’;
v_sum number;
begin
select ((sal + nvl(comm, 0)) * 12)
into v_sum
from emp
where ename = v_ename;
dbms_output.put_line(v_sum);
end;


–4.编写一个 PL/SQL 程序块以向 emp 表添加 10 条雇员编号(7911-7920)
declare
v_sum number := 7911;
begin
loop
insert into emp1 (empno) values (v_sum);
exit when v_sum >= 7920;
v_sum := v_sum + 1;
end loop;
end;


–5.接收 2 个数相除,并显示结果,如果除数为 0,则显示错误提示;
declare
v_num1 number := ‘&v_num1’;
v_num2 number := ‘&v_num2’;
v_num3 number := 0;
begin
if v_num2 != 0 then
v_num3 := v_num1 / v_num2;
dbms_output.put_line(v_num3);
else
dbms_output.put_line(‘错误’);
end if;

end;


–6.做个功能:从键盘录入一个数,判断正负(如果是正数,显示:正数,是负数显示:负数,0则显示0)
declare
v_num number:=’&v_num’;
begin
if v_num>0 then
dbms_output.put_line(‘正数’);

   elsif v_num<0 thendbms_output.put_line('负数');elsedbms_output.put_line('0');end if;

end;


declare

begin
exception
when others then
DBMS_OUTPUT.put_line(‘返回的数据过多!’) ;
DBMS_OUTPUT.put_line('sqlcode = ’ || sqlcode) ;
DBMS_OUTPUT.put_line('sqlcode = ’ || sqlcode) ;
end;


create or replace procedure kkkk --创建存过
as

begin
dbms_output.put_line(‘www.gouzheng.cn’);

end;


–定义过程,根据雇员编号找到雇员姓名及工资
create or replace procedure get_emp_info_proc(p_eno emp.empno%type)
as
v_ename emp.ename%type;
v_sal emp.sal%type;
v_count number;

begin
select count(empno) into v_count from emp where empno=p_eno;
if v_count=0 then --没有发现数据
return; --结束过程调用
end if;

select ename,sal into v_ename,v_sal from emp where empno=p_eno;
dbms_output.put_line(‘编号为’|| p_eno ||‘的雇员姓名:’|| v_ename ||’,工资’|| v_sal);
end;

–调用
begin
get_emp_info_proc(7788);
end;


–例题: 利用过程增加部门编号和部门名称、部门位置
create or replace procedure dept_insert_proc(
p_dno dept.deptno%type,
p_dna dept.dname%type,
p_dlo dept.loc%type)
AS
v_deptCount number ; – 保存COUNT()函数结果
begin
select count(deptno) into v_deptCount from dept where deptno=p_dno ; – 统计
if v_deptCount > 0 then – 有此编号的部门
–RAISE_APPLICATION_ERROR(-20789,‘增加失败:该部门已存在!’) ;
DBMS_OUTPUT.put_line(‘该部门已存在!’) ;
else
insert into dept(deptno,dname,loc) values (p_dno,p_dna,p_dlo) ;
DBMS_OUTPUT.put_line(‘新部门增加成功!’) ;
commit ;
end if ;
exception
when others then
dbms_output.put_line('SQLERRM = ’ || SQLERRM) ;
rollback ; – 事务回滚
end ;
select * from dept1


–定义函数 —— 通过雇员编号查找此雇员的月薪
create or replace function get_sal_fun(p_eno emp.empno%type)
return number
as
v_sal emp.sal%type ;
begin
select sal + nvl(comm,0) into v_sal from emp where empno=p_eno ;
return v_sal; --返回的数据
end;

–调用
declare
v_sal number;
begin
v_sal := get_sal_fun(7788) ;
dbms_output.put_line(‘雇员7788的工资为:’ || v_sal) ;
end ;
–通过SQL调用函数
select get_sal_fun(7788) from dual;


–练习题
创建一个存储过程,以员工号为参数,输出该员工的工资
create or replace procedure get_emp_info_proc(v_empno emp.empno%type)
as
v_ename emp.ename%type;
v_sal emp.sal%type;
v_count number;
begin
select count(empno) into v_count from emp where empno=v_empno;
if v_count=0 then
dbms_output.put_line(‘emp表中不存在您要输入的编号’);
return;
end if;
select ename,sal into v_ename,v_sal from emp where empno=v_empno;
dbms_output.put_line(‘员工编号是:’||v_empno||’,姓名是:’||v_ename||’,薪资是:’||v_sal);
end;
–调用
begin
get_emp_info_proc(7788);
end;


创建一个存储过程,以员工号为参数,修改该员工的工资。若该员工属于10号部门,则工资增加150;
若属于20号部门,则工资增加200;若属于30号部门,则工资增加250,若属于其他部门,则增加300。
create or replace procedure get_emp1_info_proc (v_empno emp1.ename%type)
as
v_ename emp1.ename%type;
v_sal emp1.sal%type;
v_deptno emp1.deptno%type;
v_count number;
begin
select count(empno) into v_count from emp1 where empno=v_empno;
if v_count=0 then
dbms_output.put_line(‘没有您要查询的员工’);
return;
end if;
select ename,sal,deptno into v_ename,v_sal,v_deptno from emp1 where empno=v_empno;
if v_deptno=10 then
v_sal:=v_sal+150;
dbms_output.put_line(‘员工编号是:’||v_empno||’,姓名是:’||v_ename||’,薪资是:’||v_sal);

elsif v_deptno=20 then
v_sal:=v_sal+200;
dbms_output.put_line('员工编号是:'||v_empno||',姓名是:'||v_ename||',薪资是:'||v_sal);    elsif v_deptno=30 then
v_sal:=v_sal+250;
dbms_output.put_line('员工编号是:'||v_empno||',姓名是:'||v_ename||',薪资是:'||v_sal);    else v_sal:=v_sal+300;dbms_output.put_line('员工编号是:'||v_empno||',姓名是:'||v_ename||',薪资是:'||v_sal);    

end if;
end;


创建一个函数,以部门号为参数,返回该部门的平均工资
create or replace function get_sal_fun(v_deptno emp1.deptno%type)
return number
as
v_sal emp1.sal%type;
begin
select avg(sal) into v_sal from emp1 where deptno=v_deptno;
return v_sal;
end;


创建一个函数,以员工号为参数,返回该员工所在的部门的平均工资
create or replace function get_sal_fun1(v_empno emp1.empno%type)
return number
as
v_sal emp1.sal%type;
v_deptno emp1.deptno%type;
begin
select deptno,avg(sal) into v_deptno,v_sal from emp1 where deptno=v_deptno;
return v_deptno;
return v_sal;
end;


创建一个存储过程,以部门号为参数,输出入职日期最早的3个员工信息。


创建一个存储过程,以一个整数为参数,输入工资最高的前几个(参数值)员工的信息(如输入5,显示工资最高的前五名信息)。


编写一个存储过程,手动输出数字,批量插入 1000 条数据(只插入 I 为奇数的数据)
创建个表 create table test(i number(10));


–游标
–隐式游标
–验证%ROWCOUNT
declare
v_count number;
begin
select count(*) into v_count from dept;–只返回一行结果
dbms_output.put_line(‘SQL%ROWCOUNT=’||SQL%ROWCOUNT);
end;


–验证%ROWCOUNT,增加新数据返回行数
declare
begin
insert into dept(deptno,dname,loc) values (90,‘yanfa’,‘北京’) ;
dbms_output.put_line('SQL%ROWCOUNT = '|| SQL%ROWCOUNT) ;
end ;
select * from dept


–观察单行隐式游标:
DECLARE
v_empRow emp%ROWTYPE ; – 保存emp每行记录
BEGIN
SELECT * INTO v_empRow FROM emp WHERE empno=7369 ;
IF SQL%FOUND THEN – 发现数据
DBMS_OUTPUT.put_line(‘雇员姓名:’ || v_empRow.ename || ‘,职位:’ || v_empRow.job) ;
END IF ;
END ;


declare
–声明游标
cursor c_emp is
select ename, sal from emp;
–声明变量
v_ename emp.ename%type;

v_sal emp.sal%type;

begin
–打开游标
open c_emp;

–遍历游标
loop
–获取游标中的数据,如果有的话就赋值给变量
fetch c_emp
into v_ename, v_sal;

exit when c_emp%notfound;--判断是否有游标dbms_output.put_line('姓名' || v_ename || '薪水' || v_sal);

end loop;

–关闭游标
close c_emp;

end;


–使用FOR循环操作游标
declare
cursor v_emp is select * from emp ;

begin
–隐含打开游标
for xx in v_emp loop
–隐含执行一个FETCH语句
dbms_output.put_line(‘雇员姓名:’ || xx.ename || ‘,职位:’ || xx.job || ‘,工资:’ || xx.sal) ;
–隐含监测c_sal%notfount
end loop ;
–隐含关闭游标
end ;


–习题: 用循环把dept表的数据全部显示出来
declare
cursor v_dept is select * from dept1; --进行查表复制
begin
for xx in v_dept loop – 进行循环
dbms_output.put_line(‘雇员姓名’||xx.dname||’,部门’||xx.deptno||’,位置’||xx.loc); --打印输出
end loop; --结束循环
end;


–习题: 用游标输出emp表和dept表的员工编号、姓名、部门名称、地址
declare
cursor v_mmm is select *from emp e join dept d on e.deptno=d.deptno; --进行关联复赋值
begin
for xx in v_mmm loop --进行循环
dbms_output.put_line(‘雇员编号’||xx.empno||’,姓名’||xx.ename||’,部门名称’||xx.dname||‘地址’||xx.loc); --打印输出
end loop; --结束循环
end;


–习题:向游标传递一个职位,显示此工种的所有雇员的所有信息(手动输入参数)
declare
v_job emp.job%type:=’&JOB’;
cursor v_emp is select * from emp where job=v_job;
begin

for xx in v_emp loop
dbms_output.put_line(‘员工编号’||xx.empno||‘姓名’||xx.ename||‘部门编号’||xx.deptno||
‘入职如期’||xx.hiredate||‘职位’||xx.job||‘领导编号’||xx.mgr||‘工资’||xx.sal||‘奖金’||xx.comm);
end loop;
end;


–输入两个薪金数值,显示出符合在范围内结果的数据(emp表数据)

declare
v_los number:=&输入最低工资;
v_his number:=&最高工资;
cursor c_s is select * from emp where sal between v_los and v_his;
begin
case when v_los>v_his then
dbms_output.put_line(‘最低工资不能大于最高工资’);
when v_los>5000 or v_his<800 then
dbms_output.put_line(‘输入范围无结果’);
else
for xx in c_s loop
dbms_output.put_line(‘编号为:’||xx.empno||‘姓名为:’||xx.ename||‘职位为:’||xx.job||‘上司为:’
||xx.mgr||‘入职日期’||xx.hiredate||‘工资为:’||xx.sal||‘奖金为:’||xx.comm||‘部门为:’||xx.deptno);
end loop;
end case;
end;





–查询没有提成的员工信息
select * from emp where comm IS null and comm=0;
–查询有提成的
select * from emp where comm is not null and comm>0;
–查询员工信息第三位是A的
SELECT * FROM emp WHERE ename LIKE ‘__A%’
–找出20部门中既不是经历也不是普通员工的信息
SELECT * FROM emp WHERE DEPTNO=20 AND job NOT IN(‘MANAGER’, ‘CLERK’)
–建表差值
CREATE TABLE q (empno NUMBER,ename VARCHAR(20),sal NUMBER);
INSERT INTO q (empno,ename,sal)VALUES(2222,‘张三’,4555);
–表结构的增删改

利用过程增加部门,编写一个过程,过程里面可以实现部门数据的增加。需要告诉用户增加成功与否,
如果是0表示增加成功,如果是1表示增加失败。(用in或 out作为判断标记)

CREATE OR REPLACE PROCEDURE dept_insert_proc(
p_dno dept1.deptno%TYPE,
p_dna dept1.dname%TYPE,
p_dlo dept1.loc%TYPE ,
p_result OUT NUMBER) – 此为操作标记变量
AS
v_deptCount NUMBER ; – 保存COUNT()函数结果
BEGIN
SELECT COUNT(deptno) INTO v_deptCount FROM dept1 WHERE deptno=p_dno ; – 统计
IF v_deptCount > 0 THEN – 有此编号的部门
p_result := 1 ; – 修改返回标记
ELSE
INSERT INTO dept1(deptno,dname,loc) VALUES (p_dno,p_dna,p_dlo) ;
p_result := 0 ; – 修改返回标记
COMMIT ;
END IF ;
END ;
SELECT * FROM dept1

编写一个存过,要求输入一个编号,显示编号的年薪(用in out 模式)

习题:
–1.创建一个存储过程,以员工号为参数,返回该员工的工作年限(以参数形式返回)。
create or replace procedure p_sxt3
(v_empno in emp.empno%type, v_year out number)
is
begin
select round(months_between(sysdate,hiredate)/12,1) into v_year
from emp where empno = v_empno;
end;
–执行
declare
v_empno emp.empno%type := 7369;
v_year number;
begin
p_sxt3(v_empno,v_year);
dbms_output.put_line(v_empno || ’ 工作年限为 ’ || v_year || ‘年’);
end;

create or replace procedure p_sxt3
(v_empno emp.empno%type)
is
v_year number;
begin
select round(months_between(sysdate,hiredate)/12,1) into v_year
from emp where empno = v_empno;
end;

–2.写一个存储过程,传入一个员工编号,如果入职日期比10部门任意一个员工晚的话,则传出员工姓名,入职日期,否则,传出空,不包括10部门员工
create or replace procedure p_test5(i_empno in number,
o_ename out varchar2,
o_date out date)
as
begin
select ename,hiredate into o_ename,o_date from emp
where empno=i_empno
and deptno!=10
and hiredate>(select max(hiredate) from emp where deptno=10);
dbms_output.put_line(‘姓名:’||o_ename||’ 入职日期:’||o_date);
exception
when OTHERS then
dbms_output.put_line(‘sqlcode=’||sqlcode);
dbms_output.put_line(‘sqlerrm=’||sqlerrm);
end;

–3.写一个函数(dept表)传入:部门编号,传出:如果部门有员工,将部门编号改为60传出,如果部门没有员工,将部门编号改为88传出
–(直接赋值就行,不用改表中的数据);返回值:部门位置
create or replace function f_deptno(i_deptno in out dept.deptno%type)
return varchar2
as
v_t number; --判断有没有部门
v_count number; --判断部门有没有员工
v_loc dept.loc%type; --地址
begin
select count(deptno) into v_t from dept where deptno=i_deptno;
if v_t=0 then
dbms_output.put_line(‘没有此部门!’);
else
select loc into v_loc from dept where deptno=i_deptno;
select count(*) into v_count from emp where deptno=i_deptno;
if v_count > 0 then
i_deptno := 60;
else
i_deptno := 88;
end if;
end if;
return v_loc;
end f_deptno;
–4.写一个函数:传出:今天是周几(1表示周一,一次类推)今天是几月
–返回值:下个月的1号
create or replace function f_date(i_dd out number, i_mm out number)
return date
is
i_yy date;
begin
select to_number(to_char(sysdate - 1, ‘d’)) into i_dd from dual;
select to_number(to_char(sysdate, ‘mm’)) into i_mm from dual;
select last_day(sysdate) + 1 into i_yy from dual;
return i_yy;
end;
–测试:
declare
v_day number(10);
v_mm number(10);
v_date date;
begin
v_date:=f_date(v_day,v_mm);
dbms_output.put_line
(‘星期几:’||v_day || '月份’v_mm ||‘下个月的第一天’||to_char(v_date,‘yyyy-mm-dd’);
end;

–5.写一个函数,输出:工资最小的员工的姓名,编号,经理名字,返回值:工资最大的员工的工资
create or replace function f_sal
( o_ename out emp.ename%type,–员工姓名
o_empno out emp.empno%type,–员工编号
o_mename out emp.ename%type)–领导姓名
return number
as
v_sal emp.sal%type;
begin
select ename,empno,mename
into o_ename,o_empno,o_mename
from (select a.sal,a.ename,a.empno,b.ename mename
from emp a join emp b on a.mgr=b.empno
order by a.sal)
where rownum=1;
select max(sal) into v_sal from emp;
return v_sal;
end;
---------第二种:
create or replace function f_sal( o_ename out emp.ename%type,
o_empno out emp.empno%type,
o_mename out emp.ename%type)
return number
as
v_sal emp.sal%type;
begin
select ename,empno,b.ename
into o_ename,o_empno,o_mename
from emp a,empb
where a.mgr=b.empno
and sal=(select min(sal) from emp);
select max(sal)
into v_sal
from emp;
return v_sal;
end;

.写一个函数
输出:查询部门人数大于所有部门平均人数的部门编号,部门名称
返回:该部门的人数

2.写一个函数
输入:员工编号
输出:员工的工资,姓名,部门
如果工资比MILLER工资高并且工作地点在CHICAGO,则返回0,否则返回1

3.写一个函数
输出:入职日期比10部门入职日期最早的员工还要早的员工数量
返回:入职日期比30部门入职日期最早的员工还要早的员工的入职日期

4.写一个存储过
输入:入职日期
如果比10部门所有员工晚,则在屏幕上(out参数)显示员工姓名,入职日期,不包括10员工(日期相同随机显示)

5.写一个存储过程
输入:一个员工编号
如果和10部门任意一个员工职位相同,则在屏幕(out参数)上显示0,否则显示1,不包括10部门员工

6.写一个存储过程
显示平均工资最高的部门平均工资及部门名称(out参数)

7.写入一个函数
传入:姓名
传出:如果工资比TURNER高,则传出0,否则传出1
返回值:工资

/联系/
1、查询dept表的结构
Desc dept;

2、检索dept表中的所有行、所有列的数据。
select * from dept
3、检索emp表中的员工姓名、月收入及部门编号
Select ename,sal,deptno from emp;

4、检索emp表中员工姓名、及雇佣时间
日期数据的默认显示格式为"DD-MM-YY"
select ename,hiredate from emp
5、使用distinct去掉重复行。
检索emp表中的部门编号及工种,并去掉重复行。
select distinct deptno,job from emp
查询 employees 表中有多少个部门
select distinct deptno from emp
6、使用表达式来显示列
检索emp表中的员工姓名及全年的收入
select ename,ename,sal*12 from emp

7、使用列别名
用“姓名”显示员工姓名,用“年收入”显示全年收入。
select ename 姓名,sal*12 年收入 from emp

8、连接字符串
检索emp表,用is a 这个字符串来连接员工姓名和工种两个字段
结果示例:
select concat(ename ‘is a’ job) from emp
SMITH is a CLERK
ALLEN is a SALESMAN
WARD is a SALESMAN

9、使用WHERE子句

  检索月收入大于2000的员工姓名及月收入。sele检索月收入在1000元到2000元的员工姓名、月收入及雇佣时间。查询 1998-4-24 来公司的员工有哪些

10、like的用法:

检索以S开头的员工姓名及月收入。检索员工姓名中的第三个字符是A的员工姓名及月收入。

11、在WHERE条件中使用IN操作符

检索emp表中月收入是800的或是1250的员工姓名及部门编号

12、在WHERE条件中使用逻辑操作符(AND、OR、NOT)

显示在部门20中岗位CLERK的所有雇员信息显示工资高于2500或岗位为MANAGER的所有雇员信息

13、查询表中是空值的数据

  查询 所有经理为空的所有员工信息检索emp表中有提成的员工姓名、月收入及提成。

14、使用ORDER BY子句,进行排序。

检索emp表中部门编号是30的员工姓名、月收入及提成,并要求其结果按月收入升序、然后按提成降序显示。

15,显示系统时间(取别名为"DATE").

16,查询员工号,姓名,工资(若为NULL则作为0处理)

  以及工资提高百分之20%(乘1.2)后四舍五入到整数的结果(取别名为new salary)

17,将员工的姓名(取别名为"Name")按字母表先后顺序排序,并写出姓名的长度(取别名为"length")

18,查询各员工的姓名,并显示出各员工在公司工作了多少个月份(起别名为"worked_month")四舍五入到整数。

19,查询员工的姓名和工资,按下面的形式显示结果(工资字段必须为15位,空位用$填充)

姓名 工资
KING $$$$$$$$24000MIKE24000 MIKE $$$$$$$$$4800

20,查询员工的姓名,以及在公司工作满了多少个月(worked_month),并按月份数降序排列

20,–使用 case-when-then-else-end

1)job名称所对应的级别如下:
CLERK A
SALESMAN B
MANAGER C
ANALYST D
PRESIDENT E
OTHER
请查询员工的姓名、job名称、级别

结果示例:
姓名 job名称 级别
MARTIN SALESMAN B
BLAKE MANAGER C

2)查询部门号为 10, 20, 30 的员工信息, 若部门号为 10, 则打印其工资的 1.1 倍, 20 号部门, 则打印其工资的 1.2 倍, 30 号部门打印其工资的 1.3 倍数

22,查询公司员工工资的最大值,最小值,平均值,总和

23,查询各个不同job的员工工资的最大值,最小值,平均值,总和

24,查询员工最高工资和最低工资的工资差距

25,查询公司的人数,以及在80,81,82,87年,每年雇用的人数,结果类似下面的格式
total 1980 1981 1982 1987
14 1 10 1 2

26,显示所有员工的姓名,部门号和部门名称(dname)。联合查询emp, dept.

27,不重复地查询20号部门员工的job和20号部门的loc.

28,选择所有有提成的(提成非空并且大于0)员工的ename , dname , loc

29,选择在CHICAGO(一个loc)工作的员工的ename , job , deptno , dname

30,查询所有员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式:
employees Emp# manager Mgr#
kochhar 101 king 100

31,查询各部门员工姓名和他们的同事(在同一个部门工作的其他人)姓名,结果类似于下面的格式:

Department_id Last_name colleague
20 Fay Brown
20 Fay Peter

32,查询各个管理者的编号及其手下员工的最低工资,其中最低工资低于6000的排除在外,没有管理者的员工不计算在内

33,查询所有部门的名称,loc,员工数量和工资平均值

34,根据salgrade表和employee表,查询出所有员工的工资等级。

35,使用子查询,查询出 ename 为 ‘MILLER’ 的 manager 的信息.

36,查询CHICAGO 这个城市的员工的平均工资。

37,查询各个城市的平均工资。

38,查询平均工资高于 8000 的部门 id 和它的平均工资.

39,查询平均工资高于 6000 的 job 有哪些?

40,谁的工资比 SCOTT 高?

41,查询公司中工资最低的员工的信息。

42,查询平均工资最低的部门名称

43,查询平均工资高于公司平均工资的部门有哪些?

44,查询出公司中所有 manager 的详细信息

45,各个部门中都有最高的工资,这些“最高工资”中最低的那个部门的是哪个?再查该部门的 最低工资是多少?

46,查询 1999 年来公司的人所有员工的最高工资的那个员工的信息.

47,select department_id
from employees
group by department_id
having avg(salary) >= any (
–所有部门的平均工资
select avg(salary)
from employees
group by department_id
)
会返回什么值,为什么?

48,select department_id
from employees
group by department_id
having avg(salary) >= all (
–所有部门的平均工资
select avg(salary)
from employees
group by department_id
)
会返回什么值,为什么?

49,利用子查询创建表 myemp, 该表中包含 employee 表的
employeeno,ename,job,sal 字段

1). 创建表的同时复制 employee 对应的记录	2). 创建表的同时不包含 employee 中的记录, 即创建一个空表

50,对现有的myemp表进行修改操作

1). 添加一个新列 age int(3)	2). 修改现有列的类型 MODIFY(ename varchar(30));3). 修改现有列的名字sal   TO   salary	
  1. . 删除现有的列 COLUMN age;

51,清空myemp表, 不能回滚!!

52,创建一个表emp2, 该表和 employee 有相同的表结构, 但为空表

53,把 employee 表中 20 号部门的所有数据复制到 emp2 表中

54,更改 7369 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job

55,删除 7369 号员工所在部门中工资最低的那个员工.

56,创建emp3表,结构与employee相同。创建时在job上添加非空约束,在ename上添加唯一约束,在deptno上添加外键约束,约束指向dept表的deptno。

57,同上创建emp4表,建表时建立在deptno上添加外键约束,约束指向dept表的deptno。同时,指定该约束在级联删除主键时,不级联删除外键的数据。

58,查询员工表中 salary 前 10 名的员工信息

59,查询员工表中 salary 在10 - 20 名的员工信息。

60,对员工表内容根据salary排序后,进行分页查询,每页3条。

–定义函数 —— 通过雇员编号查找此雇员的月薪
create or replace function get_sal_fun(p_eno emp.empno%type)
return number
as
v_sal emp.sal%type ;
begin
select sal + nvl(comm,0) into v_sal from emp where empno=p_eno ;
if v_sal then
return v_sal;
end;

if v_t=0 then
dbms_output.put_line(‘没有此部门!’);
else
select loc into v_loc from dept where deptno=i_deptno;
select count(*) into v_count from emp where deptno=i_deptno;
if v_count > 0 then
i_deptno := 60;
else
i_deptno := 88;
end if;
end if;

–调用
declare
v_sal number;
begin
v_sal := get_sal_fun(7788) ;
dbms_output.put_line(‘雇员7788的工资为:’ || v_sal) ;

end ;
–通过SQL调用函数
select get_sal_fun(7788) from dual

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Spring Boot Web开发(四)

    1、配置嵌入式Servlet容器SpringBoot默认使用Tomcat作为嵌入式的Servlet容器;1)、如何定制和修改Servlet容器的相关配置;1、修改和server有关的配置(ServerProperties【也是WebServerFactoryCustomizer】);```properties server.port=8081 server.context-path=/crudserv…...

    2024/4/14 12:31:22
  2. svcutil.exe工具生成客户端代理类

    1.在运行中输入cmd打开命令行,输入 cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 2.输入SvcUtil /language:c# /out:UserInfoClient.cs /config:App.conifg http://127.0.0.1:1234/UserInfo/ (注意:端口号改成本机服务寄宿的端口号) 3.将生成的App.config和…...

    2024/4/14 12:31:22
  3. 算法题LC73:minimum-window-substring

    贪心: 题目描述: 给出两个字符串S和T,要求在O(n)的时间复杂度内在S中找出最短的包含T中所有字符的子串。 例如: S =“ADOBECODEBANC” T =“ABC” 找出的最短子串为"BANC". 注意: 如果S中没有包含T中所有字符的子串,返回空字符串 “”; 满足条件的子串可能有…...

    2024/4/14 12:31:20
  4. 【mmdetection】PolarMask

    【mmdetection】PolarMask代码运行 官方代码:https://github.com/xieenze/PolarMask 官方论文解读:https://zhuanlan.zhihu.com/p/84890413 代码运行 创建环境 conda create -n open-mmlab python=3.7 -y conda activate open-mmlab conda install cythonInstall PyTorch sta…...

    2024/4/14 12:31:19
  5. Leetcode 66. 加一(C++) (小白学习之路)

    题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:输…...

    2024/5/4 4:52:19
  6. redis 事务和watch

    redis的事务严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的。redis中的事务定义Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。 事务的原理是先将属于一个事务…...

    2024/4/14 12:31:17
  7. VUE 在html标签内无法使用引入的函数

    <td v-if="getPollLevelColor()"><td>import { getPollLevelColor } from @utils/aqi;方法引入后直接在标签内无法使用,会报错methods: {getPollLevelColor }在methods中抛出后,就可以直接用了...

    2024/4/26 11:49:10
  8. Linux 进程优先级nice 和作业控制jobs

    一、进程优先级 nice。 程序默认分配一部分时间给进程,优先级便于部分程序更快的运行。 NI: 实际nice值,可调,范围为 -10~19 PR: 系统内置nice值,大小为 NI+20。即NI值加20再进入优先级队列。指定显示内容查看进程 ps axops axo pid,command,nice 启…...

    2024/5/4 2:26:58
  9. CCF练习14-9-2:画图

    题目链接:http://118.190.20.162/view.page?gpid=T15 问题描述在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表…...

    2024/5/4 1:45:40
  10. Could not initialize SDL - No available video device (Did you set the DISPLAY variable?

    修改ffbuild目录下的config.mak...

    2024/4/14 12:31:13
  11. hbase记录

    hbasehbase 是主从结构的 分为HMaster和HRegionServer, 主节点hmaster存元数据,实际数据在HRegionServer 操作hbase时用的client,所有数据的维护是用的zookeeper 一个 RegionMaster 可以维护多个 RegionServer . 一个 RegionServer 对应多个 HRegion (实际数据) 而实际数据分为…...

    2024/4/24 23:56:49
  12. nvdla epython用于自动生成状态机编码的实例

    英伟达深度学习加速器开源项目nvdla(NVIDIA Deep Learning Accelerator)中用到了一个python脚本epython。源代码地址:https://github.com/nvdla/hw/blob/master/tools/bin/epython 。epython全称embeded python utility,简单地说,就是用来预处理verilog文件中嵌入的python…...

    2024/4/14 12:31:11
  13. Centos6.5 克隆之后,重启网卡报错 No suitable device found: no device found for connection 'System eth0'.

    一、场景:Centos6.5 克隆之后,重启网卡报错 No suitable device found: no device found for connection System eth0.查看网卡: ifconfig (克隆过来的网卡由 eth0变为了eth1)[root@bogon ~]# ifconfig eth1 Link encap:Ethernet HWaddr 00:0C:29:E8:A7:9A inet ad…...

    2024/4/14 12:31:10
  14. struts文件上传保存

    引入js文件<script src="/js/wxMgt/jquery-3.3.1.js"></script>jsp页面代码<body><p>文件上传</p><form id="form"><input id ="fileUpload" name="file" type="file"/></for…...

    2024/4/14 10:16:30
  15. 微信小程序 之间的路由跳转与传参

    微信小程序 之间的路由跳转与传参 小程序之间的路由跳转可以使用两种方法 直接使用标签navigator或者使用路由跳转方法标签navigator 官方文档 <navigator class="more" open-type="navigate" url="/pages/songSheet/songSheet">查看更多 …...

    2024/4/14 10:16:26
  16. linux下的kvm虚拟化

    linux下的kvm虚拟化 1.kvm安装条件 1.inter cpu ----> vmx 2.amd cpu -------> svm 2.kvm虚拟化安装 dnf group install "Virtualization Client" "Virtualization Hypervisor" "Virtualization Tools" -y Virtualization Client ##虚拟化…...

    2024/4/14 12:31:09
  17. 微信域名拦截查询 如何批量查询我们的域名在微信中是否被拦截

    微信的域名检测服务,很多在微信中做推广的朋友在使用,但是随着微信中的域名审核越来越严厉,导致现在很多的域名检测接口有很多特殊问题检测不出来。比如无法访问报红,重定向,非官方网站,复制链接浏览器。那么今天给大家推荐一个可以解决这些问题的最新域名检测接口!希望…...

    2024/4/25 18:45:07
  18. 恒指交易如何减少犯错

    市场无数次地让交易者明白:交易的本质实际上就是减少犯错! 市场的复杂性,需要建立一个完整的交易计划。这些简单的想法并不为大多数交易者所理解。他们以为大笔财富就在他们面前,而不需要对他们的交易做深入的思考,这是令人悲哀的。点击添加图片描述(最多60个字) 大多数新…...

    2024/4/27 16:24:11
  19. 用迅雷下载百度网盘的文件

    今天给大家分享一个小技巧可以使用迅雷下载百度网盘的文件 首先需要使用chrome浏览器(我自认为是目前最好用的浏览器),然后需要安装迅雷支持的插件 网盘链接 提取码:c8ug 安装过程: 首先打开chrome浏览器的设置点击扩展程序直接在扩展程序中将该插件拖进即可完成安装然后启…...

    2024/4/27 18:54:41
  20. 关系代数中除法的SQL实现

    关系代数中除法的SQL实现 文章目录关系代数中除法的SQL实现引言除法笛卡尔积的逆SQL实现应用场景举例集合谓词的缺席实现减法实现除法附录实验用SQL 引言 关系代数中的运算主要有选择、投影、连接(或者说乘法,即笛卡尔积)、除法,以及集合运算。其中,选择、投影、连接能直接…...

    2024/4/14 12:31:05

最新文章

  1. Python常见数据结构

    元组&#xff08;Tuple&#xff09;和列表&#xff08;List&#xff09;是Python中两种主要的序列类型&#xff0c;它们在功能上有许多相似之处&#xff0c;但也存在一些关键的区别&#xff1a; 可变性&#xff1a; 列表是可变的&#xff0c;这意味着你可以更改列表的内容&am…...

    2024/5/4 5:18:45
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 权限提升-Linux系统权限提升篇VulnhubRbash绕过DockerLXD容器History泄漏shell交互

    知识点 1、普通用户到Linux-泄漏-History 2、普通用户到Linux-限制-Rbash绕过 3、普通用户到Linux-容器-LXD&Docker 4.Linux系统提权-web/普通用户-docker逃逸&提权&shell交互 章节点&#xff1a; 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及…...

    2024/5/1 13:20:00
  4. spark on hive

    由于spark不存在元数据管理模块&#xff0c;为了能方便地通过sql操作hdfs数据&#xff0c;我们可以通过借助hive的元数据管理模块实现。对于hive来说&#xff0c;核心组件包含两个&#xff1a; sql优化翻译器&#xff0c;翻译sql到mapreduce并提交到yarn执行metastore&#xf…...

    2024/5/3 6:53:44
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57