ORACLE数据库学习01

来源:互联网 发布:python 多进程编程 编辑:程序博客网 时间:2024/04/30 19:12

最开始学习Oracle的时候,就学习的该数据库的用户,该用户的角色和权限问题。比如我建立了一个ORCL的数据库,该数据库边有sys和system两个拥有dba角色的用户。利用sqlplus登陆。 conn sys/密码 as sysdba 或者以操作员登陆 conn sys/密码 as sysoper。

然后理解角色和权限问题,角色包括了CONNECT、DBA、RESOURCE等角色,每个角色 包含多个权限。权限便又分为两种权限:1.系统权限 :描述用户对数据库的访问,建立存储过程等 2.对象权限: 用户对其用户的数据对象操作的权限,比如insert 、update、delete、create index等。

比如说:权限的维护。我们利用dba用户创建一个用户为james。当然james没有登陆我们ORCL数据库的角色(CONNECT),可以利用dba给james用户赋予connect角色,sql语句便是 grant connect to james。我们也可以收回james的角色 revoke connect from james。在我们新建的数据库ORCL的SCOTT用户有一张表emp。当然新建的james用户无法查看Scott的emp表。我们便可以用SCOTT用户对james授予select查看的权限。登陆SCOTT用户,利用sql 语句 grant select on emp  to james。然后james登陆ORCL数据库后可以利用select语句查看SCOTT用户的emp表。select * from SCOTT.emp; 

DBA用户对profile的操作。给james用户,创建profile文件,要求james登陆密码连续错3次就锁2天登陆。

1. 创建profile  。   create profile aaa(名) limit failed_login_attempts 3(错误次数) password_lock_ time 2;(天数)

2.将profile赋予给james  。    alter user james profile aaa;

由于james用户被锁定两天,但dba用户可以对james解锁。利用  alter user james account unlock;


利用DBA用户可以创建一个新用户。 create user user_name(用户名) identified by xxxxx(密码);

由于新建的user_name没有任何的权限。DBA可以为user_name授予系统或对象权限,grant 系统权限 to user_name;  grant 对象权限 to user_name;


利用分页。

1.rownum 分页,显示rownum

select *,rownum rn from (select * from emp) a1;利用分页必须利用子查询。

比如说显示第6到第10条的记录则

select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<=10) where rn>=6;

再如,oracle数据库插入时间数据类型时候,默认的是日,月,年。我们可以利用alter session set nls_date_format='yyyy-mm-dd';更改日期的格式。