一、为什么要学习Oracle
目前主流数据库包括:
微软 SQL Server和access
瑞典mySql mysql(免费)
IBM db2
美国Sybase公司 sybase
IBM informix
Oracle oracle
小型 access, foxbase
中型 mysql, SQL Server, informix
大型 sybase, oracle, db2
该用什么数据库,考虑:
项目的规模 1)负载量多大,用户量有多大 2)成本 3)安全性
小型数据库:负载量小,100人内,如留言板,信息系统。成本在1000元以内,对安全性要求不高。
中型数据库:负载,日访问量5000-15000,成本在10000元以内,安全性有一定的要求。 如商务网站。
大型数据库:负载可以处理海量数据库。安全性高。
sybase < oracle < db2
用工需求量大。招聘网上查一下。
薪水高 OCP认证
Oracle认证: DBA认证、Java开发认证、Oracle网络开发认证
DBA认证 OCA认证(初级认证) OCP认证(专家级认证 考4门课) OCM认证(大师级认证,亚洲地区 韩国、香港考,报名费2000刀)
Oracle Certified Associate Oracle Certified Professional Oracle Certified Master
二、介绍Oracle及Oracle公司的背景
Larry Ellisin
Oracle 神谕 代神说话的人 甲骨文
暗示 公司欲作霸主的决心
地位 全球第一大数据库厂商
全球第二大独立软件供应商
适合于大中型企业的数据库管理系统,主要用户涉及面非常广,包括:银行、电信、移动通信、航空、保险、金融、电子商务、跨国公司等。
版本演变历史:
1970年,数据库
1977年,创办公司
1979年,Oracle2(实际上是第1个版本)
1983年,Oracle3 可移植性
1984年,Oracle4 读一致性
1985年,Oracle5 分布式查询 稳定版本
1988年,Oracle6 行级锁,联机热备份
1992年,Oracle7,分布式事务处理,引入基于开锁的优化器。真正出色的产品
1997年,Oracle8, 支持面向对象的开发
1998年,Oracle8i 添加了大量支持Internet的特性
2001年,Oracle9i RAC
2003年,Oracle10g 加入了网格计算
2007年,Oracle11g 大幅提高系统的安全性能
2014年,Oracle12c
三、Oracle的安装、启动及卸载
系统要求:内存256M以上 硬盘2G以上
自动生成三个用户:
sys (超级用户,sysdba,具有最高权限,有create database的权限 默认密码:change_on_install)
system (操作管理员,sysoper,权限也很大,没有create database的权限。默认密码:manager)
scott (普通用户,normal, 做测试与演示)
一般讲,对数据库维护,使用system用户登录就可以了。
至少有两个服务要启动:
OracleService实例名 数据库实例对应的服务
OracleTNSListener 监听服务
卸载:删除注册表键值,重启计算机,删除主目录。
四、Oracle开发工具介绍
1)开始-程序-oracle-application developerment-sql*plus
2)运行栏中输入sqlplus
3)开始-程序-oracle-oraclehome1-enterprise manager console
4)pl/sql developer
五、sql*plus的常用命令
连接命令:
1)conn[ect] 用户名/密码@网络服务名 [as sysdba|sysoper];
2)disc[onnect] 断开与当前数据库的连接
3)passw[ord] 用户名 修改密码,如果想修改其他用户的密码,需要用sys/system登录。
4)show user; 显示当前用户名。
5)exit; 断开与数据库的连接,同时会退出sql*plus。
文件操作命令
1)start和@ 运行SQL脚本 如 @d:a.sql;或start d:a.sql;
2)edit 可以编辑指定的sql脚本 如:edit d:a.sql;
3)spool 可以将sql*plus屏幕上的内容输出到指定文件中去 如:spool d:.txt .... spool off
交互式命令
& 替代变量 可以替代变量,而该变量在执行时,需要用户输入。
显示和设置环境变量
linesize 设置显示行的宽度,默认是80个字符。
pagesize 设置每页显示的行数,默认是14行。
六、Oracle用户的管理
创建用户
create user 用户名 identified by 密码;(密码必须在字母开头)
修改密码
passw[ord] 用户名; (给自己修改密码可直接使用,给别人修改密码需要具有DBA的权限,或拥有alter user的系统权限)
alter user 用户名 identified by 新密码;
删除用户
drop user 用户名 [cascade]; 在删除用户时,如果该用户拥有数据对象,就需要带cascade,实现级联删除。
授权
权限分为系统权限和对象权限
系统权限:用户对数据库的相关权限。
对象权限:用户对数据对象操作的权限。 数据对象包括:表、视图、过程、包、函数、序列、同义词、触发器等。权限包括select,insert,update,delete,all等。
授予系统权限
grant 权限 to 用户名;
一般包括create|alter|drop等
grant create user to xiao;
grant create session to xiao;
授予对象权限
grant 权限 on 数据对象名 to 用户名;
一般包括insert|update|delete|select等
grant select on scott.emp to xiao;
回收权限
revoke 权限 from 用户名;
revoke select on scott.emp from xiao;
角色:是若干权限的集合。用户拥有了某个角色,即拥有了该角色中所包含的所有权限。
角色分为预定义角色和自定义角色。
create session:登录数据库的系统权限。
dba:数据库管理员。
resource:在任何表空间建表。
grant resource to xiao;
revoke resource from xiao;
权限的传递
grant select on scott.emp to xiao with grant option; (对象权限)
grant conntect to xiao with admin option; (系统权限)
如果scott把对emp表的select权限从xiao身上收回,xiao授出给da的对应权限也将被收回。
七、使用profile管理用户密码
profile是口令限制、资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。
1)账户锁定
指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间天数,一般用dba的身份去执行该伪政府。
如:指定tea这个用户最多只能尝试3次登录,锁定时间为2天:
create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
alter user tea profile lock_account;
2)给账户解锁
alter user tea account unlock;
3)终止口令
要求该用户每隔10天要修改自己的登录密码,宽限期为2天:
create profile myprofile limit password_life_time 10 password_grace_time 2;
alter user tea profile myprofile;
4)口令历史
如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样Oracle就会将口令修改的信息存放到数据字典中,当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
//password_reuse_time指定口令可重用时间,即10天以后就可以重用。
删除profile
drop profile password_history [cascade];