Oracl基础Word格式.docx
《Oracl基础Word格式.docx》由会员分享,可在线阅读,更多相关《Oracl基础Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
LISTENER=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
(ADDRESS=(PROTOCOL=TCP)(HOST=ORA54)(PORT=1521))
//注意:
上面一行的HOST必须是你的主机名,否则监听会出问题,也可以使用你的机器的IP地址
(PROTOCOL_STACK=
(PRESENTATION=GIOP)
(SESSION=RAW)
(ADDRESS=(PROTOCOL=TCP)(HOST=ORA54)(PORT=2481))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME=..........)
(PROGRAM=extproc)
(GLOBAL_DBNAME=ora54)
(SID_NAME=ora54)
//注意:
ora54为数据库的SID名称,不能更改,否则监听出问题
5.将主机字符串(HostString)写入注册表(简化SQL*Plus的登录)
regedit.exe->
HKLM->
Software->
Oracle->
home0
增加关键字:
local(字符串),键值:
主机字符串名。
/*将下面的内容复制到一个.reg文件中,在Windows2000中双击执行,即可实现增加或者修改local键值的作用
WindowsRegistryEditorVersion5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"
local"
="
ora54"
*/
[SVRMGRL:
ServerManager的使用方法]
D:
\>
svrmgrl
SVRMGR>
connectinternal
//使用svrmgrl,进入后使用的第一个命令必须是这个命令。
口令:
//如果要求输入口令,请输入oracle
连接成功。
//检查当前使用的数据库名
NAME
---------
ORA44
已选择1行。
shutdownimmediate
//关闭当前使用的数据库
已关闭数据库。
已卸下数据库。
已关闭ORACLE实例。
startup
//启动当前使用的数据库,如果无效,请使用startupforce
已启动ORACLE实例。
系统全局区域合计有
24433932个字节
FixedSize
70924个字节
VariableSize
7507968个字节
DatabaseBuffers
16777216个字节
RedoBuffers
77824个字节
ORA-00205:
?
?
[另一个启动oracle数据库的例子]
d:
sqlplusinternal/oracle
startupforce
//强行重新启动数据库。
[修改口令字]
grantconnecttosystemidentifiedbyNewPassword;
//如果用数字作口令,需要使用双引号括起来
grantconnecttosysidentifiedbyNewPassword;
alterusersystemidentifiedbyNewPassword;
alterusersysidentifiedbyNewPassword;
password
//需要输入原口令
//注:
以上修改口令的方法等价;
sys与system用户可以互相修改口令;
如果sys与system用户的口令都忘记了,使用如下方法:
connectinternal/oracle
grantconnecttosystemidentifiedbymanager;
语句已处理。
exit
服务器管理程序结束。
、Oracle产品组成
查询数据库选件产品:
select*fromv$option;
一般都是True,如果是False,可以双击激活。
/*cartridges(小产品的)插件,(大产品的)选件(options)*/
[SYS用户是Oracle数据库中权限最大的用户。
]
[SQL*Plus登录方法]
1.c:
sqlplus"
/assysdba"
2.c:
sqlplusinternal
//注意:
以上两种方法可以类似的使用于SQL*Plus的图形登录界面中
//用这种登录方法登录进去,所使用的用户均为SYS。
[之所以会出现这种登录方法,是因为在NT的用户组中存在一个ORA_DBA的本地组,凡在此组中的用户使用操作系统认证,即在此组中的用户登录数据库时不需要密码。
[orapwd命令:
修改internal用户的口令字]
/*orapwd的命令行参数
orapwd
Usage:
orapwdfile=<
fname>
password=<
password>
entries=<
users>
where
file-nameofpasswordfile(mand),
password-passwordforSYSandINTERNAL(mand),
entries-maximumnumberofdistinctDBAandOPERs(opt),
Therearenospacesaroundtheequal-to(=)character.
修改internal口令字(internal默认口令为oracle)认证方法(AB两个步骤):
A.修改Oracle登录认证方法:
修改文件SQLNET.ORA文件。
SQLNET.AUTHENTICATION_SERVICES=(NTS)//将这一行前面加上#号注释掉,即可将Oracle的认证方法由操作系统认证改为Oracle认证
SQLNET.ORA文件的位置:
UNIX:
/u01/app/oracle/product/8.1.6/network/admin/sqlnet.ora
WindowsNT/2000:
d:
\oracle\ora81\network\admin\sqlnet.ora
B.修改Internal口令字:
C:
ORAPWDfile=d:
\oracle\ora81\database\pwdora8i.ora
password=YourPassword
//YourPassword为你要设置的密码
entries=30
/*ORAPWDfile=d:
\oracle\ora81\database\pwdora54.orapassword=qeventries=30*/
$orapwdfile=$ORACLE_HOME/dbs/orapwSID
password=YourPassword
然后重新启动Oracle服务(服务->OracleServiceHOSTNAME)。
/*在执行上述命令之前,需要先将相应目录的pwdora8i.ora(或orapwSID)文件删除或者改名,因为口令字文件不能重名。
[tkprof跟踪文件整理工具]
$tkprofx.trcx.txt
Windows2000/NT:
\oracle\admin\db_name\udump\*.trc
/u01/app/oracle/amdin/db_name/udump/*.trc
//*/
Oracle数据分区技术:
8.0以后开始使用
(一)LOB(LargeObject)大对象类型数据:
1.BLOB:
存储二进制数据,如图象、视频、声音等,用于代替Longraw类型(Oracle7.0以前的数据类型,今后不再支持)
2.CLOB:
存储大字符,如:
个人简历,用于代替long字段。
3.NCLOB:
其它民族语言的支持
(1)数据库字符集NLS:
Server端:
NLS_CHARACTERSET:
(如果为以下的字符集,Oracle的数据库可以用来存储汉字)
ZHS16GBK(Oraclei8,Oracle8)
ZHS16CGB231280(Oracle7.3,8,8i)
此参数位置在数据字典中,查询核心字符集(语言、日期、货币等):
select*fromnls_database_parameters;
Client端:
NLS_LANG=SimplifiedChinese_CHINA.ZHS16GBK(如果没有设置,默认是英文)
regedit.exe
UNIXClient中:
$NLS_LANG="
simplifiedchinese"
_china.zhs16gbk
$exportNLS_LANG
//一般将上述环境变量放入.profile文件中。
/***********************************************插入内容********************************************************
(1)sys是一种用户,internal是一种方式,用来启动关闭数据库,9.0以后不再使用internal,全部是sys。
(2)SQL>
setcomv7
//将8i版本暂时退回到7版
(3)SQL>
altersystemsuspend;
//使用internal用户执行,冻结数据
SQL>
altersystemresume;
//取消冻结,恢复正常
****************************************************************************************************************/
(2)Oracle数据库核心字符集修改方法:
[*]修改数据字典(使用SYS用户):
updateprops$setvalue$='
ZHS16GBK'
wherename='
NLS_CHARACTERSET'
commit;
然后重新启动数据库。
4.BFILE:
外部文件存储,将数据存储在服务器硬盘
5、SQL关键字(命令)
SQL关键字(以下命令为SQL命令,以分号结束)
1.Alter:
修改表结构
2.Audit:
审计, NoAudit(取消审计)
3.Commit:
数据提交,相反的命令:
Rollback(回退)
4.Comment:
将oracle的注释写入数据字典
5.Create:
建表、数组、索引、视图等, 相反的命令:
Drop
6.delete:
删除表中的数据, Drop是把表中的数据包括结构全部删除
7.Grant:
授权, Revoke:
收权(权限回收)
8.Insert:
在表中插入新行
9.Lock:
将表强行锁住
10.Rename:
修改表名
11.Select:
数据查询
12.Update:
数据更新,修改某一个列
13.Validate:
校验,对数据进行校验。
6、SQL命令的输入:
在SQL>
提示符后输入命令,可以输入多行,以分号结束
7、SQL*Plus关键字:
以回车结束
1.@:
执行外部命令,格式:
@路径\文件名
2.#:
注释
3./:
执行上一条命令
4.Accept:
接收键盘输入的命令
5.Append(简化为a):
在行尾增加字符串
at
1*select*fromdept
/
6.Break:
分组, Syntax:
breakon分组列skipn //n为每两组之间间隔的空行
/*例:
breakonjob
select*fromemporderbyjob;
//此处务必按分组列排序
breakonjobskip1
7.Btitle,Ttitle:
设置表尾、表头
Ttitle'
表头'
Btitle'
表尾'
Ttitleoff//失效
8.Change:
写错了改正,Syntax:
C/old/new
select*fromdetp;
select*fromdetp
c/tp/pt
9.Clear:
清除
clearbreak
//清除前面的break设置
clearbuff
//清除SQL*Plus缓冲区中的SQL语句
10.Column:
列定义,用于定义列的显示格式
语法:
column列名format格式
例:
Columnsalformat$99.999999
11.computer:
统计计算
12.connect:
从一个用户退出,直接进入另一个用户
13.disconnect:
中断当前用户的连接
14.copy:
远程复制(用的较少,一般数据链路)
15.define:
定义
16.undefine:
取消定义
17.del:
删除当前行
18.describe(简写desc):
显示表结构
descemp
19.document:
文档注释
20.edit(简化ed):
调入外部编辑器编辑缓冲区中的SQL语句,保存后,可以直接通过“/”运行编辑过的SQL语句
21.get:
将外部文件调入不执行,只供显示
getc:
\sqlplus.ora
22.host:
执行操作系统命令
hostdir
23.input(简化为I):
行插入,在当前行的后面插入。
24.List(简化为L):
列示
25.Pause:
设置屏幕暂停
setpauseon
//暂停
setpauseoff
//不暂停
set
'
more'
pauseon[?
26.Quit:
退出
27.Remark:
28.Run(R):
类似“/”
29.Save:
将已经运行过的SQL命令保存到磁盘
savec:
\run.sql
replace
//覆盖保存
append
//追加
30.set:
设置
31.show:
显示环境变量的值
32.Spool:
显示跟踪
spoolc:
\文件名
spooloff
//停止记录
33.Start:
类似@,执行外部的SQL文件
33.Timing:
服务器端某一命令的执行时间跟踪
数据字典:
描述系统信息的表、视图、同义词等,由系统自动维护。
select*fromtabs;
1.显示当前所登录的用户:
select*fromall_users;
2.user_xxx:
描述用户创建的对象,如:
user_tables,user_views,user_indexes
3.dba_XXX:
数据库管理员(sys,system)专用数据字典
4.all_XXX:
描述用户创建的对象,其他用户授权可以存取的对象。
all_objects:
全部的数据字典
1.查询全表的数据:
select*fromemp;
2.查询某(几)个列:
selectename,salfromemp;
3.DISTINCT标识:
只显示不相同的列
selectjobfromemp;
//显示结果中有相同的记录
selectdistinctjobfromemp;
//只显示不相同的职业
4.使用orderby将显示结果排序:
ASC升序(默认),DESC降序
5.使用where指出查询条件:
select*fromempwheresal>
2000;
[字符型或日期型用单引号括起来,并区分大小写]
6.设置日期显示格式:
(1)确定日历格式:
设置参数nls_calendar。
altersessionsetnls_calendar='
JapaneseImperial'
//设置为日本日历
ROCofficial'
//设置为台湾日历
Gregorian'
//设置为格林尼治日历,这是我们要设置成的日历。
selectsysdatefromdual;
//查询系统时间
(2)确定日期格式:
参数nls_date_format
常用的日期格式:
yyyy.mm.dd
yyyy-mm-dd
yyyy/mm/dd
yyyy"
年"
mm"
月"
dd"
日"
//如果要显示汉字,请用双引号括起来
dy
//dy表示星期
命令格式:
altersessionsetnls_date_format='
格式'
[此命令只修改前端的显示,退出后即失效,要想永久有效,要修改注册表,在注册表中HKLM->
Software->
Oracle->
Home0增加字符串关键字nls_date_format,键值为日期格式,此处的格式不需要用单引号括起来。
dy'
7.Oracle登录自动执行文件glogin.sql:
每次用户登录时自动执行该文件,可以将一些环境变量(如linesize)的设置命令或者其它命令放入该文件中。
glogin.sql文件路径:
Windows下:
\oracle\ora81\sqlplus\admin\glogin.sql
/u01/app/oracle/product/8.1.6/sqlplus/admin/glogin.sql
二、运算符与谓词
1、算术运算符:
+,-,*,/
selectsal,sal*12fromemp;
//计算工资及年薪。
selectsal,sal+commfromemp;
//错误语句,因为comm中存在空值,会使运算结果也会出现空值。
selectsal,sal+NVL(comm,0)fromemp;
//正确语句,NVL为空值运算函数,当comm为空值时,该函数返回第二个值0。
2、逻辑运算符:
NOT,AND,OR,三个运算符的优先级别依次降低。
3、比较运算符:
>
<
=,
!
=
4、谓词:
(1)IN(或NOTIN):
等于(不等于)列表中的任意值。
select*fromempwhe