用户系统权限:
create session(创建会话) //用户登录系统至少所需要的权限
create table(创建表)
create sequence(创建序列)
create view(创建视图)
create procedure(创建过程)
创建用户: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
总结:
set操作符:
union/union all:中间的数据取两次
colnum 列名 noprint//不显示列
字段应一一对应。
intersect:交集
minus:
exists:
变量记录类型等的声明:
注意:变量赋值用:=
声明一个记录类型
declare
type 记录类型名 is record(
变量名 类型(employee.salary&type),
.............................
)
声明一个记录类型的变量:
变量名 记录类型名
begin
select salary,employee_id,email into 记录类型变量
from employee
dbms_output.put_line(变量.字段);
end
定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE。
使用%TYPE特性的优点在于:
●所引 用的数据库列的数据类型啊以不必知道:
●所引 用的数据库列的数据类型可以实时改变。
if语句:
注意:elsif不要写成elseif
case语句:
循环语句:
goto语句:需要自定义一个标签
游标:
定义游标: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
数字型属性,返回已从游标中读取的记录数。