日期:2014-05-16  浏览次数:20660 次

oracle培训教程,淘宝本科技术类培训

完装前:1。serivce有个listener,若未启动,刚不能使用pl/sql developer;2.给scott解锁。

scott是当前用户

1.建新用户
create user xiaoming identified by m123;
但报错,没权限
2.转用户conn system/manager @ 哪个数据库;
3.就可以了,但新建的xiaoming不能登录的。要用sys授权限
4.权限共二种:系统权限,对像权限
系统权限:对数据库使用,create table等等;
对像权限:用户对其他用户的数据对像的权限;(数据对像如table,view,trigger)
grant connect to xiaoming;便可登录
几个角色说明:
dba:最高的权限,重要
resource:在任何一个表空间建表
再加上一个connect


希望xiaoming可以去查emp表;
grant select on emp to xiaoming;[sys,system,emp自主soctt可执行]
对像权限select insert update delete all create index...


select * from SCOTT.EMP;[打他人的表要加前缀]


若要修改/插入/选择
grant all on emp to xiaoming;
5.也可撒撒回来
6.授权的传递
grant select an emp to xiaoming with grant option;
grant select an emp to xiaohong;
7如果是系统权 system给小明授权,则小明可以把权限再传递
系统权限grant connect to xiaoming with admin option

回收的要连在一起的

8.create profile lock account limit failed login attemps 3 password lock time 2;
创建一个用户,若失败3次则封闭2天

第二天
1。数据类型,不像mysql的,folot,int,double那么多;只有一个number
char 最大20000字符,char查询最快,但浪费空间,varcher虽是可变的,但是一个个比对,因而速度慢,但节约了空间
当遇到此类错误提示时:The service did not respond to start or ,等一会便可。
@blob二进制数据,可存放图片/声音
create table student(
xh number(4),
xm varchar2(20),
sex char(2),
birthday date,
sal number(7,2) --共7位,有2位小数:-9999.99到9999.99
);
2.表空间,如同C盘,D盘,E盘
create table class(
classId number(2);


);


desc table;查看表的结构
3.insert 一条数据
insert into sttudent values(1,'小明','男','1999-12-13',2345.8,12);--注意日期写法
报错12-2月-1999
oracle默认的日期格式:MM-MON-YY
但可以修改:
alter session set nls-date-format='yyyy-mm-dd';
4.查询为空时,要这样来查
select * from student where birthday is null;--不能=NULL;='';只能使用is null,is not null
5.delete删除完,可以恢复rollback
在删除前可以savepoin aa;
再删除时,delete from studnet;
可以恢复,rollback to aa;
6,看是不是空值函数:nvl(comm,0),表示,如果comm是空值就是0,如果不为空则使用原值。
某个部门的工资排序,找最大工资
select * from emp order by deptno asc,sal desc;

7.oracle分页

找出6-10条纪录
第一步子查询
select depto,avg(sal)
第二步显示rownum
第三步select A1.*,rownum rn from (select * from emp) A1 where rownum<=10;(注意rownum只能用一次,不能这样吧),砍去了一半,但是速度很快的。用的是二分机制
第四步再一个子查询
select * from (select A1.*,rownum rn from (select * from emp) A1 where rownum<=10;) where rn>=6
所有改动,只能修改最内层的即可,如排序,select * from emp order by id最内层的那个