Oracle复习知识点汇总
Oracle认证考试由Oracle公司授权国际考试认证中心对考生进行资格认证的。那么Oracle认证考试复习要点有哪些呢?下面跟yjbys小编一起来学习吧!
desc emp; 显示emp表的结构
select count(*) FROM emp; 统计记录条数 count(*)是统计函数
SELECT * FROM emp; 查询所有的列
SELECT ename,hiredate FROM emp; 查询员工的入职时间(投影)
SELECT ename,sal AS Salary,job FROM emp; 查询员工的sal,显示为Salary---------结果是显示为SALARY
SELECT ename,sal "Salary",job "Job" FROM emp; 更改5为如此,as可以省略
******************select 子句的功能****************
SELECT ename,sal,sal*12 "Year_Salary" FROM emp; 查询员工的年薪,显示为Year_Salary
SELECT ename,sal,comm,sal+comm "Month_sal" FROM emp; 查询员工月总酬劳(月薪+奖金)-------结果出现NULL
SELECT ename,sal,nvl(comm,0) "Comm",sal+nvl(comm,0) "Month_sal" FROM emp; 更改点7,nvl(列名,值)表示如果该字段为NULL则把它转换为该值
SELECT ename || ' works as '|| job "work" FROM emp; ||为连接表达式,可随意连接额外的字符-------注意:额外字符要用''括起来
SELECT distinct job FROM emp; distinct作用是去掉重复值
***************where 子句的功能******************
SELECT ename,deptno,job from emp where deptno=&no; 利用绑定变量的形式查询不同部门的员工姓名,所在部门,职位;&no是我们待输入的值
SELECT ename,job FROM emp WHERE sal between &sal1 and &sal2 需要多少个参数就定义多少个变量
SELECT ename,sal,job FROM emp where job='MANAGER';查询职位是“MANAGER”的职员信息-----注意:=后要用' ',表中的数据有大小写区分
SELECT ename,sal FROM emp where sal between 1500 and 3000; between...and的用法,查询工资在1500~3000员工信息;取反为:not between
SELECT ename, deptno,job from emp where deptno=10 or deptno=20; or的用法,只要一个满足条件就显示
SELECT ename, deptno,job from emp where job in('MANAGER','ANALYST'); 14、in的用法,可代替or,只要满足括号里的一个字段就显示;取反为:not in
SELECT ename,job from emp where ename like 'M%' like用作模糊查询,%表示0或多个字符,_表示任意单个字符,如'_M%'则表示第二个字符为M的字段;取反为:not like
SELECT ename,job from emp where ename like 'A\_%' ESCAPE '\'; 显示以A_***格式的字段,escape表示\后面的字符不作为通配符来用
SELECT ename,comm FROM emp where comm is NULL; 查询没有奖金的员工,即comm为空,不可以写为comm=null;取反:is not null
SELECT ename,job FROM emp WHERE job <> 'SALESMAN'; 查询职位表示SALESMAN的员工,<>表示为不等于
SELECT ename,sal,deptno FROM emp WHERE sal>=1000 and deptno=10 or deptno=20; 先对A和B求交集,再和C求并集
SELECT ename,sal,deptno FROM emp WHERE sal>=1000 and (deptno=10 or deptno=20); 先对B和C求并集,再和A求交集
Alter session set nls_language='AMERICAN'; 转换为英文环境
Select *from emp where hiredate between '01-JAN-81' and '31-DEC-81'; 查询入职年份为1981的员工信息
***************order by子句的功能***************************
正序(asc)是从小到大,倒序(desc)是从大到小
SELECT ename,sal,deptno
SELECT ename,sal,deptno FROM emp order by deptno,sal DESC; 先对deptno进行正序排序(asc省略了),后对sal进行倒序(DESC)排序
desc dual; dual是一个虚表,只有一个字段
select * FROM dual;
***********************单行函数**************************
*******1、字符函数*******
SELECT lower('Sql Server') from dual; lower()转换为小写
SELECT initcap('sql server') FROM dual; initcap()首字母大写
SELECT * FROM emp WHERE upper(ename)='SCOTT'; upper()转换为大写,在不知道其数据的大小写情况下使用方便
SELECT concat('hello', 'world') from dual;concat()连接字符串
SELECT substr('helloworld', 3, 3) FROM dual; substr(字符串,开始位置,截取长度)截取子串,从1开始算
SELECT length('helloworld') FROM dual; length()求字符串长度
SELECT lpad('hello',10,'#') FROM dual; lpad(原字符串,设置的总长度,定义字符),不足总长度就左边补字符
SELECT rpad('hello',10,'#') FROM dual; rpad(原字符串,设置的总长度,定义字符),不足总长度就右边补字符
*******2、数字函数********
SELECT round(45.678,2) from dual; round()四舍五入,默认有效位为0---------特例,当有效位为-1,结果是50
SELECT trunc(45.678,-1) FROM dual; trunc()截取----------- 特例,当有效位为-1,结果是40
select mod(16,5) FROM dual; mod()取模,相当于C语言中的%运算符,如16%5=1
*******3、日期函数********