视图
概念
视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表
- 视图所对应的数据,并不是真正的存储在视图中,而是存储在所引用的数据表中
- 视图的结构和数据,是对数据表进行查询的结果
创建视图
create [or replace] [force] view '视图名'
as '子查询'
[with [cascaded]|local] check option]
[whith read only]
--例 给teacher表name字段以Y开头并且密码为123456的创建视图
create or replace view wang_teacher
as select * from TEACHER
where name like 'Y%' and pwd='123456';
--查看视图
select * from wang_teacher;
--删除视图
drop view wang_teacher;
or replace:若所创建的试图已经存在,Oracle 自动重建该视图 force:不管基表是否存在,Oracle 都会自动创建该视图 sub_query:一条完整的 SELECT 语句,可以在该语句中定义别名 with check option:数据表 插入或修改 的数据行,必须满足视图定义的约束 with read only:该视图上不能进行任何 DML 操作
索引
索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容
创建索引
--普通索引
create index '索引名称' on '表名'('列名');
--例 给teacher表的name字段创建普通索引
create index t_index on teacher(name);
--唯一索引
create unique index '索引名称' on '表名'('列名');
--例
create unique index only_name on demo(name);
--复合索引
create index '索引名称' on '表名'('列名1', '列名2', ...);
--例
create index id_name_index on teacher(id,name);
--反向键索引
create index '索引名称' on '表名'('列名') reverse;
--例
create index t_index on teacher(name) reverse;
--位图索引
create bitmap index '索引名称' on '表名'('列名');
存储函数
存储函数 又称为 自定义函数。可以接收一个或多个参数,返回一个结果。在函数中我们可以使用P/SQL进行逻辑的处理
CREATE [ OR REPLACE ] FUNCTION '函数名称'('参数名称1' '参数类型1', '参数名称2' '参数类型2', ...)
RETURN '结果变量数据类型'
IS
'变量声明部分';
BEGIN
'逻辑部分';
RETURN '结果变量';
[EXCEPTION '异常处理部分']
END;
--例 判断数字是否位偶数
create or replace function checkNumber(num number) return varchar2
as
resultStr varchar2(32);
temp number;
begin
temp := mod(num, 2);
if temp = 1 then
resultStr := '奇数';
else
resultStr := '偶数';
end if;
return resultStr;
end;
--测试
select checkNumber(21) from dual;