想用数据库自带的用户scott登六,  4.询问奖金高于薪水五分一的职员和工人音讯

注:注意like的用法,%代表0个或八个随机字符,_意味着1个任意字符。

A.行集,忽略 B.每行,忽略  C.行集,包括  D.每行,包括


注:排序就用order by,默感觉升序,若要降序,要加desc关键字。

D. AND 雇员.部门标志>五千


注:本例中用substr函数提取ename的前多少个字符。

 15.询问比有所在30号部门中劳作的职员和工人的工薪都高的职工姓名和薪俸。
SQL> select * from emp where sal>all(select sal from emp where
deptno=30);

–*总体查询
select * from emp
select * from dept

18.基于办事年限查询雇员姓名,并将最老的雇员排在前边。

B.select姓氏,(sysdate-聘用日期)/7display周from雇员where部门标志=90;

select sal,job,deptno from emp where ename =’smith’
—–distinct消除一样的
select distinct deptno,ename from emp order by deptno
–呈现年薪给
select ename, sal13+isnull(comm,0)13 年工资 from emp
–显示1985-1-一后头入职
select ename from emp where hiredate>’1982-1-1′
–展现首字母为s的薪俸,姓名
select ename,sal from emp where ename like ‘s%’–%代表四个字符
–_a表示单个字符
—–in
select ename,sal from emp where empno in(123,800,325)
–呈现未有下面的
select ename,sal from emp where mgr is null
–查询报酬高于500依然职分是manage 同时知足第一个姓名字母是j
select ename,sal from emp where (sal>500 or job=’MANAGER’)and ename
like ‘j%’
–薪资从低到高,order by(低到高/先到后asc),高到低/后到先desc
select * from emp order by sal desc
–依照部门号升序而雇员薪给降序
select from emp order by deptno,sal desc
–年薪从低到高
select ename,(sal
13+isnull(comm,0)13) 年薪 from emp order by
(sal
13+isnull(comm,0)*13)
–min(),max,avg 平均,sum,count函数
–展现最低薪俸

select dname from dept where deptno in(select distinct deptno from emp);

    FROM

insert into test (testName,testPass )values(‘shunping’,’shunping’)

  1. 询问佣金高于报酬伍分3的雇员消息。

1.select语句

–呈现最低薪给和她的名字
–select ename, min(sal) from emp 错误的
–select ename,(select min(sal) from emp) from emp
错误的,笔者的,呈现出来不对应
select ename,sal from emp where sal=(select min(sal) from emp)–子列表
–平均薪水 总薪金
select avg(sal) 平均薪酬 ,sum(sal) 总薪水 from emp
–高于平均薪水的雇员报酬和名字显示–select ename,sal from emp where
sal=(select sal>avg(sal) from emp)
错误的,因为sal>avg(sal)自个儿和友好的平分比较错误。
select ename,sal from emp where sal>(select avg(sal) from
emp)–那里是括号外和中间比较所以不雷同
–分组group by分组 having限制结果
–呈现部门的平分和最高报酬(并出示部门名称涉及到另一张表,多表查询)
select avg(sal) 平均薪给 ,max(sal) 最高级程序员资,deptno from emp group by
deptno
–没个单位各类职位的平分和最高工资
select avg(sal) 平均薪俸 ,max(sal) 最高级技术员资,deptno,job from emp group by
deptno,job –order by deptno
–平均工资低于2000的机议和他的平均薪金
–having和group by 结合,能够对分组之后的结果举行筛选扬弃
select avg(sal) 平均报酬 ,deptno from emp group by deptno having
avg(sal)<两千

拾.查询工作时间限制大于2伍年的雇员消息。

9.要是单行子查询再次来到了空值且使用了相当于相比运算符,外部查询会再次来到什么结果?()

<pre>
–注意语句的读写顺序是从右往左的
create database D1
drop table dept
drop table emp

14.查询全数雇员的姓名的前一个字符。

SQL> select * from emp where comm>0;  –小编那边数值非空
SQL> create table a(comm number);  
SQL> insert into a(comm) select comm from emp;
SQL> insert into a values(null);  —创设一个空值的表测试,也是OK
select count(*) from a where comm>0;

insert into dept (deptno, dname, loc) values (10, ‘ACCOUNTING’, ‘NEW
YORK’);
insert into dept (deptno, dname, loc) values (20, ‘RESEARCH’,
‘DALLAS’);
insert into dept (deptno, dname, loc) values (30, ‘SALES’, ‘CHICAGO’);
insert into dept (deptno, dname, loc) values (40, ‘OPERATIONS’,
‘BOSTON’)

select * from (select ename,sal,rank() over(order by sal desc) as
gradefrom emp) where grade=4;

  1.询问部门编号是20的职员和工人新闻。
  二.查询职业为CLE卡宴K的职员和工人号、员工名和机构号。
  3.询问奖金COMM高于报酬SAL的职员和工人新闻
  4.询问奖金高于薪酬2/10的职工音讯。
 
伍.询问部门编号是10并且专门的职业为MANAGE奥德赛的职工和单位编号是20还要工作是CLELacrosseK的职员和工人音讯。
  陆.查询职业不是MANAGE奥迪Q7和CLE奇骏K,并且薪水高于或等于3000的员工音讯。
  7.查询有奖金的职工新闻。
  八.查询全部职工的人数和她俩的平均薪给。
  九.询问未有奖金或奖金低于拾0的职工消息。
 拾.查询近期两年入职的职员和工人消息。 
 1一.询问工作年限超越或等于10年的职工音信。
  
  
SQL> select * from emp where deptno=20;
SQL> select empno,ename,deptno from emp where job=’CLERK’;
SQL> select * from emp where comm>sal;
SQL>  select * from emp where comm>0.2*sal;
SQL> select * from emp where deptno=10 and job=’MANAGER’ or
deptno=20 and job=’CLERK’;
SQL> select * from emp where job not in(‘MANAGER’,’CLERK’) and
sal>=2000;

insert into test (testName,testPass )select testName,testPass from test

——————-删除一张再一次的记录
create table cat(
catId int,catName varchar(40))

insert into cat values(1,’aa’)
insert into cat values(2,’bb’)

select *from cat
–一.把cat的记录distinct后的结果放在权且表里面去,约等于未有再一次的记录
select distinct * into #temp from cat
–清空cat表
delete *from cat
–把temp的数额(未有重新的笔录),在插入到cat表去,最终删除一时半刻表
insert into cat select *from #temp
drop table #temp
———————–#temp临时表

–约束unique,primary key
都是绝无仅有但是unique开张营业为null,但不得不唯拾一个,primary
key有复合主键primary key(test一Id,testname)
–一张表只好二个主键不过能四个外键
create table test1(
test1Id int primary key identity(1,1),
testname varchar(30) not null,test varchar(30) not null,
testage int)
–check(testage>拾0) 约束范围只可以选大于100,default默许约束


–备份数据库
backup database D1 to disk=’f:/sp.bak’
–删除数据库
drop database D1
–苏醒数据库
restore database D1 from disk=’f:/sp.bak’
–备份表

—-修改—把工钱低于100抓实一成 update 表名 set 字段名一=,字段名二= where
条件
—-删除—delete from 表名 where 条件
—nchar unicode 一字符 一汉字 一英文
—char 非unicode 二字符 一汉字 二英文
—-定义DDL 操作DML 查询DQL 控制DCL
—DATEDIFF(YEAR,STARTDATE,ENDDATE),LEN(),UPPER(),LOWER(),SUBSTRING(ENAME,1,1)
——–练习
–壹.列出至少多少个职员和工人的有着机关
–获得每一个部门有个别职工
select count(),deptno from emp group by deptno
select count(
),deptno from emp group by deptno having count(*)>1
–二.列出薪水比smith多的全体职工
–先寻觅她薪资
select *from emp where sal>(select sal from emp where
ename=’smith’)and ename<>’smith’
–三.列出具备职工的真名及其上级的真名
select w.ename b.ename from emp w,emp b where w.mgr=b.empno
–四.受雇日期晚于其间接上级的有着职员和工人
–搜索上级的光阴,和部属的时光
select w.ename from emp w,emp b where w.mgr=b.empno and
b.hiredate<w.hiredate
–5.单位名称和那一个单位的职工音讯,同时那多少个从没职员和工人的部门
select d.dname, e.ename, e.job from emp e right join dept d on
e.deptno=d.deptno
–6.”CLE奥迪Q5K”的全名及单位名称

–七.低于工资大于1500的种种工作
–每种职业是最低薪酬
select min(sal),job from emp group by job having min(sal)>1500
–八.列出在sale部的职业的职员和工人的全名
select ename,’sales’ from emp where deptno=(select deptno from dept
where dname=’sales’)
–玖.报酬高于集团的平均报酬的职员和工人
select from emp where sal>(select avg(sal)from emp)
–十.列出于“scott”从事同样工作的职工
select ename from emp where job=(select job from emp where
ename=’scott’)
–11.列出薪给等于部门30中的职员和工人的薪资的有着职员和工人的全名和薪给
select ename,sal from emp where sal in(select sal from emp where
deptno=30)
–1二薪资高于在机关30干活的保有员工的薪给的职员和工人姓名和薪俸
select ename,sal from emp where sal >(select max(sal) from emp where
deptno=30)
–一3.各种机关工作的职工数量,平均薪给,平均服务年限
select count(
),avg(sal),avg(datediff(year,hiredate,getdate())),deptno
from emp group by deptno
–14 给出不一样部门一律专门的学问的壹种组成
select distinct job,deptno from emp where job=’clerk’
–全部单位的详细消息和人口
select d2.dname,d2.loc,isnull(d.c,0) from dept d2 left join
(select count(*) c,deptno de from emp group by deptno) d
on d2.deptno=d.de

注:本例中要小心列名的重命名,期中as能够总结。

A.select姓氏,(sysdate-聘用日期)/七as周from雇员where部门标记=90;

——–子查询,嵌入在其余sql语句的select语句
–单行子查询,彰显与SMITH同一机关的装有职工
select * from emp where deptno=(select deptno from emp where
ename=’smith’)
———多行子查询,重临多行子数据的询问
–查询部门拾的办事同样的雇员名字,岗位,工资,部门号多行再次来到需求用到in,单行能够用=
select * from emp where job in(
select distinct job from emp where deptno=10 )
–排除10部门本人
select * from emp where job in(
select distinct job from emp where deptno=10 ) and(deptno !=10)
——–from 中使用子查询
–显示超越单位平均薪俸的职员和工人的音讯
–一.各种部门平均薪水
select avg(sal),deptno from emp group by deptno
–二.把地方的作为目前表 select * from emp两张表关联
select emp.ename ,sal,tem.myavg from emp,(select avg(sal) myavg,deptno
from emp group by deptno) tem
where emp.deptno=tem.deptno and emp.sal>tem.myavg

3一.询问各个办事类型的最低薪给,显示最低工资陵大学于1500的笔录。

  ORAV四DE凯雷德 BY公司名称,金额 DESC;

create table dept (
deptno int primary key,
dname nvarchar(30),
loc nvarchar(30))

select ename,sal from emp where sal>(select max(sal) from emp
wheredeptno=30);

A. SELECT 部门标记,AVG(薪给)

—————–多表查询
select from emp,dept–展现笛Carl集14四,所以相称
–展现雇员名雇员薪水及所在机构及机构号(emp.deptno)
–emp.deptno=dept.deptno那几个是至关主要的KEY把他们涉嫌起来
select ename,sal,loc,emp.deptno from emp,dept where
dept.dname=’sales’and emp.deptno=dept.deptno
–展现部门十,部门名,职员和工人名和薪水
select ename,sal,dname,emp.deptno from emp,dept where
emp.deptno=dept.deptno and emp.deptno=10
——————-自连接(内连接)
–显示某些职员和工人的上边一.明白福德上级编号
select mgr from emp where ename=’ford’
select ename from emp where empno=(select mgr from emp where
ename=’ford’)
–展现每种职员和工人的全名和她上级的名字,把emp表看做两张表利用外号worker,boss,让协和与投机涉嫌
———-select ename, mgr from emp where (select mgr from emp )
select worker.ename,boss.ename from emp worker,emp boss where
worker.mgr=boss.empno
——————左外连接,右外连接
———–把未有首席营业官的也呈现出来?–外连接(左,右)
–左外连接:把左侧表的记录整个出示,倘使没有匹配的笔录就用null
select worker.ename,boss.ename 老板 from emp worker left join emp boss
on worker.mgr=boss.empno
–右外连接:把左侧表的记录整个人作品显示,假诺未有相称的笔录就用null
select worker.ename,boss.ename 老板 from emp worker right join emp boss
on worker.mgr=boss.empno

2捌.询问雇员姓名以及其一向上级的姓名。

SQL> select a.ename,b.ename from emp a join emp b
on(a.mgr=b.empno);

——–分叶查询
–第三个到第八入职的(依据时间顺序)
–一.体现第二个到第7个入职的雇员
select top 4*from emp order by hiredate
–top :收取几条
–排除前五个在取五个即正是伍-十
select 6 *from from emp where emptno not in
(select top 4 emptno from emp order by hiredate)
order by hiredate
———————–identity(1,1)从1,每次+1自增长
create table test(
testID int primary key identity(1,1),
testName varchar(30),testPass varchar(30))

select a.* from emp a,emp b where a.hiredate<b.hiredate
anda.mgr=b.empno;

 

insert into emp (empno,ename,job,mgr,hiredate,sal,deptno) values
(7369,’SMITH’,’CLERK’,7902,’1980-12-17′,800.00,20);
insert into emp values
(7499,’ALLEN’,’SALESMAN’,7698,’1981-2-20′,1600,300,30);
insert into emp values
(7521,’WARD’,’SALESMAN’,7698,’1981-2-22′,1250,500.00,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7566,’JONES’,’MANAGER’,7839,’1981-4-2′,2975,null,20);
insert into emp values
(7654,’MARTIN’,’SALESMAN’,7698,’1981-9-28′,1250,1400,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7698,’BLAKE’,’MANAGER’,7839,’1981-5-1′,2850,NULL,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7782,’CLARK’,’MANAGER’,7839,’1981-6-9′,2450,NULL,10);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (
7788, ‘SCOTT’, ‘ANALYST’, 7566, ‘1987-4-19’, 3000, NULL, 20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (
7839, ‘KING’, ‘PRESIDENT’, NULL, ‘1981-11-17’, 5000, NULL, 10);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (
7844, ‘TURNER’, ‘SALESMAN’, 7698, ‘1981-9-8’, 1500, 0, 30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7876, ‘ADAMS’, ‘CLERK’, 7788, ‘1987-5-23’, 1100, NULL, 20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7900, ‘JAMES’, ‘CLERK’, 7698, ‘1981-12-3’, 950, NULL, 30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (
7902, ‘FORD’, ‘ANALYST’, 7566, ‘1981-12-3’, 3000, NULL, 20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7934, ‘MILLER’, ‘CLERK’, 7782, ‘1982-1-23’, 1300, NULL, 10);

select replace(ename,’A’,’a’)from emp;

  1.垄断SELECT语句的多表连接查询。

create table emp (
empno int primary key,
ename nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(9,2),
comm numeric(9,2),
deptno int foreign key references dept(deptno))
–因为deptno依照供给得做成外键

注:本例中用length函数求ename的尺寸。

 贰三.查询平均薪金低于三千的机关会同职员和工人新闻。
SQL>  select * from emp a join dept b on (a.deptno=b.deptno and
a.deptno in(select deptno from emp having(avg(sal))>2000 group by
deptno));

–总结:一.自接连,除上述也得以 from 表一 inner join 表2on(表一本身进入到表贰,上述where 该为on)
——–2.左连接,from 表一 left join 表2on(表一自个儿左插足到表二),把左边表的记录整个来得,假设没有相配的笔录就用null
——–叁.右连接,from 表一 right join 表二on(表一本身右参预到表二),把右侧表的笔录整个人作品显示,假设未有相配的记录就用null

 

Select nvl(10/价格,‘0’)from产品;

  1. 查询佣金低于十0的雇员。

A. 每个机构中最早的聘任日期

grant connect,resource,dba to System;

A.雇员表中最长的电子邮件地址

select ename from emp where ename=initcap(ename);

  HAVING AVG(薪金)>35 000

注:注意本例中对日期hiredate的拍卖。

伍.在SELECT语句中逐1子句的准确性顺序是如何?(C)

注:本例中用到了多表连接查询。

  ORDER BY 4;

select * from emp where job=(select job from emp where ename=’SCOTT’);

    FROM

 但倘使是sys用户,密码必须抬高as
sysdba,即全体密码为:change_on_install as sysdba

C.BETWEEN…AND…           D.=、< 和 >

select * from emp where sal>(select avg(sal) from emp);

A.IN、ANY和ALL            B.LIKE

select * from emp where hiredate<add_months(sysdate,-12*25);

  WHERE c.顾客标记=o.顾客标记

注:本例中用initcap函数把ename转化为首字母大写的款式来与ename相比较。

SQL> select count(*),avg(sal) from emp;
select * from emp where comm <100 or comm is null;
SQL> select * from emp where to_char(hiredate,’yyyy’) between 1981
and 2017;
–假如数据量大,转变很不可靠;–要是如下时间是两年前的那天
select * from emp where hiredate >=
to_date(‘1982-02-03′,’yyyy-mm-dd’);

3三.询问与‘SCOTT’职业一样的雇员消息。

WHERE

2四.询问姓名中涵盖‘A’的具有雇员姓名。

用三番五次查询完成
SQL> select ename from emp join dept on(emp.deptno=dept.deptno and
dept.dname=’SALES’);

2一.询问雇员的日薪给(假定每月30天)。

B.须要体现顾客下达订单的逐条日期

注:distinct用来把重复的破除掉。

D. select 姓氏,名字,薪水from雇员 where 薪给<二四千or 机关标记=十;

注:本例中用replace函数来把A替换为a。

D. HAVING AVG(薪金)>35 000

  1. 询问佣金(comm)高于报酬(sal)的雇员消息。

拾.假如需求制造包涵多行子查询的SELECT语句,能够动用哪个(些)相比运算符?(A)

①3.询问不带‘GL450’的雇员姓名。

    SELECT 部门标记,AVG(薪酬)

select ename from emp where length(ename)=6;

 1玖.查询至少有叁个职工的单位新闻。

select ename as 姓名,to_char(hiredate,’yyyy’)as
年份,to_char(hiredate,’mm’) as 月份 from emp order by hiredate;

   ORDER BY

select * from emp e where hiredate<(select hiredate from emp
whereempno=e.mgr);

D. 包罗空值的雇员表中的聘任日期

select ename as 姓名,months_between(sysdate,hiredate)/1二as
专门的学问年数,months_between(sysdate,hiredate) as 工作月数,sysdate-hiredate
as 事业天数 from emp;

 3.评估以下SQL语句:

select ename from emp where ename not like ‘%R%’;

2、具体操作

select dname,ename from dept d left join emp e on e.deptno=d.deptnoorder
by dname;

B. FROM 雇员 e,部门 d

二5.以年、月、日查询每位雇员的做事年限。

A.AVG B.MAX   C.STDDEV D.SUM 

select ename from emp where ename like ‘%A%’;

六.评估以下select语句:

注:本例很有手艺,大家多看1分钟,哈哈!

A. select 姓氏,名字,薪资from雇员 where 薪给>二伍仟and
单位标记=十;

===================================================================

    ORDER BY

26.查询至少有1个雇员的机关。

B. select 姓氏,名字,报酬from雇员 where 薪酬=二伍仟and 部门标记=10;

3】sqlplus  scott/ tiger

D. 部门表中绝非列出部门标志
SQL> select job a,min(sal) gongzi from emp group by a;
 

35.查询有个别雇员的全名和薪酬,条件是他们的薪水高于机关30中任1雇员的工资。

C.  SELECT

注:按组查询就用group by,having条件在分组后实行。

9.计算函数将对准()再次来到三个值,并在估测计算进程中()空值.()

壹】用 system / toolater 登记系统  manager

D.  SELECT

  1. 询问部门第10中学有着经营(MANAGE奥迪Q5)和部门20中装有公务员(CLE冠道K)的音讯。

  WHERE c.顾客标记=o.顾客标记

二三.查询各类雇员参预集团的气数。

  WHERE c.顾客标志=o.顾客标志

select distinct job from emp where comm>0;

D.须求出示与数码为25950的订单的下达日期壹致的装有订单

注:这里用months_between函数计算雇员职业的总月份。

将展现怎么结果?()

二】依次运维以下语句

假定“价格”列中包蕴空值,将会冒出什么样动静?()

伍.
询问部门第10中学具有经营、部门20中具备公务员和既不是高管又不是公务员但报酬大于三千的全部雇员音讯。

 
 
select ename,dname from scott.emp t1 inner join scott.dept t2 on
t1.deptno=t2.deptno where job=’CLERK’;

22.查询在5月份入职的雇员音信。

 四.询问在SALES部门办事的职员和工人的姓名音讯。
用子查询落成:
SQL> select ename from emp where deptno=(select deptno from dept
where dname=’SALES’);

Oracle 1一g中期维修改被锁定的用户:scott

  一.查询全数工种为CLE瑞鹰K的员工的人名及其部门名称。

叁七.查询从事同样种专门的学业但属于差异部门的雇员消息。

 
二.只要急需从顾客表和订单表中查询全体顾客及其下达的保有订单,并且须求查询结果中先按顾客所在店堂名称的升序排列,再按订单金额的降序排列。应进行以下哪条语句?()

注:五个日子相减得出它们之间的天命。

  FROM 雇员

在装置完Oracle10g和创制完oracle数据库之后,想用数据库自带的用户scott登6,看看连接是不是成功。

select ename,to_char(hiredate,’mm’) yue,to_char(hiredate,’yyyy’) nian
from emp
 order by yue,nian;

注:本例中用到字符型函数upper把小写转化为大写
,还要注意不等于<>的用法,不等于还有此外三种(!=和^=)。

A. SELECT 产品名称 FROM 产品 WHERE 费用>(SELECT AVG(开支) FROM
产品);

  1. 查询各月最后1天受雇的雇员音讯。

D. SELECT c.顾客标记,c.公司名称,o.订单日期,o.顾客标记,o.金额

用实际的演练题来上学吧!(本文使用oracle自带的表:emp表、dept表)

  GROUP BY 部门标志

select * from emp where comm>sal;

Select部门标记“部门”,avg(工资)“平均值” from 雇员group by部门;

27.查询薪酬比‘SMITH’多的雇员消息。

1肆.询问薪金比SMITH员工薪资高的有所职工消息。
 select * from emp where sal>(select sal from emp where
ename=’SMITH’)

select a.ename as 姓名,b.ename as 上级姓名 from emp a,emp b where
a.mgr=b.empno;

C. GROUP BY 部门标志

select * from emp where sal>(select sal from emp
whereename=’SMITH’);

 

注:本例能够接近的当作多表连接查询,只可是是八个同样的表。

B. SELECT c.顾客标识,c.公司名称,o.订单日期,o.顾客标志,o.金额

alter user scott account unlock;

(1)依据Oracle数据库scott方案下的emp表和dept表,达成下列操作:

select ename as 姓名,sal/30 as日薪 from emp;

  

select * from emp where (deptno=10 and job=’MANAGER’) or (deptno=20
andjob=’CLERK’);

   GROUP BY

select deptno,min(sal) from emp where job=’MANAGER’ group by deptno;

B. 不能够在group by 字句中动用列别称

一5.查询全部雇员姓名并用‘a’替换‘A’。

WHERE

注:本例中值得学习的是rank() over()的用法,rank为跳跃排序,若一,1则接下去就是3.本例就是用rank大多据按sal排序。

  WHERE c.顾客标志=o.顾客标志

select ename,job,sal from emp order by job desc , sal;

 伍.查询全体职工的姓名及其直接上级的全名。

注:提供三种做法供大家参考。

B.  SELECT

注:本例中的排序用法大家要铭记在心嗷!

玖.使用UNION将薪俸超越2500的雇员音讯与做事为CLEEscortK的雇员新闻统一。
SQL> select ename,sal,job from emp where sal>2500 union select
ename,sal,job from emp where job=’CLERK’;

select ename from emp order by hiredate;

1七.查询全部职员和工人薪金都超过1200的机关的音讯。
SQL> select * from dept where deptno in(select deptno from emp
having(min(sal))>1200 group by deptno);
 
18.询问人数最多的部门音讯。
SQL> select * from dept where deptno in(select deptno from emp
having(count(*))
=(select max(count(*)) from emp group by deptno) group by deptno);

  1. 列出富有公务员的真名、编号、部门。

C. 雇员表中最晚的聘任日期

select job,min(sal) from emp group by job having min(sal)>1500;

(二)习题

32.询问薪俸高于公司平均报酬的雇员消息。

七,以下哪些说法科学的解释了不只怕施行以下sql语句的原委? ()

select * from emp order by ename;

B. SELECT 产品名称 FROM 产品 WHERE 开支> AVG(开销);

20.查询全数雇员的人名和入职的年度和月份,按雇员受雇日所在月排序,将最早年份的排在后边。

    GROUP BY

34.询问有些雇员的人名和薪资,条件是他俩的薪饷高于机关30中持有雇员的薪金。

1六.询问部门人数超过5的机关的职工新闻。
SQL> select * from emp where deptno in(select deptno  from emp
having(count(*))>5 group by deptno);

30.查询部门名称和那么些部门的雇员以及从未雇员的机关。

WHERE

select * from emp where to_char(hiredate,’mm’)=02;

 

在cmd命令中,用“sqlplus  scott/ tiger”登入时,老是提醒如下讯息:
E奥迪Q7ROLacrosse:ORA-2七千:账户已被锁定。

A. 不恐怕对薪资求平均值,因为并不是享有的数值都能被平均

select ename,sal from emp where sal>(select min(sal) from emp
wheredeptno=30);

 20.查询薪金超越本机关平均报酬的职员和工人新闻。
SQL> select * from emp a  where sal>(select avg(sal) from emp b
where a.deptno=b.deptno group by deptno);

注:本例中要注意left join
的用法,就是率先提取dept表中保有的dname,再加上与dapt和emp相相称的数码项。

D. SELECT 产品名称 FROM(SELECT AVG(花费) FROM 产品) WHERE 花费>
AVG(开支);

select ename,(sal+nvl(comm,0))*12 as 年薪 fromemp order by 年薪;

SQL> select ename,DNAME from emp a join dept b on(a.deptno=b.deptno)
where job=’CLERK’;

注:那些例子相比有技巧,大家要优质讨论。

   

  1. 询问抽取回扣的雇员的不及职业。

  O奇骏DETiggo BY公司名称,金额;

select * from emp where deptno=30;

 

select ename as 姓名,add_months(hiredate,12*十)as 工作年龄满10年时的日子
from emp;

 六.以下哪些运算符可用于多行子查询?(A)

select ename from emp where nvl(comm,0)<100;

  O奥迪Q伍DEKoleos BY 金额 DESC, 集团名称;

select a.ename,a.job,a.deptno,b.deptno,b.job,b.ename from emp a,emp
bwhere a.job=b.job and a.deptno!=b.deptno;

Select min(聘用日期),部门标记from雇员group By部门标志;

1二.询问正好为多少个字符的雇员姓名。

  O汉兰达DE大切诺基 BY公司名称 ASC,金额 DESC;

select d.deptno,dname,count(ename) from dept dleft join emp e
on(e.deptno=d.deptno) group by dname,d.deptno order byd.deptno;

 

select * from emp wherehiredate=last_day(hiredate);

三.假存在雇员表结构同上,以下哪条sql语句会准确地展示部门90中具备的雇员的姓氏和特别聘用的周数?()

select * from emp where (deptno=10 and job=’MANAGER’) or (deptno=20 and
job=’CLERK’) or(job<>upper(‘manager’) and
job<>upper(‘clerk’) and sal>2000);

C. group by 子句中必须有要分组的始末

select ename,empno,dname from emp e,dept d where e.deptno=d.deptno
andjob=upper(‘clerk’);

  AND 雇员.部门标志>四千

select * from emp where months_between(sysdate,hiredate)/12>25;

 A.不再次回到任何行            B.再次来到表中的全数行

2九.询问入职日期早于其平素上级的雇员音讯。

 

36.查询每种单位的音信以及该部门中雇员的数量。

C.select 姓氏,周数 from 雇员 where  部门标识=90;

一7.查询雇员的音讯,按姓名排序。

    A.IN             B.<>           C.=             D.LIKE

1九.询问雇员的真名、事业、薪给,按专门的学问的降序排序,工作同样时按薪给升序排序。

SQL> select * from emp where hiredate <=
to_date(‘1981-10-10′,’yyyy-mm-dd’);
====》很low,使用函数能够解决;
–要几年有几年,而天贶份可相信,不供给每便钦点;
select * from emp where months_between(sysdate,hiredate)/12 >10;

  1. 询问部门30中的雇员音信。

 
select ename,(sysdate-hiredate)/7 as zhou from emp where deptno=10;
4.要是产品表中包涵价格number(七,二)列,对于上面的讲话?

3捌.询问各样部门的经营的最低薪资。

A. date    B. number    C. datetime      D. integer

select ename 姓名,sysdate-hiredate as职业天数 from emp;

B. 雇员表中最早的招聘录用日期

select * from emp where comm>sal*0.6;

C. SELECT c.顾客标志,c.公司名称,o.订单日期,o.顾客标记,o.金额

grant all privileges TO System;

 C.重回空值                D.重回错误

40.查询报酬水平为4的雇员音信。

  FROM 顾客 c,订单 o

1一.询问唯有首字母大写的雇员姓名。

   FROM

3九.询问全体雇员的年薪并按年薪排序;

 

select substr(ename,1,3) from emp;

 7.假使数据库中有顾客表和订单历史记录表。当中,顾客表中包含:客户标志NUMBE奥迪Q3(5)、
姓名VA途乐CHAPAJERO二(二五)、信用贷款限额NUMBEPRADO(捌,二)、开户日期(DATE);订单历史记录表中回顾:
订单标志NUMBE奥迪Q7(五)、客户标记NUMBEPAJERO(伍)、订单日期(DATE)、计算NUMBE智跑(8,2)。
以下哪个种类方案必要使用子查询来回到需求的结果?()

注:日期是力所能及相当大小的,本例中用add_months函数把当下日期总计到25年前。

C.将显示10值

1陆.询问全数雇员的全名和工作年龄满拾年时的日期。

    GROUP BY

注:用nvl函数来对为空值的comm实行处理,若comm为空,则把空值转化为0来与十0比较。

  2.调节SELECT语句的子查询。

A.必要出示每一个消费者账户下的开户日期

   WHERE

HAVING  

壹叁.询问与SMITH职员和工人从事一样职业的具有职工信息。
SQL> select * from emp where job=(select job from emp where
ename=’SMITH’);

B. 将显示0值

八.如若希望在报表中显得开销值高于全部产品平均资金财产的产品名称,应选择以下哪些SELECT语句?()

三.查询全部职工及其部门音讯,包含那多个还不属于别的机关的职工。
SQL>  select dname,ename from dept a right join emp b
on(a.deptno=b.deptno);  

5.假诺须要从雇员表中查询部门10(销售部)中薪酬不足25000日元的雇员音信,应进行以下哪些查询语句才能一呵而就此任务?
()

  FROM 顾客 c,订单 o

1一.选取MINUS集合查询薪俸高于2500,但做事不是ANALYST的雇员新闻。
SQL> select * from emp where sal>2500 minus select * from emp
where job=’ANALYST’;

    ORDER BY

 12.询问职员和工人音讯,供给以首字母大写的秘诀呈现全体职工的真名。
 壹3.查询职员和工人名正好为五个假名的职员和工人新闻。
 1四.询问职员和工人名字中不包罗字母S的职工
 壹伍.查询职员和工人姓名的第贰个字母为M的职员和工人新闻。
 16.询问所有职工姓名的前多少个字符。
 一七.查询全部职员和工人的全名,假若含有字母s,则用S替换。
 1捌.查询员工的姓名和入职日期,并按入职日期从先到后开始展览排序。
 1九.展示全体职工的姓名、专门的工作、薪金,按职业降序排序,若职业同样则按薪金升序排序。
 20.呈现全体职工的真名、入职的年份和月份,按入职日期所在的月度排序,若月份同样则按入职的年份排序。
  二1.查询种种部门中的职员和工人数量、平均薪酬和平均工时限制。
  2二.查询种种部门的人口及平均工资。
  二三.查询种种专门的学问的最低薪酬,并出口最低薪俸低于两千的办事名称。
  二四.查询各样部门中分化工种的万丈工资。
  二5.总括种种工种的职员和工人人数与平均薪酬。
 
 
SQL> select initcap(ename) from emp;
SQL> select * from emp where vsize(ename)=6;
select * from emp where ename not like ‘%S%’;
SQL> select * from emp where ename like ‘_M%’;
select substr(ename,1,3) from emp;
select replace(ename,’s’,’S’) from emp
SQL> select ename,hiredate from emp order by hiredate;
SQL> select ename,job,sal,hiredate from emp order by job desc,sal;

回去的值属于那种数据类型?()

C.雇员表中“电子邮件”列中的各样值的字符数

  FROM 顾客 c,订单 o

E. ORDER BY 4;
select a.empno,a.ename,b.dname from emp a,dept b where a.deptno=b.deptno
and emp.deptno>20;
SQL>  select a.empno,a.ename,b.dname,a.sal from emp a,dept b where
a.deptno=b.deptno and a.deptno>20;
SQL>  select a.empno,a.ename,b.dname,a.sal from emp a,dept b where
a.deptno=b.deptno  order by 4;
 4.评估以下语句:

  OSportageDE安德拉 BY部门标志;

SQL> select * from dept where deptno in (select deptno from emp
having(count(*))>1 group by deptno);

A. SELECT

C. SELECT AVG(开销), 产品名称 FROM 产品 WHERE 开销>
AVG(开销)GROUP BY 产品名称;

B. WHERE 职责标记<> 6玖 87九

 八.查询十号部门职员和工人及其监护人的新闻。
SQL> select a.ename,b.ename from emp a join emp b on(a.mgr=b.empno
and a.deptno=10);

 

创建视图的权杖  :grant create any view to xxx; 
 ps aux|grep smon   –查询uix系统oracle实例名称

1、涉及内容

  FROM 雇员 e,部门 d

 select hiredate,hiredate+1 from emp;

    ORDER BY

D.该语句将战败,因为值不可能被空值除
SQL> create table t1(id int,name varchar2(20));
SQL> insert into t1 values(null,’bb’);
SQL> select nvl(10/id,’0′) from t1;

1二.查询薪金高于集团平均薪俸的有着职员和工人音讯。
SQL> select * from emp where sal>(select avg(sal) from emp);

哪些字句的语法有错误?()

  FROM 顾客 c,订单 o

SQL> select dname,ename from dept a left join emp b
on(a.deptno=b.deptno); 

 

   HAVING

 
壹.只要急需将雇员表中的具备行连接到雇员表中的享有行,则应创制哪一种档案的次序的连接?()

二.询问全体部门及其职员和工人消息,包括这么些尚未职员和工人的机构。

    FROM

HAVING  

Select聘用日期+总括月份from雇员;

A.SELECT c.顾客标志,c.公司名称,o.订单日期,o.顾客标志,o.金额

A.avg B.count C.max D.min

    SELECT e.雇员标记,e.姓氏,e.名字,d.部门名称

 七.查询从事同样种工作但不属于同一机关的职员和工人音信。
SQL>  select a.ename,a.job,a.deptno,b.ename,b.job,b.deptno from emp a
join emp b on(a.job=b.job and a.deptno<>b.deptno);

B.雇员表中每种雇员的电子邮件地址

SQL查询

(1)使用Scott方案下的emp表和dept表,实现以下操作:

  WHERE e.部门标志=d.部门标志

SQL> select
count(*),avg(sal),deptno,round(avg(months_between(sysdate,hiredate)/12))
 gongling from emp group by deptno;
 SQL> select deptno,count(*),avg(sal) from emp group by deptno;
—查询各办事最低薪给,输出薪给低于贰仟的做事名称;
select min(sal),job from emp group by job
 union 
select sal,job from emp where sal<3000;
  
select max(sal),job from emp group by job;
select job,avg(sal),count(*) from emp group by job;

D.select姓氏,(sysdate-聘用日期)as周from雇员where部门标识=90;

C. select 姓氏,名字,薪酬from雇员 where 薪给<贰4000and
单位标记=⑩;

select length(电子邮件)from雇员;

8.应使用以下哪些总计函数来显示雇员表中的参天薪酬值?()

十.可对数据类型为date的列使用以下哪些总计函数?()

GROUP BY

C. WHERE e.部门标志=d.部门标志

HAVING  

D.“电子邮件”列中允许采纳最多的字符数
select length(‘aa’) from dual;
 

A.该语句将失利,因为值无法被0除

A. SELECT e.雇员标志,e.姓氏,e.名字,d.部门名称 

10.因此INTE凯雷德SECT集结运算,查询薪酬超过2500,并且工作为ANALYST的雇员消息。
SQL> select ename,sal,job from emp where sal>2500 intersect
     select ename,sal,job from emp where job=’ANALYST’;

将展现哪个值?()

何以子句限制了回来结果?请选拔五个科学答案。(BD)

  WHERE 任务标记<> 6玖 87九

    A.等值连接    B.笛Carl乘积  C.内连接  D.外连接

 22.询问各类职工的领导所在单位的信息。
SQL>  select * from (select a.ename,b.deptno from emp a join emp b
on(a.mgr=b.empno)) a join dept b on(a.deptno=b.deptno);

陆.查询入职日期早于其上级领导的富有职员和工人的新闻。
SQL>  select a. ename from emp a join emp b on(a.mgr=b.empno and
a.hiredate<=b.hiredate);

 二一.查询工资当先本单位平均薪金的职员和工人音讯及其部门的平均薪俸。
select * from (select * from emp a  where sal>(select avg(sal) from
emp b where a.deptno=b.deptno group by deptno)) c join
 (select avg(sal),deptno from emp group by deptno) d
on(c.deptno=d.deptno);

C.必要出示在一定日期下达的具备订单

(二)习题

二.若雇员表蕴含以下列:姓氏varchar2(20)、名字varchar二(20)、聘用日期date、总计月份number(3),那么下列的select语句?

相关文章