Oracle学习笔记总结

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用户登录的
		

 

猜你喜欢

转载自beyondbn.iteye.com/blog/1988922