1.数据文件:就是orclae\product\10.2\oradata\orcl文件下面的DBF文件,表空间由多个数据文件组成
2.cmd连接数据库:sqlplus scott/tiger
3.将文件输入到d盘 spool d:\a.txt 清屏:host cls
4.显示用户:show user 当前用户下面的表:select * from tab;
5.设置行宽 :set sizeline 150 ,设置列宽:col ename for a8(---a代表字符串,9代表数字) /:表示执行上一条sql语句
6.sql优化原则:
a.尽量使用列名代替*
b.where解析的顺序是:右->左
c.尽量是用where
7.SQL中的null
a.包含null的表达式永远为空(使用orclae的虑空函数nvl(comm,0))
b.null永远!=null(判断是否为空的时候使用IS NOT NULL)
c.如果集合中含有null,不能使用 not in;但那是可以使用in
8.列的别名
select ename as "员工名" ,ename "员工名",ename 员工名 from emp;
9.select distinct deptno,ename from emp;--作用于后面的所有的列
10.连接字符串concat函数和使用||
11.查询名字中有下划线的员工
select * from emp where ename like '%\_%' escape '\'
11.orcale是自动开启事务的
12.orcale中,null是最大的
13.select * from emp order by comm desc nulls last
14.单行函数:
substr(a,b) 从a中,第b位开始截取
substr(a,b,c)从a中,第b位开始取,取c位
15.length:字符数 lengthb:字节数
16.trim(a,b)去掉前后指定的字符
17.replace(a,b.c)替换
18.rodund(a,b) --四舍五入,可以使用日期
19.trunc --截取,可以使用日期
20.orclae中 的date=日期+时间
21.显示当前的时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
22.select (sysdate-1) 昨天 from dual; 两个日期相减返回天数
23.--隐身转换:select * from emp where deptno='10' --真确
24.nvl2(a,b,c) 当a=null时候,f返回c,否则返回b
25.case if
select ename,job,sal 涨前,case job when 'PRESIDENT' then sal+1000 end 涨后 from emp;
select ename,job,sal 涨前,decolde(job,'PRESIDNENT',sal+1000,'MANGER',sal+800,sal+400)涨后 from emp;
26.分组函数,包含早group by自居中的列不必包含在select列表中,反之则必须
27.不能在where子句中使用组函数
28.group by 的增强:
select deptno,job,sum(sal) from emp group by deptno,job
+
select deptno,sum(sal) from emp group by deptno
+
select sum(sal) from emp
=
select deptno,job,sum(sal) from emp group by rollup(deptno,job);
29.break on deptno skip 2 --相同的部门号只显示一次,不能的部门号跳过两行
2016/2/7 11:53