韩顺平oracle学习笔记
第0讲:如何学习oracle
一、如何学习oracle
Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础:
1.学习过一门编程语言(如:java ,c)
2.最好学习过一门别的数据库(sql server,mysql , access) 教程推荐:oracle使用教程, 深入浅出oracle
记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要 成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解
Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理 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用户管理
一、主流数据库包括:
?微软:sql server 和 access
?瑞典:mysql AB公司
?IBM公司:DB2
?美国sybase公司:sybase
?IBM公司:infromix
?美国oracle公司:oracle(目前最流行的之一)
数据库分类:
小型数据库 中型数据库 大型数据库
mysql Sybase
access sql server Oracle
informix DB2
负载量在100人内,比如比如在负载日访问量负载可以处理海量数据板,信息系信息留言统。 5000-15000 库
sybase<oracle<db2
成本低 成本在万元内 大型数据库的安全性能
安全性要求不高 比如商务网站 高,价格也很昂贵~万
元以上
二、oracle安装,启动及卸载
1.系统要求:
操作系统最好为windows2000
内存最好在256M以上
硬盘空间需要2G以上
2.oracle安装会自动的生成sys和system两个用户
2
说明:
1Sys用户 是 超级用户,具有最高权限,具有sysdba角色,create database?
的权限,默认密码是manager
2System 用户 是 管理操作员,权限也很大,具有sysoper角色,没有create ?
database权限,默认密码是 change_on_install 3一般讲,对数据库维护,使用system用户登录就可以了 ?
3.启动oracle
右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1
是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener
4.卸载oracle
1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭
2、开始,,程序,,Oracle - oracle的版本号,我的是10ghome,,Oracle Installation Products,, Universal Installer 卸载oracle 3、进注册表,regedit,删除选择
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\App
lication这个里面所有有oracle这个字眼的,删除
4、删除c盘\Program Files\Oracle目录的东西以及oracle安装目录下所有的文件以及文件夹
5、环境变量中删除有关oracle的classpath和path
,,
三、oracle开发工具,
Sqlplus是Oracle自带的工具软件,主要用于执行sql语句,pl/sql块。,如何使用:,,
1)在开始,程序,oracle,orachome90,,
,,application,development,sql*plus(这个是在dos下操作),
2)在运行栏中输入:sqlplusw或者sqlplus即可,
3)在开始,程序,oracle,orahome90,,
Application,development,sql*plus,worksheet,,4)pl/sql,developer,属于第三方软件,主要用于开发,测试,优化oracle,pl/sql,的
存储过程.如:触发器,此软件oracle不带,需要单独安装。,5)oracle的企业管理器(oem,oracle,enterprise,manager),位置在,,开始,程序,oracle,oracle,oraclehome90,enterprise,manager,console,
,,即可启动oracle的企业管理器,是一个图形界面环境,
,
,
,
四、Sql*plus的常用命令,
3
1.连接命令
(1) conn[ect]
用法:conn 用户名/密码 @ 网络服务名[as sysdba/sysoper](角色登陆)当
用特权用户身份连接时,必须带上as sysdba 或是 as sysoper 例:conn scott/tiger;
show user; 显示当前用户
2.断开连接命令
(2) disc[onnect]
说明:该命令用来断开与当前数据库的连接
(3)passw[ord] 说明:该命令用于修改用户名的密码。如果要想修改其他用户的密码,需要用sys/system登陆。
(4) show user
说明:显示当前用户名
(5) exit
说明:该命令会断开与数据库的连接,同时会退出sql*plus 3.文件操作命令
(1) start和@
说明:运行sql脚本
案例:sql>@ d:\a.sql 或者 sql>start d:a.sql (2) edit
说明:该命令可以编辑指定的sql脚本。
案例:sql>edit d:\a.sql
(3) spool
说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例:sql>spool d:\b.sql 并输入 sql>spool off 4(交互式命令
(1),
说明:可以替代变量,而该变量在执行时,需要用户输入。如:sql>select
* from emp where job=‘&job;’ 输入job是注意大小写 (2) edit
说明:该命令可以编辑指定的sql脚本
案例: sql>edit d:\a.sql
5.显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设置,可以去修改 glogin.sql脚本
(1)linesize
说明:设置显示行的宽度,默认是80个字符
sql>show linesize
sql>set linesize 90
(2)pagesize
说明:设置每页显示的行数目,默认是14,用法和linesize一样,至于其他环境参数的使用也是大同小异
sql>set pagesize 8 实际得到的不是14/8=2页 而是:14/(8-3)=5页 五Oracle用户的管理
4
1.创建用户
概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
create user 用户名 identified by 密码;
2.给用户修改密码
概述:如果给自己修改密码可以直接使用 sql>password 用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
sql>alter user 用户名 identified by 新密码 3.删除用户
概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有 drop user的权限。
比如 drop user 用户名【cascade】
注意:在删除用户时,如果要删除的用户已经创建了表,就需要在删除的时候带一个参数cascade
4.用户管理的综合案例
概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限(connect登陆,dba管理员,resource建表)使用命令grant,回收权限使用命令revoke.
为了给讲清楚用户管理,给大家举一个案例。
案例:
新建一个用户lady 并给该用户赋可登陆可创建表
Sql>create user lady identified by lady123(密码)
受登陆权限:,grant connect to lady
受可创建表:grant resource to lady
可以多个同时授权:grant connect,resource to lady; 注意授权用户级别应该为(dba以上sys/system)
还可以使用PL/SQL工具创建:文件->新建->用户
现在我要把scott用户里面的emp表的权限赋给lady用户但lady只能有对emp查询权限:
grant select on emp to lady;(授权用户级别应该:授权本身,或者sys/system) lady 查询emp的方式:select * from scott.emp;
案例:同上我想把update的权限也赋给leng , grant update on emp to leng; 2)我想把emp所有的(增,删,改,查/insert,delete,update,select这四个一起可以用all代替)
操作权限赋给leng
grant all on emp to leng;(此时登陆用户为scott)
案例2:这时我想把权限收回来怎么办呢,
这时用关键字revoke(撤回),
revoke select on emp from lady; 收回lady的查权限
案例:
5
现在scott希望吧查询emp表权限通过lady用户继续给别的用户, Scott > grant select on emp to lady with grant option;
Leng > grant select on scott.emp to 新建用户
案例:
scott想把emp表的权限从leng用户赋权给新用户yoyo;
Scott> grant select on emp to leng with grant option;
Leng> grant select on scott.emp to yoyo;
Yoyo> select * from scott.emp;
如果是对象权限,就加入with grant option 例:grant select on emp to xiaoming with grant option
如果是系统管理权限,system 给xiaoming权限时:
例:grant connect to xiaoming with admin option
如果scott把xiaoming 对emp表的查询权限回收,那么xiaohong会怎么样 Scott->xiaoming->xiaohong ,结果就是xiaoming,xiaohong,都不能查询emp表