首页 > 代码库 > 数据库对象——函数、存储过程、索引、同义词
数据库对象——函数、存储过程、索引、同义词
数据库对象——函数
1、函数(function)分为两种,一种是oracle数据库自身的函数,另一种是用户自己写的函数。
2、使用函数把小写字幕变成大写字幕。
select upper(‘a i love you‘) from dual;
3、创建一个通过员工的ID号获取其薪水的函数
create or replace function get_empsal(emp_no in number)
return number
is emp_sal number(7,2);
begin
select empsal
into emp_sal
from emp
where empno = empno;
return (emp_sal);
end;
CREATE OR REPLACE FUNCTION:这是创建或者已经存在的函数,函数名为EMP_SAL,括号中的emp_no为输入的员工号,输入的类型是number(数字类型)
RETURN NUMBER:该函数返回值是一个数值类型的值;
IS emp_sal number(7,2):定义参数emp_sal,该参数类型为number(7,2)
BEGIN:为函数的程序段开始
SELECT ....RETURN...:这是函数的程序段,
END:结束函数的SQL程序段,与上面的BEGIN对应
4、函数的测试
找到该函数单机右键,选择测试功能,输入值进行测试
5、如何通过函数获取员工薪水
select get_sal(1944) from dual;
数据库对象——存储过程
1、存储过程(stored procedure):是一组为了完成特定功能而建立的SQL语句集合,经过编译后存储在数据库中。用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数)来执行他。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
2、创建一个根据员工号来删除员工信息的存储过程
CREATE OR REPLACE PROCEDURE delempno(empid in number) is
BEGIN
DELETE FROM EMP WHERE EMP.EMPNO = EMPID;
COMMIT;
END DELEMPNO;
解释:
CREATE OR REPLACE PROCEDURE :是创建存储过程的关键字,如果存在同名的存储过程,则会替换这个存储过程,delempno为存储过程的名称;
empid in number:empid为delempno存储过程的参数,该参数的数据类型为数值
begin...end..这是存储过程开始和结束的关键字,在begin...end 中间为存储过程具体的SQL语句;
3、执行存储过程:
打开命令窗口,输入:
execute delepmno(1994);
解释:execute:是执行存储过程的关键字,随后跟存储过程的名称,
数据库对象——索引
1、索引(index):是对数据库表中的一列或者多列的值尽心派寻的一种结果,相当于一本书的目录,有可以加快查找的作用。索引可以加快数据库的查询速度。
2、创建一个存储过程,用来循环的往test_index表中插入数据
1)创建表:
CREATE TABLE test_index(id number,name varchar2(200));
2)创建一个存储过程:
CREATE OR REPLACE PROCEDURE INSERT_DATA IS
TEMP VARCHAR2(200):=‘Insert Data‘;
begin
for i in 1..1000000 loop
insert into test_index (id,name) values(i,temp);
end loop;
commit;
end;
3)执行Insert_Data存储过程。
execute insert_data;
4)验证表中的数据数量,SELECT COUNT(*) FROM TEST_INDEX;
5)查询编号为9999的数据所需要的时间,在没有索引的时候需要进行全盘扫描这需要很长的执行时间。
全盘扫描:此处就是计算机在查询数据的时候,从1都最后一行全部扫描一次
索引就像目录一样用来加速查询速度
6)创建表的索引,
CREATE INDEX id_test_index on test_index(id);在查询时间就少了很多;
数据库对象——同义词
1、同义词(synonym)
数据库对象——函数、存储过程、索引、同义词