【原创】Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理
-
内容介绍:
-
基础部分:oracle基本使用、oracle用户管理、oracle表管理
-
高级部分:oracle表的查询、oracle的函数、oracle数据库管理、oracle的权限和角色、PL/SQL编程、索引约束和事务
参考书:深入浅出Oracle---入门、进阶与诊断案例
1.为什么学习oracle?
-
性能优越:
小型数据库 |
中型数据库 |
大型数据库 |
acess、foxbase |
mysql、sql server、informix |
sybase、oracle、db2 |
复杂量小(100人内)、成本千元内、对安全性要求不高 |
日访问量5000--15000、成本在万元内,比如商务网站 |
负载可以处理、海量数据库、安全性很高 sybase<oracle<db2 |
-
数据库的选择标准:
项目的规模:a.负载量有多大;b.成本; c.安全性
-
需求量大:
2.Oracle认证:
DBA认证(OCA认证-->OCP认证--->OCM认证)、Java开发认证、Oracle网络开发认证。
3.Oracle的安装:
-
Oracle安装会自动生成sys用户和system用户:
a. sys用户是超级用户 具有最高权限,具有sysDBA角色,有create database的权限,默认密码是change_on_install。
b. system用户是 管理操作员,权限也很大,具有sysOPER角色,没有create database的权限,默认密码是manager。
c. 一般来讲,对数据库维护,使用system用户登录就可以了。
4、SQL Server 与Oracle 启动的区别:
Sql server----Sql Server启动后,用户sa登录后会看见很多数据库。
Oracle-----Oracle启动后(启动监听一个数据库实例),用户sys、system、scott会看见一个数据库的实例(表、视图、存储函数等数据对象)。Oracle启动服务,最少启动Oracle的一个实例和监听TNListener。
5、Oracle的卸载
-
运行regedit,进入注册表;
-
进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE, 删除ORACLE;
-
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下以Oracle开头的键值;
-
重启计算机,然后删除硬盘上的Oracle目录,如果该目录不让删除,那么把这个目录改成一个别的名字,然后重启机器,再删除它。
6、Oracle管理工具的介绍:
-
1.Oracle自带的工具软件,主要用于执行SQL语句和PL/SQL块;
使用方法:开始菜单中的sql*plus;或运行栏中sqlplusw;或开始菜单中sql*plus worksheet;
-
2.sqlplus dos下操作oracle的工具,其功能和sql*plus相似;
使用方法:运行栏中输入sqlplus;或运行可执行文件sqlplus.exe;
-
3.oracle的企业管理器(oracle enterprise manager);
使用方法: 开始菜单中oem,独立登陆;
-
4.pl/sql developer 属于第三方软件,主要用于开发、测试、优化oracle pl/sql的存储过程;
7.sql*plus常用命令
-
帮助命令
-
help 命令 或 ? 命令 ;
eg:显示所有命令 help index;
-
Desc[ribe]命令
-
命令格式:Describe 数据对象;
返回数据库中所存储的对象的描述。
tips:在SQL语句的输入过程中,可以在下一行输入#:作用是可以临时先运行一个SQL命令,执行完后,继续输入刚才的SQL语句。
-
连接命令
-
conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper],当用特权用户身份连接时,必须带上as sysdba 或者 as sysoper。
-
disc[onnect]
说明:该命令用于断开与当前数据库的连接
-
passw[ord]
说明: 该命令用于修改用户的密码,如果想要修改其他用户的密码,需要用sys/system登陆
-
show user
说明:显示当前用户名
-
exit/quit
说明:该命令会断开与数据库的连接,同时会推出
-
文件操作命令
-
sav[e] 文件保存路径:
将缓冲区的SQL语句保存到文件;
-
get 文件读取路径
将文件中的SQL语句读取到缓冲区,并用/来运行;
-
start和@ 文件 [参数1,...]
说明:运行sql脚本--start只能在sqlplus中运行,@可在sqlplus和操作系统命令提示符中运行
案例:无参:sql>@ d:\a.sql 或者 sql>START d:\a.sql
有参:a.sql中的语句 -- select * from emp where deptno=&1 and sal>&2;
运行: @/start d:\a.sql 20 1500;
-
edit
说明:编辑指定的sql脚本
案例:sql>edit d:\a.sql
-
spool
说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例:sql>spool d:\b.sql 并输入 sql>spool off
-
交互式命令
-
使用替换变量 -- &
说明:可以替代变量,而该变量在执行时,需要用户的输入。
案例: sql>select * from emp where job='&job';
-
定义替换变量:
说明:def[ine] 变量名=变量值
-
查看替换变量:
说明:define --查看所有变量; define 变量名 -- 查看该变量的值
-
清除替换变量
undef[ine] 变量名,... --清除一个或多个替换变量值
-
显示和设置环境变量
概述:可以用来控制输出的的各种格式,set、show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本。
-
linesize:
说明:设置显示行的宽度,默认是80个字符。
案例:sql>show linesize; sql>set linesize 90;
-
pagesize
说明:设置每页显示的行数目,默认为14,用法和linesize一样。
8.Oracle用户管理
-
创建用户
概述:在oracle中要创建一个新的用户,使用create user语句,一般是具有dba的角色才能使用。
eg:create user 用户名 identified by 密码;
-
给用户修改密码
-
如果给自己修改密码,
eg:可以直接使用: sql>password 用户名;
-
如果给别人修改密码,则需要具有DBA的权限,或者拥有alter user的系统权限:
eg:sql>alter user 用户名 identified by 新密码;
-
删除用户
概述:一般以DBA的身份去删除某个用户,如果用其它用户去删除用户,则需要具有drop user的权限。
eg:drop user 用户名 [cascade]----当删除的用户时,如果有该用户创建的表,那么将删除用户和用户创建的表,即级联删除。
-
权限的授予与回收
-
Oracle中权限、角色、用户名等基础知识与关联
-
详细解释:
1. Oracle数据库中每一个表都在一个用户空间(即方案)中,各方案中的表名可以相同;另外:每个表都存储在一个表空间(相当于磁盘分区)中。
2. 新创建的用户没有任何权限(不能连接数据库,更不能查询等操作);只有赋予权限/角色才能数据库操作;
3. 只有DBA、OPER或有授予系统权限的用户才能授权系统权限:
授予连接数据库权限:grant connect to 新用户;
授予自己空间中表操作的权限: grant resource to 新用户;
DBA还可以授予DBA权限: grant dba to 新用户;
4. 用户操作其它用户的表时,其它用户应授权对象权限(select/insert/update/all...)给用户。
scott授予emp表的select权限给xiaoming: grant select on emp to xiaoming;
5. 用户查询其它用户的表时:
select * from scott.emp;
-
收回权限:
revoke select on emp from xiaoming;
-
数据库维护:
1. scott用户赋予其他用户查询scott的emp表的权限,并且可以把这个权限继续赋给别人。
---如果是对象权限,就加入 with grant option
eg: grant select on emp to xiaoming with grant option;
---如果是系统权限,system给xiaoming权限时,加入 with admin option:
eg: grant connect to xiaoming with admin option;
2. 回收权限时,若scott把xiaoming对emp表的查询权限回收,那么xiaoming的权限也被回收
-
使用profile管理用户口号
概述:profile是口号限制/资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。
-
账户锁定:
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用DBA的身份去执行该命令。
eg:指定xiaoming这个用户最多尝试3次登陆,锁定时间为2天:
sql>create profile lock_account limitfailed_login_attempts 3 password_lock_time 2;
sql>alter user xiaoming profile lock_account;
-
给账户(用户)解锁:
sql>alter user xiaoming accountunlock;
-
终止口令:
概述:为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作; 解锁也是一样的。
eg:给用户xiaoming创建一个profile文件,要求该用户每隔10天要修改自己的登录密码,宽限期为两天。
sql>create profile myprofile limit password_lige_time 10 password_grace_time 2;
sql>alter user xiaoming profile myprofile;
-
口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,已使用口令历史,这样oracle就会将口令历史的性能系存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。eg:
-
建立profile
sql>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
-
分配给某个用户(和前面一样):
-
删除profile
概述:当不需要某个profile文件时,可以删除给文件。
sql>drop profile password_history [cascade(级联删除)];