首页 > 代码库 > 数据库对象——函数、存储过程、索引、同义词

数据库对象——函数、存储过程、索引、同义词

数据库对象——函数

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)

数据库对象——函数、存储过程、索引、同义词