视频教程号称7天玩转,不过根据本人的资质以及视频的内容,我估计我怎么也得个把月才能掌握吧,玩转不太可能,不过能满足自己需要应该问题不大吧。

流行的数据库系统

  1. 小型:access, foxpro
  2. 中型:MySQL, SQL Server, Informix
  3. 大型:Oracle, Sybase, DB2

如何选择数据库

  1. 项目的规模(负载量有多大,即用户有多少)
  2. 成本
  3. 安全性

Oracle认证

  1. 初级:OCA认证
  2. 专家级:OCP认证
  3. 大师级:OCM认证

sys用户与system用户

sys:

  • 超级用户,具有最高权限
  • 具有sysdba角色
  • 具有create database的权限
  • 默认密码为manager

system:

  • 管理员,权限也很大
  • 具有sysoper角色
  • 不具有create database的权限
  • 默认密码为change_on_install
  • 通常对数据库进行维护,使用system用户登录就够了

Oracle的数据对象有

  1. 视图
  2. 触发器
  3. 存储过程
  4. ....

Oracle 根据登录用户权限的不同,展现的数据对象也不同

Oracle管理工具

  1. SQL PLUS:Oracle自带的工具软件,用于执行SQL语句、PL SQL语句块
  2. Oracle企业管理器(Oracle Enterprise Manager, OEM)
  3. PL/SQL(第三方工具):用于开发、测试、优化Oracle PL/SQL的存储过程,需要单独安装

Oracle SQL PLUS常用命令

connect 用户名/密码@网络服务名 [as sysdba/sysoper]

当用特权用户身份连接时,必须带上as sysdba或as sysoper

 

disconnect

断开与当前数据库的连接

 

password

修改用户的密码,如果需要修改其他用户的密码,需要使用sys/system用户登录

 

show user

显示当前用户名

 

exit

断开与数据库的连接并退出

 

start 脚本路径

作用:运行sql脚本

 

edit 脚本路径

作用:编辑指定的sql脚本

 

spool 脚本路径
....
spool off

作用:将sql plus屏幕的内容输出到指定文件中

 

&

作用:可以替代变量,而该变量在执行时,需要用户输入,如

select * from emp where job="&job"

 

显示与设置环境变量:用来控制输出的各种格式,set show 如果希望永久保存相关的设置,可以修改ORACLE_HOME/sqlplus/admin/glogin.sql脚本

linesize:设置显示行的宽度,默认为80个字符

show linesize;
set linesize 90;

 

pagesize:设置每页显示的行数目,默认为14

show pagesize;
set pagesize 16;

 

用户管理

创建用户:只有具有dba权限的用户才能创建用户

create user <新用户名> identified by <密码>

注意:密码必须以字母开头,否则会创建失败

 

给其他用户修改密码需要具有dba权限或拥有alter user的系统权限

alter user 用户名 identified by <新密码>

 

删除用户:通常以dba的身份去删除某个用户,如果其他用户去删除用户则需要具有drop user的系统权限

drop user 用户名 [cascade]

注意:如果需要删除的用户已经创建了表,就需要带cascade参数,那么将会删除该用户及该用户创建的表

 

关于新创建的用户

  • 新创建的用户是没有任何权限的,包括登录数据库的权限也没有
  • 给一个用户赋权限使用命令grant
  • 回收用户的权限使用命令revoke

Oracle的权限可以分为两种

  1. 系统权限:用户对数据库的相关权限(Oracle的系统权限约有140余种)
  2. 对象权限:用户对其他用户的数据对象操作的权限(25种)
  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • ALL(包含前4种)
  • CREATE INDEX
  • ...

 

将scott用户的emp表的select权限赋给用户matclone:

grant select on emp to matclone;

 

撤销用户matclone对scott用户的emp表的select权限:

revoke select on emp from matclone;

 

Oracle的角色

由于Oracle中权限的种类太多,为了方便管理员对用户批量赋权限,Oracle预设了一些不同的角色,这些角色中包含了一组已经设定好的权限,通过将角色赋给用户,可以实现对用户批量赋权限。Oracle中的角色分为两类:

1. 预定义角色

  • CONNECT角色
  • DBA角色
  • RESOURCE角色:用户可以在任何空间建表

2. 自定义角色

将CONNECT角色的权限赋给用户matclone:

grant CONNECT to matclone;

 

撤销用户matclone的CONNECT角色:

revoke CONNECT from matclone;

 

对权限的维护

权限的传递

1. 如果是对象权限,添加with grant option参数
案例: 将scott用户中的emp表的SELECT权限赋给test1用户时,同时希望test1用户能够具备将该权限传递给其他用户的能力

grant SELECT on emp to test1 with grant option;

 

2. 如果是系统权限,添加with admin option参数
案例:将CONNECT权限赋给test1用户时,同时希望test1用户能够具备将该权限传递给其他用户的能力

grant CONNECT to test1 with admin option;

 

撤销权限时

  1. 如果是系统权限,则不影响后面的用户
  2. 如果是对象权限,则后面的用户权限会被连带撤销

SQL PLUS的注释

单行注释: -- 被注释掉的内容
多行注释: / 被注释掉的内容 /