oracle入门学习笔记(一)

2014-11-24 14:18:32 · 作者: · 浏览: 5

Oracle学习笔记

推荐书籍:《Oracle实用教程(从入门到精通)》、《深入浅出Oracle》

1. 当前主流数据库

|-微软:SQL Server、access

|-瑞典:Mysql

|-IBM: DB2

|-Sybase: Sybase

|-Oracle:Oracle

A. 小型数据库:access、foxbase。负载量小,100人内,成本千元内,安全性要求不高。例如留言板等。

B. 中型数据库:Mysql、SQL Server、Informix。日访问量5000-15000,成本万元内。例如电子商务网站等。

C. 大型数据库:Sybase

2. 选择数据库,要看项目的规模:

a) 负载量多大(用户多大)

b) 成本

c) 安全

3. Oracle认证:

a) DBA认证:OCA初级认证、OCP专家认证、OCM大师认证

b) Java开发认证

c) Oracle网络开发认证

4. Oracle与其他数据库不同的是,每次登陆,登陆的是Oracle数据库的实例。每个用户,例如sys、system、scott,每个用户名登陆的数据库看到的数据对象(表、存储过程等)不同。

5. Oracle默认生成三个用户:

1. sys用户:超级管理员,权限最高,角色dba

2. system用户:系统管理员,角色dbaoper

3. scott用户:普通用户,密码tiger

sys有create database的权限,而system没有。

6. Oracle管理工具:

1. SQLPLUS

2. Oracle Enterprise Manager Console

3. pl/sql developer

7. SQL * PLUS重用命令

1. 连接命令conn[etc]:conn system/conanswp;

2. 断开连接:disc[onnect]

3. 修改密码:passw[ord];需要使用sys、system用户登录。

4. 显示当前用户:show user;

5. 退出:exit

8. 文件操作命令

1. 运行脚本:start files或者@file

2. 编辑脚本:edit file

3. 将sql*plus内容输出到文件中:spool file;select * from emp;spool off;输出查询内容到file中。

4. 提示用户输入:&name eg:select * from emp where ename=‘&name’;

9. 其他命令:

1. 显示每行字符数linesize:set linesize 30;

2. 显示分页pagesize:set pagesize 2;

10. Oracle用户管理:

1. 创建用户:create user;eg: create username identified by password;

2. 修改密码:password user或者alter user identified password;

3. 删除用户:drop user [cascade];如果待删除的用户已经创建了表,就需要带上cascade参数。

4. 指定用户的权限:grant;eg:grant connect to user;connect是权限。Oracle大约有140多种系统权限,25种对象权限。

5. 回收权限使用命令:revoke;revoke select on emp from user;

6. 一个用户查询另一个用户的表(使用对象权限):grant select on emp to user;允许user查询emp表(sys、system和scott)。user查询如下:select * from scott.emp;

7. 一个用户允许查询另一个用户的表并希望此用户也可以继续让第三个用户查看表:

|-如果是对象权限,使用with grant option。Eg:grant select on emp to user1 with grant option;

|-如果是系统权限,使用with admin option。

A->B->C(A让B访问A中表,B让C访问A中表),如果A回收B,现在C也不能访问A中的表了。

11. 权限:

|-系统权限:用户对数据库的相关权限。

|-对象权限:用户对其他用户的数据对象操作的权限。对象权限分为:select、insert、update、delete、all等。

12. 数据对象:用户创建的表、存储过程、视图等。

13. 角色:权限批量授权给角色。方便权限的授予。角色分为:自定义角色和预定义角色。重要的角色:DBA(系统管理),resource(允许在表空间建表)。grant resource to user;允许user创建表。

14. profile是口令限制,资源限制的命令集合。

1. 账户锁定:create profile lock_account limit failed_login_attempts 3 password_lock_time 2;alter user xiaoming profile lock_account每个用户只能尝试登陆3此,锁定时间为2天。创建的profile名字为lock_account。

2. 给账户解锁:alter user xiaoming account unlock;

3. 终止口令,为了让用户定期修改密码。Create profile myprofile limit password_life_time 10 password_grace_time 2;alter user xiaoming profile myprofile;每隔10天修改自家的登陆密码,宽限期为2天。

4. 禁止新旧密码相同:create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10; alter user xiaoming profile password_history;

5. 删除profile:drop profile password_history;

15. Oracle表的管理。

1. 表名、列名的命名规则:字母开头,不超过30字符,不能使用oracle保留字。

2. 支持的数据类型:

a) 字符型:

i. char(定长):char(10) ‘Conan’。5个存放字符,5个空着,但是查询效率高。最大2000字符。

ii. varchar2(变长):自动增加、减少,节省空间。最大4000字符。

iii. clob(character large object):字符型大对象,最大4G。

b) 数字型:number(4):4位。number(5,2):共5位,2位小数。

c) 日期类型:

i. Date:包括年月日时分秒

ii. Timestamp:时间戳

d) 二进制数据:blob。可存放图片、声音

3. 建表:

create table student(xh number(4), xm varchar2(20),sex char(2),birthday date, sal number(7,2));

4. 修改表:

a).添加字段

alter table student add (classid number(2));

b).修改字段

alter table student modify (classid number(2));

c).删除字段

alter tabl