玩转Oracle10g实战教程.docx
- 文档编号:13683681
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:21
- 大小:157.54KB
玩转Oracle10g实战教程.docx
《玩转Oracle10g实战教程.docx》由会员分享,可在线阅读,更多相关《玩转Oracle10g实战教程.docx(21页珍藏版)》请在冰点文库上搜索。
玩转Oracle10g实战教程
玩转Oracle10g实战教程
Oracle第一讲
1、引言
2、为什么要学习oracle
3、Oracle的安装、启动及卸载
4、介绍oracle及oracle公司的背景
5、Oracle开发工具介绍
6、Sql*plus的常用命令
7、Oracle用户的管理
学习目标
1、学会安装、启动、卸载oracle
2、使用Sql*plus工具
3、掌握oracle用户管理
4、学会在oracle中编写简单的select语句
引言一个问题
①淘宝网,天涯网,校友网......都有各自的功能,那么当我们关闭系统的时候,下次再访问这些网站时,问什么它们各自的信息还存在?
②再比如C/S的软件,比如网游、QQ,它们又是怎样保存数据的?
A.游戏积分B.QQ聊天记录...
引言解决之道
⏹解决之道--文件、数据库
我们刚学习过文件,大家可能回答用文件就可以保存数据嘛!
没有错,可以如果用文件保存数据存在几个缺点:
(1)文件的安全性问题
(2)文件不利于查询和对数据的管理
(3)文件不利于存放海量数据
(4)文件在程序中控制不方便
为了解决上述问题,专家们设计出更加利于管理数据的东西-数据库(本质就是一个软件),他能更有效的管理数据。
数据库是衡量一个程序员水平的重要指标。
举一个生活化的案例说明
如果说图书馆是保存书籍的,那么数据库就是保存数据的。
数据库服务器、数据库和表的关系
●所谓数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
●为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
●数据库服务器、数据库和表的关系如图所示:
为什么选择oracle--性能优越
概述:
目前主流数据库包括
●微软:
sqlserver和access
●瑞典MySQL:
AB公司MySQL
●IBM公司:
db2【处理海量数据】
●美国Sybase公司:
Sybase
●IBM公司:
informix
●美国oracle公司:
oracle
小型数据库
中型数据库
大型数据库
海量数据库
access
SqlServer2008
oracle
Db2
foxbase
Mysql
sysbase
Foxpro
informix
SqlServer2008
Mysql
应当如何选择数据库(项目中)
(1)标的
(2)功能要求
(3)多少人用(并发问题)
(4)安全、稳定性要求
(5)操作系统(UNIX[solaris,freebsd,hpunix,aix]/Linux/Windows)
Oracle数据库的认证考试简单介绍
Oracle的安装
系统要求
⏹操作系统最好为windowsserver
⏹内存最好在256M以上
⏹硬盘空间需要2G以上
Oracle公司介绍--oracle的含义
神喻代神说话的人甲骨文暗示公司预作霸主的决心
地位:
全球第一大数据库厂商,全球第二大独立软件供应商
oracle10g比oracle9i增加了什么?
简单说:
10g支持网格(Grid),支持自动管理(AutomaticManagement)。
详细说:
①10g的g是“Grid”缩写,支持网格计算,即:
多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中均衡(LoadBalance),按需增点,避免单点故障(SinglePointofFaliure)。
②安装容易,安装工作量比9i减少了一半。
③新增给予浏览器的企业管理器(EnterpriseManager)。
☞如果在安装的时候,忘记对某个用户解锁,比如scott,可以通过system来对此用户解锁,步骤:
(1)先使用system登录
(2)然后输入:
alteruserscottaccountunlock
oracle公司介绍---产品线
v数据库服务器:
2007年最新版本11G
v应用服务器:
OracleApplicationServer
v开发工具:
OracleJDeveloper,OracleDesigner,OracleDeveloper,等等
v应用软件(主要竞争对手:
德国SAP公司。
)
v企业资源计划(ERP)软件
v客户关系管理(CRM)软件
v人力资源管理软件(HCM)
oracle管理工具的介绍
◆sql*plus是oracle自带的工具软件,主要用于执行sql语句,pl/sql块。
如何使用:
1)在开始→程序→oracleoradb_home10g→applicationdevelopment→sql*plus
2)在运行栏中输入:
sqlplusw即可。
◆sqlplus是DOS下操作oracle的工具,其功能和sql*plus相似。
1)在运行栏中输入sqlplus
2)找到该可执行文件sqlplus.exe,在oracle主目录\ora10g\bin\sqlplus.exe,鼠标双击即可。
◆pl/sqldeveloper属于第三方软件,主要用于开发、测试、优化oraclepl/sql的存储过程,比如:
触发器,此软件oracle不带,需要单独安装。
◆Enterprisemanagerconsole(企业管理器)
oracle10g是通过web管理的,一般默认端口是5500,也有1158的。
访问url(请一定保证oracle服务启动了):
OracleDBConsole数据库实例名
http:
//机器名:
端口/em
sql*plus常用命令
⏹连接命令
(1)conn[ect]
用法:
conn用户名/密码@网络服务器名[assysdba/sysoper]
当用特权用户身份连接时,必须带上assysdba或是assysoper
该命令常用于切换当前用户。
建议在登录的时候使用普通用户,比如scott,如果确实需要system用户,则可以使用该命令切换为高级用户。
(2)disc[onnect]说明:
该命令用来断开与当前数据库的连接,但是不规程sqlplus窗口
(3)passw[ord]说明:
该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
基本用法:
password用户名
如果给自己修改密码,则可以不带用户名,如果给别人修改密码(前提:
是system用户或者sys用户来修改),则需要带用户名。
(4)showuser说明:
显示当前用户名
(5)exit说明:
该命令会断开与数据库的连接,同时会退出sql*plus
⏹交互命令
(1)&说明:
可以替代变量,而该变量在执行时,需要用户输入。
sql>select*fromempwherejob=’&job’;
(2)edit说明:
该命令可以编辑指定的sql脚本,例子:
sql>editd:
a.sql;
(3)spool说明:
该命令可以将sqlplus屏幕上显示的内容输出到指定文件中取。
例子:
sql>spoold:
b.sql;并输入sql>spooloff;
基本用法:
①spoolon;②spoold:
/bak.sql③select*fromemp;④spooloff
⏹显示和设置环境变量
概述:
可以用来控制输出的各种格式。
(1)linesize用于控制每行显示多少个字符,默认80个字符。
基本用法:
setlinesize字符数
aql>showlinesize
sql>setlinesize120
(2)pagesize用于控制每页显示多少行数目,默认14行。
sql>setpagesize40
oracle用户管理
⏹创建用户(简单版)
概述:
在oracle中要创建一个新的用户使用createuser语句,一般是具有dba(数据库管理员)的权限才能使用。
基本语法:
createuser用户名identifiedby密码
⏹给用户修改密码
概述:
如果给自己修改密码可以直接使用
sql>password用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alteruser的系统权限,也可以使用password用户名
sql>alteruser用户名identifiedby新密码
◆表空间
什么是表空间:
表存在的空间,一个表空间是指向具体的数据文件
创建用户(细节)
例子:
sql>createusershunpingidentifiedbym123
defaulttablespaceusers
temporarytablespacetemp
quota3monusers;
identifiedby表明用户shunping将用数据库方式验证
defaulttablespaceusers//用户的表空间在users上
tempporarytablespacetemp//用户shunping的临时表建在temp空间
quota3monusers//表明用户顺平建立的数据对象(表、索引、视图、pl/sql块...)最大只能是3m,刚刚创建的用户是没有任何权限的,因此,需要dba给该用户授权
sql>grantconnecttoshunping
如果你希望该用户建表没有空间的限制
sql>grantresourcetoshunping
如果你希望该用户成为dba
sql>grantdbatoshunping
⏹用户管理的综合案例
概述:
创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其制定相应的权限。
给一个用户赋权限使用的命令grant,回收权限使用命令revoke。
基本语法:
grant权限/角色to用户
revoke权限/角色from用户
①创建xiaoming,并赋予connect和resource
②回收权限
综合案例:
创建一个用户xiaohong,然后给他分配两个角色,可以让xiaohong登录、创建表,可以操作(CRUD)自己创建表,然后回收角色,最后删除用户。
(1)使用system创建xiaohong
createuserxiaohongidentifiedbym123;
(2)给xiaohong分配几个常用角色
grantconnecttoxiaohong;
grantresourcetoxiaohong;
(3)让xiaohong登录
connectxiaohong/m123;
(4)xiaohong修改密码
passwordxiaohong
(5)xiaohong创建一张简单的表
createtable......
(6)使用system登录,然后回收角色
revokeconnectfromxiaohong;
revokeconnectfromxiaohong;
(7)删除用户
dropuserxiaohongcascade;
☞当我们删除一个用户的时候,如果这个用户自己已经创建过数据对象,那么我们在删除用户的时候,需要加选项cascade,表示把这个用户删除的同时,把该用户创建的数据对象一并删除。
◆方案(schema)
理解:
当一个用户创建好后,如果该用户创建了任意一个数据对象,我们的dbms就会创建一个对应的方案与该用户对应,并且该方案的名字和用户名一致
EMP表
表对象
☞小技巧:
如果希望看到某个用户的方案究竟有什么数据对象,我们可以用pl/sqldeveloper
方案的实际应用,要求:
让xiaohong可以查看scott的emp表
步骤1:
先用scott登录,
connscott/tiger;
步骤2:
赋权限
grantselect[updatedeleteinsertall]onemptoxiaohong;
步骤3:
xiaohong查询scott的emp表时,需要
用户创建练习
1、创建用户tea、stu,并给这两个用户resource,connect角色
connsystem/123456;
createuserteaidentifiedbytea;
grantresourcetotea;
grantconnecttotea;
createuserstuidentifiedbystu;
grantresourcetostu;
grantconnecttostu;
2、使用scott用户把对emp表的select权限交给tea
connscott/tiger;
grantselectonemptotea;
3、使用tea查询scott的emp表
conntea/tea;
select*fromscott.emp;
4、使用scott用户把对emp表的所有权限赋给tea
connscott/tiger;
grantallonemptotea;
5、使用tea更新/删除/插入scott的emp表
conntea/tea;
updatescott.empsetjob=”Teacher’wherejob=’&job’;
deletefromscott.empwherejob=’&job’;
insertintoscott.empvalues(8888,’FORD’,’Teache’,7698’’08-9月-81’,1500,300,20);
6、使用scott收回权限
connscott/tiger;
revokeselectonscott.empfromtea;
revokeallonscott.empfromtea;
7、想办法让tea把自己拥有的对scott.emp的权限转给stu;
scott->tea->stu[权限转移...]
connscott/tiger;
grantallonscott.emptoteawithgrantoption;
conntea/tea;
grantselectonscott.emptostu;
//withgrantoption表示得到对象权限的用户,可以把权限继续分配。
//withadminoption得到系统权限,可以继续分配
8、使用stu查询scott用户的emp表
connstu/stu;
select*fromscott.emp;
9、使用tea收回stu的权限
conntea/tea;
revokeselectonscott.empfromstu;
⏹使用profile管理用户口令
概述:
profile是口令限制、资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那么oracle就会将default分配给用户。
(1)账户锁定
概述:
指定该账户(用户)登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令
例子:
指定scott这个用户最多只能尝试3次登录,锁定时间为2天,看看怎么实现:
创建profile文件
sql>createprolimitfailed_login_attempts3passwordlock_time2;
分配文件
sql>alteruserscottpro;
给账户(用户)解锁
sql>alteruser用户名accountunlock;
(2)终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。
例子:
给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登录密码,宽限期为2天,看看怎么操作。
sql>createprolimitpassword_life_time10password_grace_time2;
sql>alteruserteapro;
(3)口令历史
概述:
如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样是,就提示用户重新输入密码。
例子:
建立pro>createprolimitpassword_life_time10password_grace_time2password_reuse_time1;
password_reuse_time//指定口令可重用时间即10天后就需要修改
(1)分配给某个用户
sql>alteruserteapro;
(4)删除profile
概述:
当不需要某个profile文件时,可以删除该文件
sql>droppro文件名;
oracle数据库启动流程
oracle也可以通过命令行的方式启动,我们看看具体怎样操作。
oracle启动流程---windows下
1)lsnrctlstart(启动监听)
2)oradim-startup-sid数据库实例名
oracle启动流程--linux下
1)lsnctlstart(启动监听)
2)sqlplussys/change_on_installassysdba(以sysdba身份登录,在oracle10g后可以这样写)
sqlplus/nolog
connsys/change_on_installassysdba
3)startup
Oracle第2讲
0.数据库的一些基本概念
1.表的管理
2.基本查询
3.复杂查询
4.创建数据库实例
基本概念--数据在数据库中存储方式
User表
列(column)
ID
name
age
行(row)
1
shunping
20
2
lisi
23
3
wang
24
java程序
classUsers{
privateintd;
privateStringname;
privateintage;
}
Usersuser1=newUsers();
user1.setId
(1);
user1.setName(“shunping”);
user1.setAge(20);
类Users
●表的一行称之为一条记录
●表中一条记录对应一个java对象的数据
id=3
name=”wang”
age=24
User对象
在java程序和数据表对应的时候
类Users<----->表users
Users实例<----->表的一条对应
CREATETABLEtable_name
{
field1datatype,
field2datatype,
field3datatype,
}
field:
指定列明datatype:
指定列类型
基本管理--创建表(基本语句)
注意:
创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。
例:
user对象
id
name
password
birthday
idint
namestring
passwordstring
birthdaydate
SQL>createtableusers(
2idnumber,
3namevarchar2(32),
4passwordvarchar2(32),
5birthdaydate);
Tablecreated
基本管理--oracle常用数据类型
分类
数据类型
说明
文本、二进制类型
CHAR(size)char(20)
VARCHAR2(size)vahchar2(32)
nchar(n)
nvchar2(n)
clob(characterlargeobject)
blod(binaryimageobject)
定长最大2000字符
变长最大4000字符
Unicode数据类型,定长最大2000字符
Unicode数据类型,变长最大4000字符
字符型大对象最大8TB1T=1024G
二进制数据可以存放图片/声音8TB
数值类型
number(p,s)
p为整数,s为小数位范围:
1<=p<=38,-84<=s<=127
保存数据范围:
-1.0e-130<=numbervalue<=1.0e+126
保存在机器内部的范围:
1~22bytes
时间日期
date
TIMESTAMPn)
包含年月日,时分秒。
默认格式:
DD-MON-YYYY。
从公元前4712年1月1日到公元4712年12月31日的所有合法日期
n的取值为0~9表示指定TIMESTEAMP中秒的小数位数。
N为可选。
如果n为0,timestamp与date等价(不推荐)
◆number可以理解成是一个可变的数值类型,比如number(12),你可以放一个小整数,它占用的字节数就少;你放一个大整数,它占用的字节数就多,很好!
②varchar2(size)
变长,最大可以存放4000个字符
举例:
createtabletest2(namevarchar2(16));
比如存放了’abc’字符串,实际上在数据库中,就只存放‘abc’,其余字符空间就回收。
如果我们的数据的长度是固定的,比如商品编号(8位),则应当使用char来存放,因为这样存取速度快,
如果存放数据的长度是变化的,则使用varchar2。
③nchar(size)
1.定长
2.编码方式:
unicode
3.举例:
createtabletest3(namenchar
(2));
createtabletest3(namechar
(2));
说明:
一个汉字,占用nchar的一个字符空间,
一个汉字,占用char的两个字符空间
④nvchar2(size)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle10g 实战 教程