韩顺平oracle学习笔记Word下载.doc
《韩顺平oracle学习笔记Word下载.doc》由会员分享,可在线阅读,更多相关《韩顺平oracle学习笔记Word下载.doc(84页珍藏版)》请在冰豆网上搜索。
Oracle高级部分:
oracle表的查询;
oracle的函数;
oracle数据库管理;
oracle的权角色;
pl/sql编程;
索引,约束和事物。
期望目标:
1学会安装、启动、卸载oracle
2使用sql*plus工具
3掌握oracle用户管理
4学会在oracle中编写简单的select语句
第1讲:
基础语法
内容介绍:
1.为什么学习oracle
2.介绍oracle及其公司的背景
3.学会安装、启动、卸载oracle
4.oracle开发工具
5.Sql*plus的常用命令
6.oracle用户管理
一、主流数据库包括:
●微软:
sqlserver和access
●瑞典:
mysqlAB公司
●IBM公司:
DB2
●美国sybase公司:
sybase
infromix
●美国oracle公司:
oracle(目前最流行的之一)
数据库分类:
小型数据库
中型数据库
大型数据库
access
mysql
sqlserver
informix
Sybase
Oracle
负载量在100人内,比如板,信息系信息留言统。
比如在负载日访问量5000-15000
负载可以处理海量数据库
sybase<
oracle<
db2
成本低
安全性要求不高
成本在万元内
比如商务网站
大型数据库的安全性能高,价格也很昂贵!
万元以上
二、oracle安装,启动及卸载
1.系统要求:
操作系统最好为windows2000
内存最好在256M以上
硬盘空间需要2G以上
2.oracle安装会自动的生成sys和system两个用户
说明:
Sys用户是超级用户,具有最高权限,具有sysdba角色,createdatabase的权限,默认密码是manager
System用户是管理操作员,权限也很大,具有sysoper角色,没有createdatabase权限,默认密码是change_on_install
一般讲,对数据库维护,使用system用户登录就可以了
3.启动oracle
右键单击我的电脑->
服务和应用程序:
服务->
启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener
4.卸载oracle
1、先关掉oralce,netstopOracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭
2、开始->程序->Oracle-oracle的版本号,我的是10ghome->OracleInstallationProducts->UniversalInstaller卸载oracle
3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application这个里面所有有oracle这个字眼的,删除
4、删除c盘\ProgramFiles\Oracle目录的东西以及oracle安装目录下所有的文件以及文件夹
5、环境变量中删除有关oracle的classpath和path
三、oracle开发工具
Sqlplus是Oracle自带的工具软件,主要用于执行sql语句,pl/sql块。
如何使用:
1)在开始à
程序à
oracleorachome90à
applicationdevelopmentà
sql*plus(这个是在dos下操作)
2)在运行栏中输入:
sqlplusw或者sqlplus即可
3)在开始à
oracleorahome90à
Applicationdevelopmentà
sql*plusworksheet
4)pl/sqldeveloper属于第三方软件,主要用于开发,测试,优化oraclepl/sql的存储过程.如:
触发器,此软件oracle不带,需要单独安装。
5)oracle的企业管理器(oemoracleenterprisemanager)
位置在开始à
oracleà
oracleoraclehome90à
enterprisemanagerconsole
即可启动oracle的企业管理器,是一个图形界面环境
四、Sql*plus的常用命令
1.连接命令
(1)conn[ect]
用法:
conn用户名/密码@网络服务名[assysdba/sysoper](角色登陆)当用特权用户身份连接时,必须带上assysdba或是assysoper
例:
connscott/tiger;
showuser;
显示当前用户
2.断开连接命令
(2)disc[onnect]
说明:
该命令用来断开与当前数据库的连接
(3)passw[ord]说明:
该命令用于修改用户名的密码。
如果要想修改其他用户的密码,需要用sys/system登陆。
(4)showuser
显示当前用户名
(5)exit
该命令会断开与数据库的连接,同时会退出sql*plus
3.文件操作命令
(1)start和@
运行sql脚本
案例:
sql>
@d:
\a.sql或者sql>
startd:
a.sql
(2)edit
该命令可以编辑指定的sql脚本。
editd:
\a.sql
(3)spool
该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
spoold:
\b.sql并输入sql>
spooloff
4.交互式命令
(1)&
说明:
可以替代变量,而该变量在执行时,需要用户输入。
如:
select*fromempwherejob=‘&
job’输入job是注意大小写
该命令可以编辑指定的sql脚本
案例:
sql>
\a.sql
5.显示和设置环境变量
概述:
可以用来控制输出的各种格式,setshow如果希望永久的保存相关的设置,可以去修改glogin.sql脚本
(1)linesize
设置显示行的宽度,默认是80个字符
sql>
showlinesize
setlinesize90
(2)pagesize
设置每页显示的行数目,默认是14,用法和linesize一样,至于其他环境参数的使用也是大同小异
setpagesize8实际得到的不是14/8=2页而是:
14/(8-3)=5页
五Oracle用户的管理
1.创建用户
在oracle中要创建一个新的用户使用createuser语句,一般是具有dba(数据库管理员)的权限才能使用。
createuser用户名identifiedby密码;
2.给用户修改密码
如果给自己修改密码可以直接使用sql>
password用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alteruser的系统权限
sql>
alteruser用户名identifiedby新密码
3.删除用户
一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有dropuser的权限。
比如dropuser用户名【cascade】
注意:
在删除用户时,如果要删除的用户已经创建了表,就需要在删除的时候带一个参数cascade
4.用户管理的综合案例
创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。
给一个用户赋权限(connect登陆,dba管理员,resource建表)使用命令grant,回收权限使用命令revoke.
为了给讲清楚用户管理,给大家举一个案例。
案例:
新建一个用户lady并给该用户赋可登陆可创建表
Sql>
createuserladyidentifiedbylady123(密码)
受登陆权限:
à
grantconnecttolady
受可创建表:
grantresourcetolady
可以多个同时授权:
grantconnect,resourcetolady;
注意授权用户级别应该为(dba以上sys/system)
还可以使用PL/SQL工具创建:
文件->
新建->
用户
现在我要把scott用户里面的emp表的权限赋给lady用户但lady只能有对emp查询权限:
grantselectonemptolady;
(授权用户级别应该:
授权本身,或者sys/system)
lady查询emp的方式:
select*fromscott.emp;
同上我想把update的权限也赋给lengà
grantupdateonemptoleng;
2)我想把emp所有的(增,删,改,查/insert,delete,update,select这四个一起可以用all代替)
操作权限赋给leng
grantallonemptoleng;
(此时登陆用户为scott)
案例2:
这时我想把权限收回来怎么办呢?
这时用关键字revoke(撤回)à
revokeselectonempfromlady;
收回lady的查权限
现在scott希望吧查询emp表权限通过lady用户继续给别的用户?
Scott>
grantselectonemptoladywithgrantoption;
Leng>
grantselectonscott.empto新建用户
scott想把emp表的权限从leng用户赋权给新用户yoyo;
Scott>
grantselectonemptolengwithgrantoption;
Leng>
grantselectonscott.emptoyoyo;
Yoyo>
select*fro