oracle训练

Posted story

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle训练相关的知识,希望对你有一定的参考价值。

1、显示当前用户;

  show user;

2、查看当前用户的所有表;

  select * from tab;

3、如要重复上一条命令,则在sqlplus上输入‘/‘即可(没成功- -);

4、取别名:

  select newid "编号",title"标题" ,content"内容" from news;

5、查询所有的标题(distinct防止重复)

  select distinct title from news;

6、要求按照特定格式输出(如NO:1,Title:haha,CONTEXT:...)注:||为连接字符串的符号:

  select ‘NO:‘||newid,‘title:‘||title from news;

7、列出有评论的新闻标题;

  select title from news where content is not null; 

8、要求评论字数大于100,同时标题里面有挂的标题;

  select title from news where length(content)>10 and instr(content,‘挂‘)>0;

9、判断是否包含字符串的方法:

  select * from news where instr(content,‘挂‘)>0;

  select * from news where content like‘%挂%‘;

建立员工表和雇佣表:

1、查询在1981年雇佣的全部雇员信息,between...and 包含等于的情况

  select * from emp where hirdate between ‘01-jan-81‘ and ‘31-dec-81‘;

2、要求查询出雇员编号不是 7369、7499的雇员信息

SQL> SELECT * FROM emp

WHERE empno NOT IN(7369,7499);

3、SQL中LIKE语句要注意通配符 % 和 _

SQL> SELECT * FROM emp

WHERE hiredate LIKE ‘%81%‘;

4、查看雇员编号不是7369的雇员信息,使用<>或!=

SQL> SELECT * FROM emp

WHERE empno<>7369;

5、要求对雇员的工资由低到高进行排序,升序为默认(ASC),降序(DESC)

SQL> SELECT * FROM emp

GROUP BY sal;

6、查看出部门号为10的雇员信息,查询的信息按照工资从高到低,若工资相等则按雇用日期从早到晚排列

SQL> SELECT * FROM emp

WHERE deptno=10

GROUP BY sal DESC,hiredate ASC;

7、找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料

SQL> SELECT * FROM emp

WHERE (deptno=20 AND job=‘MANAGER‘)

OR (deptno=10 AND job=‘CLERK‘);

8、找出既不是经理又不是办事员但其薪金大于或等于2000的所有员工的资料

SQL> SELECT * FROM emp

WHERE job NOT IN(‘MANAGER‘,‘CLERK‘) AND sal >=2000;

9、找出有奖金的员工的不同工作

SQL> SELECT DISTINCT job FROM emp

WHERE comm IS NOT NULL;

10、找出各月倒数第3天受雇的所有员工

SQL> SELECT * FROM emp

WHERE LAST_DAY(hire_date)-2=hire_date;

11、找出早于12年前受雇的员工(返回的是月,months_between(date1,date2),date1在后是正数)

 SELECT * FROM emp

WHERE MONTHS_BETWEEN(sysdate,hiredate)/12 > 12;

以上是关于oracle训练的主要内容,如果未能解决你的问题,请参考以下文章

经典算法题:深度和广度优先遍历(Oracle笔试题)

oracle上课 学习2

oracle 7.4安装nvidia驱动

DBA实战训练营重磅预告

怎么把数据从oracle11迁到oracle12

linux 怎么查找oracle11g的安装目录