1. create user beyond identified by beyond;创建用户
刚创建的用户没有任何权限,包括的登录
2. drop user beyond [cascade]: 是否级联删除
3. grant connect to beyond ;给beyond用户授予连接权限
4. grant resource to beyond: 授予创建的权限
5. grant select on emp to beyond:授于beyond select 权限
select * from system.emp;
6. 角色权限和自定义权限
7. 角色权限:connect, resource, dba
8. 自定义权限:select ,insert, delete,等
9. revoke all on emp from beyond: 收回beyond对emp 的所有权限
10. grant select on emp to beyond with grant option 如果是对象权限,可以把权限传递给其他人
11. grant connect to beyond with admin option 如果是系统权限,可以把权限传递给其他人
12. 当自己的权限被回收率,其传递给其他人的权限也被回收
13. create profile beyondLock limit failed_login_attempts 3 password_lock_time 2;
alter user beyond profile beyondLock;
创建名为 beyondLock 的口令限制,输错3次密码,锁定2天
14. alter user beyond account unlock;
为beyond 用户解锁;
15. create profile beyondLimit limit password_life_time 10 password_grace_time 2;
alter user beyond profile beyondLimit;
要求 beyond 每隔10天修改登录密码,宽限期为2天
16. create profile beyondLimit limit password_life_time 10 password_grace_time 2 password_reuse_time 10
.....新密码不能和老密码一样,10天后老密码可重新用
17. drop profile beyondLimit [cascade] 删除beyondLimit【级联】
18. Oracle 必须启动的服务:
OracleOraHome90TNSListener java连接oracle的服务名;
OracleServiceXX这个服务也必须启动;
19. char好处: 查询极快
20. blob 存大数据Max(4G)用途:对机密的大数据存
21. 表修改:
添加一个字段: alter table student add(classId number(2));
修改字段的字段: alter table student modify(xm varchar2(30));
22. Oracle 默认的日期格式为: 日-月-年,如果不进行日期转换的话,那么,插入日期的格式为(‘12-12月-2013’)
23. 修改 Oracle 默认的日期格式:
alter session set nls_date_format='YYYY-MM-DD';
即:修改日期的默认格式为: 2012-12-12 这种格式了
24. 设置保存点: savepoint aa;
回复保存点: rollback to aa;
25. Oracle 分页有三种:
insert into student select * from student;
select ROWNUM,t.* from student t where rownum <5;
select count(*) from student;--786432条,
--查 78000~78030 速度由快到慢:1-2-3-4
--1.按rownum 来分
select * --0.094S
from (select rownum as rn , st.*
from (select * from student) st
where rownum <78030) t
where rn > 78000;
--2.按rownum 来分
select * --0.343S
from (select rownum as rn, st.* from (select * from student) st)
where rn between 78000 and 78030;
--3 按rowid来分
select * --0.359S
from student
where rowid in
(select rid
from (select rownum rn, rid
from (select rowid rid, classid from student order by classid)
where rownum < 78030)
where rn > 78000)
order by classid;
--4 按分析函数来分
select * -- 0.624S
from (select t.*, row_number() over(order by classid) rk from student t)
where rk < 78030
and rk > 78000;
26. 建立保存点: savepoint one 后可以做任何非提交的操作,
savepoint two 后可以做任何非提交的操作,
回滚到保存点:可以用 rollback to one/two 回滚到one 或者two 保存点
提交保存点: commit 提交保存点
27. 直接执行 .sql 文件: start D:\Oracle_SQL\first.sql
28. set transaction read only :设置只读事务
只读事务是指:只允许执行查询的操作,而不允许执行任何其他DML(增、删、改)操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。
29. lower(char):将字符串转换为小写的格式
upper(char):将字符串转换为大写的格式
length(char): 查询字符串的长度
substr(char,m,n): 查字符串的子字符串,从第 m 个字符开始取 n 个
eg: 以首字母大写的方式显示员工姓名
1. select upper(substr(name,1,1))||subStr(name,2) from users
2. select upper(substr(name,1,1))||substr(name,2,length(name)-1) from users
replace(char,A,B): 在char 里,用B替换成A
30. round(n,[m]): 执行四舍五入。
省掉m,四舍五入到整数;
如果m是正数,四舍五入到小数点的m位后;
如果m是负数,四舍五入到小数点的m位前。
trunc(n,[m]): 该函数用于截取数字。
省略m,就截去小数部分;
如果m是正数,就截取到小数点的m位后;
如果m是负数,就截取到小数点的前m位
trunc(n) = floor(n)
eg: round(55.67,1): 55.7
trunc(55.67,1): 55.6
floor(55.67): 55
ceil(55.67): 56
abs(n): 返回绝对值
31. 日期函数:
sysdate: 返回系统时间
add_months(d,n): 从D日期开始,再加N个月
last_day(d): 返回 d 月的最后一天
eg:eg: select sysdate,add_months(sysdate,1) from dual;
2013/12/26 21:53:10 2014/1/26 21:51:29 2013/12/31 22:02:34
32. 系统函数:
sys_context
1.terminal: 当前会话客户所对应的终端的标识符
2.language: 语音
3.db_name: 当前数据库名称
4.nls_date_format: 当前会话客户所对应的日期格式
5.session_user: 当前会话客户所对应的数据库用户名
6.current_schema: 当前会话客服所对应的默认方案名
7.host: 返回数据库所在主机的名称
eg:
select sys_context('USERENV','db_name') from dual;
userenv,是固定的字
33. 管理数据库的用户主要是 sys 和 system
sys: 所有Oracle的数据字典的基表和视图都存放在 sys用户中,这些基表和视图对于 Oracle 的运行是至关重要的,有数据库自己维护,任何用户都不能手动更改。
sys 用户拥有 dba,sysdba, sysOper 角色货权限,是Oracle权限最高的用户。
system: 用于存放次一级的内部数据,如Oracle 的一些特性或工具的管理信息,system 用户拥有 dba, sysdba 角色或系统权限
sys用户必须以 as sysdba 或者 as sysoper 形式登录,不能以 normal 方式登录
system如果正常登录,它其实就是一个普通DBA用户,但是如果以 as sysdba 登录,其结果实际上它是作为sys用户登录的