oracle-sql语句作业,Oracle SQL select练习语句

Oracle SQL语句大全

1.desc(描述) emp    描述emp这张表

2.desc    dept       部门表

3.desc salgrade      薪水等级

4.select *from table 查找表中的元素

5.dual     是系统中的一张空表

6.select *from dual

7.select sysdate from dual 取出系统时间

8.select ename,sal*12 "annul sal"(取的别名) from emp; 查找用户姓名和用户的年薪

9.任何含有空值的数学表达式的值都是空值

select ename,sal*12+comm from emp;

10.select ename||sal from emp 其中的||相当于将sal全部转化为字符串

11.表示字符串的方法 select ename ||'ajjf' from emp;

12.如果其中有一个单引号就用2个单引号来代替他 select ename||'sakj' 'lds'from emp;

13.select distinct deptno from emp     (去除部门字段中重复的部分,关键字distinct)

14.select distinct deptno,job from emp;(去除这2个字段中重复的组合)

15.select *from dept where deptno=10;     取出条件(取出部门编号为10的记录)

16.select * from emp where ename='CLIRK'; 取出部门中姓名为clirk的记录(注意取出过程中ename用单引号隔开)

17.select ename,sal from emp where sal>1500; 取出部门中薪水大于1500的人的姓名

18.select ename,sal,deptno from emp where deptno<> 10 取出部门中的部门号不等于10的

19.select ename,sal,deptno from emp where ename>'CBA' 取出部门中员工名字大于CBA的员工(实际比较的是ACIIS码)

20.select ename,sal from emp where sal between 800 and 1500    select ename,sal from emp where sal>=800 and sal<=1500;   (取出800和1500之间的数)

21.select ename,sal,comm from emp where comm is null (选出其中的空值)

select enmae,sal,comm from emp where comm is not null(选出其中的非空值)

22.select ename,sal,comm from emp where sal in (800,1500,2000);取出这3者之中的

select ename,sal,comm from emp where ename in('simth');

23.select ename,sal,hiredate from emp where hiredata>'3-04月-81';符合条件的日期

24.select ename,sal,from emp where sal>1000 or deptno=10;       找出工资薪水大于1000或者部门号等于10的员工

25.select ename,sal from emp where sal not in(500,1000);        查找薪水不在500到1000的员工姓名和月薪

26.select ename,sal from emp where ename like '%ALL%';

select ename,sal from emp where ename like '_%A%'; 查找姓名中含有ALL的客户信息,一个横线代表一个通配符

27.select ename,sal from emp where ename like '_%$%%' escape '$'; 自己指定转易字符

28.select * from dept order by deptno

对表中元素按部门号排序

select *from dept order by deptno desc 默认为升序,可以用desc按降序

29.select ename,sal from emp where sal <>1000 order by sal desc   按照查询条件来查询,并排序(asc升序排列)

30.select ename,sal*12 from emp where ename not like '_%A%' and sal>800 order by sal desc

31.select lower(ename) from emp 将ename都转化为小写    lower是函数能将字母转化为小写

32.select ename from emp where lower(ename) like '_%a%'; 找出ename 中所有的含有a的字符

33.select substr(ename,2,3) form. emp            从第2个字符开始截取3个字符

34.select chr(65) from dual;          将65转化为字符

35.select ascii('A') from dual         将ACSII码转化为字符串

36.select round(23.565)from dual     四舍五入

36.select round(23,4565,2)from dual 四舍五入到第二位

37.select to_char(sal,'$99.999.9999') from emp 按指定格式输出    select to_char(sal,'L99,999,9999') form. emp L代表本地字符

38.select hiredate from emp    select to_char(hiredate,'YYYY-MM-DD HH:MI:SS) from emp; 时间格式的显示

select to_char(sysdate,'YYYY-MM-DD HH:MI:ss) from dual;          十二小时制显示系统时间

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS) from dual         二四小时制显示系统时间

39.select ename,hiredate from emp where hiredate > to_date('2005-2-3 12:32:23','YYYY-MM-DD HH:MI:SS');

40 select sal from emp where sal>to_number('$1,250.00','$9,999.99'); 取出比它大的一切字符串(把特定格式的数字转化成字符)

41 select ename,sal+nvl(comm,0) from emp;     讲comm值为空的用0来替换,单行函数(以一条记录为条件)一条对一条

42.select Max(sal) from emp;    select Min(sal) from emp;    select avg(sal) from emp;    select sum(sal) from emp;

select count(*) from emp;   查看表中一共有多少条记录

select count(*) from emp where deptno=10;          查找部门10一共有多少人;

43.select avg(sal),deptno from emp group by deptno;   按部门号进行分组

select deptno,job,max(sal) from emp group by job,deptno; 按工作和部门号进行分组;

44.select ename from emp where sal=(select max(sal) from emp); 子查询,查找部门中薪水最高的员工姓名

45.group by 注意:出现在select列表中的字段,如果没有出现在组函数中必须出现在group by子句中

46.select avg(sal),deptno from emp group by deptno having avg(sal)>2000;    选出部门中平均薪水大于2000的部门,

47.select * from emp where sal>100 group by deptno having ..........order by........    先取数据--过滤数据------分组----对分组限制-------排序

48.select avg(sal) from emp where sal>2000 group by deptno having avg(sal)>1500 order by avg(sal) desc;    查找部门中平均薪水打印2000的员工并按部门号进行排序,查询分组后的平均薪水必须大于1500,查询结果按平均

薪水从低到高排列

49.select ename from emp where sal>(select avg(sal) from emp);    查找出员工中薪水位于部门平均薪水之上的所有员工

50.

select ename,sal from emp join  (select deptno,max(sal) max_sal from emp group by deptno) t on (emp.sal =t.max_sal and emp.deptno=t.deptno)

/

查找每个部门中薪水最高的

51.select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno;           表的自连接   上级的名字

52.select dname,ename from emp cross join dept         交叉连接,笛卡尔 SQL99中的新语法

53.select ename,dname from emp join dept on(emp.deptno=dept.deptno);

54.select ename,dname from emp join dept using(deptno);            查找emp和dept表中deptno相同的部分。

55.select ename,dname,grade from emp e join dept d on(e.deptno=d.depno)                                        join salgrade s(e.sal between s.losal and s.hisal)   (三表查找)

where ename not like '_%A%';

56.select e1.ename,e2.ename from emp e1 join emp e2 on(e1.mgr=e2.deptno); 表的自连接

57.select e1.ename,e2.ename from emp e1 left join emp e2 on(e1.mgr=e2.deptno) 左外表连接    select ename,dname from emp e right join dept d on(e.deptno=d.deptno)右外连接    select ename,dname from emp e full

join dept d on(e.deptno=d.deptno)全连接

58.求部门中薪水最高的    select ename,sal from emp join (select max(sal) max_sal, deptno from emp group by deptno) t    on (emp.sal=t.max_sal and emp.deptno=t.deptno);

59.求部门中薪水等级的平均值    select deptno,avg(grade) from(select deptno,ename,grade,from emp join salgrade s on(emp.sal between s.losal and s.hisal))t group by deptno;

60.查找雇员中哪些是经理人    select ename from emp where empno in(select mgr from emp);

61.select distinct e1.sal from emp e1 join emp e2 on(e1.sal(e1.sal62.select deptno from (select avg(sal) max_sal deptno from emp group by deptno) where max_sal=(select max(avg_sal) from (select avg(sal) avg_sal deptno from emp group by deptno));           查找部门中部门薪

水最大的部门号

63.求平均薪水最大的部门的部门编号    select deptno,avg_sal from(select avg(sal) avg_sal,deptno from emp group by

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值