用户系统权限

create session(创建会话)    //用户登录系统至少所需要的权限

create table(创建表)

create sequence(创建序列)

create view(创建视图)

create procedure(创建过程)

oracle进阶使用

创建用户:create user 用户名 identified by 密码

修改表空间大小:alter user 用户名 quota 大小(5M) on users

创建角色:create role 角色名

给予权限:grant create session to 角色名

将角色赋予用户:grant 角色名 to 用户名

分配对象权限(查询):grant select on 需要查询的表名 to 需要权限的表名 with grant option  //使其同样具有分配权限的权利

分配表中列的权限(更新):grant update on 需要查询的表名.列 to 需要权限的表名    //to public 为数据库中所有用户分配权限

收回权限:revoke select on departments from system

总结:

oracle进阶使用

set操作符:

union/union all:oracle进阶使用中间的数据取两次

oracle进阶使用oracle进阶使用colnum 列名 noprint//不显示列

oracle进阶使用字段应一一对应。

intersectoracle进阶使用交集

minusoracle进阶使用

exists:

oracle进阶使用

变量记录类型等的声明:

注意:变量赋值用:=

声明一个记录类型

declare

type 记录类型名 is record(

变量名  类型(employee.salary&type),

.............................

)

声明一个记录类型的变量:

变量名 记录类型名

begin

select salary,employee_id,email into  记录类型变量

from employee

dbms_output.put_line(变量.字段);

end

定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE
使用%TYPE特性的优点在于: 
●所引 用的数据库列的数据类型啊以不必知道:
●所引 用的数据库列的数据类型可以实时改变。

if语句:

oracle进阶使用注意:elsif不要写成elseif

case语句:

oracle进阶使用

循环语句:

oracle进阶使用oracle进阶使用

goto语句:需要自定义一个标签

oracle进阶使用

游标:

定义游标:cursor 游标名 is select salary from employee where department_id=8-0

begin

打开游标:open 游标名

提取游标:fetch 游标名 into 变量;

while 游标名%found loop

dbms.output.put_line('salart:'||变量)

fetch 游标名 into 变量;

end loop

关闭游标:close 游标名

end

游标属性:
%found
布尔型属性,当最近一次读记录时成功返回,则值为TRUE:
%NOTFOUND
布尔型属性,与%FOUND 相反;
%ISOPEN
布尔型属性,当游标已打开时返回TRUE;
%ROWCOUNT
数字型属性,返回已从游标中读取的记录数。
 

相关文章: