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