Oracle权限以及基本操作

  1 -- 创建用户
  2 create user wzh identified by orcl;
  3 
  4 --创建表
  5 --学生表
  6 create table student (
  7    xh number(4), --学号
  8    xm varchar2(20), --姓名
  9    sex char(2), --性别
 10    birthday date, --出生日期
 11    sal number(7,2) --奖学金
 12 );
 13 
 14 -- 添加主键
 15 alter table student add  constraint pk_student primary key (xh);
 16 --班级表
 17 create table classStu(
 18   classid number(2),
 19   cname varchar2(40)
 20 );
 21 
 22 
 23 --修改表
 24 --添加一个字段
 25 alter table student add (classid number(2));
 26 --修改一个字段的长度
 27 alter table student modify (xm varchar2(30));
 28 --修改字段的类型或是名字(不能有数据) 不建议做
 29 alter table student modify (xm char(30));
 30 --删除一个字段 不建议做(删了之后,顺序就变了。加就没问题,应该是加在后面)
 31 alter table student drop column sal;
 32 --修改表的名字 很少有这种需求
 33 rename stu to student;         
 34 --删除表
 35 drop table student;
 36 --修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注册表)
 37 alter session set nls_date_format ='yyyy-mm-dd';
 38 
 39 --删除数据
 40 delete from student; --删除所有记录,表结构还在,写日志,可以恢复的,速度慢。
 41 --delete的数据可以恢复。
 42 savepoint student; --创建保存点
 43 delete from student;
 44 rollback to a; --恢复到保存点
 45 一个有经验的dba,在确保完成无误的情况下要定期创建还原点。
 46 
 47 drop table student; --删除表的结构和数据;
 48 delete from student where xh = 'a001'; --删除一条记录;
 49 truncate table student; --删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
 50 
 51 /**
 52 * oracle 事务
 53 *事务的几个重要操作
 54 *1.设置保存点 savepoint a
 55 *2.取消部分事务 rollback to a
 56 *3.取消全部事务 rollback
 57 */
 58 savepoint a; --创建保存点a
 59 Savepoint created
 60 delete from student where xh=1
 61 savepoint b; --创建保存到b
 62 Savepoint created
 63 
 64 rollback to a; --通过保持点来恢复这条记录;delete from student where xh=1
 65 
 66 
 67 /**
 68 一、字符函数
 69 字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:
 70 lower(char):将字符串转化为小写的格式。
 71 upper(char):将字符串转化为大写的格式。
 72 length(char):返回字符串的长度。
 73 substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个
 74 replace(char1, search_string, replace_string)
 75 instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引,否则返回小于1;在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
 76 C1 被搜索的字符串
 77 C2 希望搜索的字符串
 78 I 搜索的开始位置,默认为1
 79 J 出现的位置,默认为1
 80 二、数学函数
 81 数学函数的输入参数和返回值的数据类型都是数字类型的。数学函数包括cos,cosh,exp,ln, log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round等
 82 我们讲最常用的:
 83 round(n,[m]) 该函数用于执行四舍五入,
 84 如果省掉m,则四舍五入到整数。
 85 如果m是正数,则四舍五入到小数点的m位后。
 86 如果m是负数,则四舍五入到小数点的m位前。
 87 */
 88 SELECT round(23.75123) FROM dual; --返回24
 89 
 90 SELECT round(23.75123, -1) FROM dual; --返回20
 91 
 92 SELECT round(27.75123, -1) FROM dual; --返回30
 93 
 94 SELECT round(23.75123, -3) FROM dual; --返回0
 95 
 96 SELECT round(23.75123, 1) FROM dual; --返回23.8
 97 
 98 SELECT round(23.75123, 2) FROM dual; --返回23.75
 99 
100 SELECT round(23.75123, 3) FROM dual; --返回23.751
101 
102 trunc(n,[m]) --该函数用于截取数字。如果省掉m,就截去小数部分,如果m是正数就截取到小数点的m位后,如果m是负数,则截取到小数点的前m位。
103 
104 
105 --查看角色
106 select * from dba_role_privs where grantee='SYSTEM';
107 
108 --查询orale中所有的系统权限,一般是dba
109 select * from system_privilege_map order by name;
110 --查询oracle中所有对象权限,一般是dba
111 select distinct privilege from dba_tab_privs;
112 --查询oracle 中所有的角色,一般是dba
113 select * from dba_roles;
114 --查询数据库的表空间
115 select tablespace_name from dba_tablespaces;
116 
117 --一个角色包含的系统权限
118 select * from dba_sys_privs where grantee='角色名'
119 select * from role_sys_privs where role='角色名'
120 --一个角色包含的对象权限
121 select * from dba_tab_privs where grantee='DBA'
122 --oracle究竟有多少种角色
123 select * from dba_roles;
124 --查看某个用户,具有什么样的角色
125 select * from dba_role_privs where grantee='SYSTEM'
126 --显示当前用户可以访问的所有数据字典视图。
127 select * from dict where comments like '%grant%';
128 --显示当前数据库的全称
129 select * from global_name;
130 
131 --1.创建两个用户ken,tom。初始阶段他们没有任何权限,如果登录就会给出错误的信息。
132 create user ken identified by ken;
133 --2 给用户ken授权
134  grant create session, create table to ken with admin option;
135  grant create view to ken;
136 --3 给用户tom授权
137 --我们可以通过ken给tom授权,因为with admin option是加上的。当然也可以通过dba给tom授权,我们就用ken给tom授权:
138  grant create session, create table to tom;
139 grant create view to ken; --ok 吗?不ok
原文地址:https://www.cnblogs.com/2070393244com/p/13138675.html