Oracle

韩顺平2011oracle笔记 oracle学习笔记——韩顺平玩转oracle

  

韩顺平    玩转ORACLE    实战教程    第一天

 

Email:hanshunping@

 

内容介绍:

 

(1)基础部分:基本使用、用户管理、表管理

 

(2)高级部分:表的查询、函数、数据库管理、权限、角色、pl*sql、索引、约束和事务

 

推荐书籍:oracle实用教程——从入门到精通

         深入浅出oracle

 

1.       为什么学习oracle:性能优越

 

小型数据库

中型数据库

大型数据库

Access,foxbase

Mysql,sqlserver,informix

Sybase,oracle,db2

1.       项目规模:

A. 负载量多大:100人内

B. 成本:1000以内

C.安全性:要求不高

日访问量:5000~15000

成本在万元内

比如商务网站

海量数据库

Sybase<oracle<db2

安全性高,价格昂贵

 

Oracle公司认证:

 

Dba认证

Java认证

Oracle网络开发认证

Oca(oracle初级认证)

 

 

Ocp(oracle专家级认证)

 

 

Ocm(oracle大师级认证)

 

 

 

Oracle公司介绍:

 

神谕     代神说话的人     甲骨文(霸气侧漏!!!)

 

暗示     公司预作霸主的地位

 

地位     全球第一大数据库厂商、全球第二大独立软件供应商

 

安装oracle:

 

首先呢,先下载一个oracle安装文件(废话)

 

接下来呢省略N个字(简单傻瓜式安装的话,会装盗版游戏的都懂吧)

 

oracle安装会自动生成sys用户和system

 

(1)sys是超级用户,具有最高权限,具有sysdba角色

 

有create database 的权限,该用户默认密码:manager

 

(2)system用户是管理操作员,权限很大,具有sysoper角色

 

没有create database 的权限,默认密码change_on_install

 

(3)一般来讲,对数据库维护,使用system用户登陆就可以了

 

Oracle卸载(关键时刻,还是度娘威武)

 

1.       注册表

 

2.       键值

 

3.       目录文件

 

Oracle管理工具:

 

1.       sql*plus

 

2.       oracle enterprise manager

 

3.       pl/sql developer

 

4.       sqlplus

 

sql plus常用命令

 

连接命令:

 

(1)conn 用户名/密码@网络服务名

 

当用特权用户连接时,必须加上as sysdba 或是 as sysoper

 

(2)disc

 

说明:该命令用来切断与当前数据库的连接

 

(3)passw

 

说明:该命令用于修改用户密码。如果想修改其他用户密码,需要用sys、system登陆

(4)show user

 

说明:显示当前用户名

 

(5)exit

 

说明:该命令会断开与数据库的连接,同时退出sql*plus

 

文件操作命令:

 

(1)start和@

 

说明:运行sql脚本

 

案例:sql>@ d:\a.sql

 

(3)edit

 

说明:编辑指定的sql脚本

 

案例:sql>edit d:\a.sql

 

(4)spool

 

说明:该命令可以将sql*plus屏幕上的内容输出到指定文件夹中去

 

案例:sql>spool d:\b.sql 并输入sql>spool off

 

显示和设置环境变量:

 

(1)linesize

 

说明:设置显示行的宽度,默认是80字符

 

sql>show linesize

 

sql>set linesize 90

 

(2)pagesize

 

说明:设置每页显示行数目,默认是14

 

用法和linzesize一样

 

用户管理:

 

创建用户:

sql>create user ... identified by ...

 

一般具有dba(数据库管理员)权限的用户才能使用

 

给用户修改密码:

 

概述:如果给自己修改密码可以直接使用

sql>password 用户名

 

如果给别人修改密码需要具有dba的权限或是拥有alter user的系统权限

 

sql>alter user 用户名identified by 密码

 

删除用户:

 

概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户需要具有drop user 的权限

 

比如drop user 用户名 【cascade】

 

在删除用户时,注意如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade

 

希望xiaoming用户可以查询scott的emp表

 

grant select on scott.emp to xiaoming

 

希望xiaoming用户可以修改scott的emp表

 

grant all on scott.emp to xiaoming

 

希望xiaoming用户可以修改、删除、添加、查询scott的emp表

 

grant update on scott.emp to xiaoming

 

scott 希望收回xiaoming对emp表的查询权限

 

revoke select on emp from xiaoming

 

对权限的维护

 

希望xiaoming用户可以查询scott的emp表,还希望xiaoming可以把这个权限继续给别人

 

--如果是对象权限,就加入with grant option

grant select on scott.emp to xiaoming with grant option;

 

--如果是系统权限

system给xiaoming权限时:

grant connect to xiaoming with admin option

 

?如果scott把xiaoming对emp表的权限回收,那么xiaohong怎么样?

 

不被回收

 

使用profile管理用户口令

 

(1)       账户锁定

 

创建profile文件

Sql>create profile lock_account limit

failed_login_attempts 3 password_lock_time 2;

sql>alter user xiaoming profile lock_account;

 

(2)       给账户(用户)解锁

Sql>alter user xiaoming account unlock;

 

(3)       终止口令

定期修改登录密码

Sql>create profile my profile limit password_life_time

10password_grace_time 2;

Sql>alter user tea profile myprofile;

 

口令历史:

 

(1)       建立profile

create profile my profile limit password_life_time

10password_grace_time 2

Password_reuse_time 10;

 

(2)       分配给某个用户

 

删除profile

 

Sql>drop profile password_history 【cascade】