视图的概念:视图就是提供一个查询的窗口,所有数据来自于原表。
视图的作用?
第一:视图可以屏蔽掉一些敏感字段。
第二:保证总部和分部数据及时统一。
注意:创建视图【必须有dba权限】
---查询语句创建表 create table emp as select * from scott.emp;
--查询视图 select * from emp;
索引的概念:索引就是在表的列上构建一个二叉树
达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。
单列索引:
---创建单列索引 create index idx_ename on emp(ename);
---单列索引触发规则,条件必须是索引列中的原始值。 ---单行函数,模糊查询,都会影响索引的触发。 select * from emp where ename='SCOTT'
复合索引:
---创建复合索引 create index idx_enamejob on emp(ename, job);
---复合索引中第一列为优先检索列 ---如果要触发复合索引,必须包含有优先检索列中的原始值。 select * from emp where ename='SCOTT' and job='xx';---触发复合索引 select * from emp where ename='SCOTT' or job='xx';---不触发索引 select * from emp where ename='SCOTT';---触发单列索引。
pl/sql编程语言是对sql语言的扩展,使得sql语言具有过程化编程的特性。
pl/sql编程语言比一般的过程化编程语言,更加灵活高效。
pl/sql编程语言主要用来编写存储过程和存储函数等。
---声明方法 ---赋值操作可以使用:=也可以使用into查询语句赋值 declare i number(2) := 10; s varchar2(10) := '小明'; ena emp.ename%type;---引用型变量 emprow emp%rowtype;---记录型变量 begin dbms_output.put_line(i); dbms_output.put_line(s); --赋值 select ename into ena from emp where empno = 7788; dbms_output.put_line(ena); --赋值 select * into emprow from emp where empno = 7788; dbms_output.put_line(emprow.ename || '的工作为:' || emprow.job); end;
---成绩大于等于90,表示优秀 ---成绩大于等于70,表示良好 ---成绩大于等于60,表示及格 ---成绩小于60,表示较差 declare i number(3) := 90; begin if i>=90 then dbms_output.put_line('优秀'); elsif i>=70 then dbms_output.put_line('良好'); elsif i>=60 then dbms_output.put_line('及格'); else dbms_output.put_line('较差'); end if; end;
用三种方式输出1到10是个数字
---while循环 declare i number(2) := 1; begin while i<11 loop dbms_output.put_line(i); i := i+1; end loop; end;
---exit循环 declare i number(2) := 1; begin loop exit when i>10; dbms_output.put_line(i); i := i+1; end loop; end;
---for循环 declare begin for i in 1..10 loop dbms_output.put_line(i); end loop; end;