linux安装Oracle 10g过程截图Word下载.docx
《linux安装Oracle 10g过程截图Word下载.docx》由会员分享,可在线阅读,更多相关《linux安装Oracle 10g过程截图Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
更改oracle的语言环境问中文
[root@localhost~]#vi~oracle/.bash_profile
#.bash_profile
#Getthealiasesandfunctions
if[-f~/.bashrc];
then
.~/.bashrc
fi
#Userspecificenvironmentandstartupprograms
PATH=$PATH:
$HOME/bin
exportPATH
umask022//文件权限掩码
exportORACLE_BASE=/opt/oracle//定义的基本目录
exportORACLE_SID=orcl//定义数据库实例名称
exportDISPLAY=:
0.0//告知默认的显示终端号
exportLANG=zh_CN.UTF-8//确定使用的语言环境
允许oracle使用图形界面,取消所有限制
[root@localhost~]#xhost+//在图形页面中进行,取消所有权限
accesscontroldisabled,clientscanconnectfromanyhost
//
将Oracle安装文件拷入Linux系统里面,并使
gunzip或是gzip–d的方式解压
gunzipfilename或gzip–dfilename
再次使用cpio文件解压
cpio–idmv<
filename.cpio
ORACLE安装步骤
1.启动安装程序报表
由于缺少相关Linux包导致报表将三个包安装以后启动正常画面如下
三个包名分别:
libXp-1.0.0-8.i386.rpm
libXp-devel-1.0.0-8.i386.rpm
libXau-devel-1.0.1-3.1.i386.rmp
包的安装方式
Rpm–ivh文件
安装完包以后,./runInstaller启动安装程序
如果报错
解决方式
是由于没有相应权限
将database文件移动至/文件
并授权限
#mvdatabase/
#chmod777database
再次启动
启动界面如下
在Linux下面执行以上图中的两个脚本待执行完成以后再关闭当前界面
[root@localhost~]#./root.sh
[root@localhost~]#./orainstRoot.sh
Linux配置ORACLE环境变量
创建数据库
[root@localhost~]#DBCA
配置监听
[root@localhost~]#NETCA
并且再使用
Source~oracle/.bash_profile//加载文件
Suoracle//切换用户
sql>
sqlplus/nolog//登录
conn/assysdba//连接ORACLE
配置系统启动自动open数据库:
su-oracle
第一步
vi/etc/oratab
orcl:
/u01/app/oracle/product/10.2.0/db_1:
Y
第二步
vi+78$ORACLE_HOME/bin/dbstart
ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1
第三步
su-
vi/etc/rc.local
su-oracle"
-cdbstart"
启动sqlplus工具:
sqlplus/nolog
启动服务
Emctlstartdbconsole//启动em服务
启动tns服务
ORACLE数据库启动与关闭
问题:
Connectiontohostasuseroraclefailed:
ERROR:
NMOnotsetuid-root
SQL操作
基本操作
scott用户拥有哪些表?
SQL>
select*fromtab;
查询表中所有行所有列
select*fromdept;
select*fromemp;
查询表中感兴趣的列
selectename,salfromemp;
查询中使用四则运算
selectename,sal*12fromemp;
selectename,comm,sal+commfromemp;
空值(null):
未定义的值,不确定的值,不是零也不是空格!
空值不能直接参与四则运算!
在查询中为列命名别名
selectename,sal*12asannual_salaryfromemp;
--as是可选关键字,可以省略
selectename,sal*12annual_salaryfromemp;
在别名中使用特殊字符,别名要双引
selectename,sal*12"
annualsalary"
fromemp;
连接操作符:
将多列联合成一列输出
selectename,jobfromemp;
selectename||'
isa'
||jobfromemp;
压缩重复值
selectdeptnofromemp;
selectdistinctdeptnofromemp;
描述表结构
descemp
练习1
1.做一个查询显示dept表的所有数据
2.做一个查询显示emp表中ename,job,sal几列,其中sal列在结果集中做salary显示
3.做一个查询显示emp表中deptno,ename,年工资,并将年工资命名别名annualsalary
4.得到emp表的结构
5.做一个查询显示emp表中雇员编号,雇员的名字,工作,雇用日期,并将查询保存为脚本,脚本名字p1q7.sql
6.运行p1q7.sql
7.创建一个查询显示雇员表中部门编号,重复的部门编号只显示一次
8.在结果集中雇员名和工作相连用"
空格逗号空格"
分隔,并将列头显示为EmployeeandTitle
限制(Where子句)
限制数据访问:
使用数字做条件
selectename,sal,deptnofromempwhereDEPTNO=10;
使用字符做条件,字符串要单引,大小写敏感!
selectename,sal,deptnofromempwhereename='
king'
;
KING'
使用日期做条件,格式敏感!
selectename,hiredatefromempwherehiredate='
23-JAN-82'
借助系统函数查看系统日期格式:
selectsysdatefromdual;
select*fromnls_database_parameters;
在where条件中使用单行比较符号
>
<
=,>
=,<
!
=
在where条件中使用逻辑运算
and,or,not
检索符合下列条件的数据:
工资大于2000的雇员
工资大于2000并且小于3000的雇员
工资大于2000或者小于1000的雇员
特殊比较符:
betweenand相当于(>
=and<
=)
selectename,salfromempwheresalbetween2000and3000;
in(setlist):
枚举方式取数据,in后面跟随一个集合列表!
selectename,salfromempwheresalin(1000,2000,3000);
like:
能够做模糊匹配
selectenamefromempwhereenamelike'
M%'
selectename,hiredatefromempwherehiredatelike'
%81'
_L%'
__%'
escape'
'
isnull(isnotnull):
过滤空值
selectename,commfromempwherecommisnull;
selectename,commfromempwherecommisnotnull;
补充:
在查询中使用rownum伪列,rownum是结果集的编号!
selectrownum,enamefromemp;
select*fromempwhererownum<
6;
排列结果集:
升序排列结果集
selectename,salfromemporderbysal;
降序排列结果集
selectename,salfromemporderbysaldesc;
对别名排序
selectename,sal*12ann_salfromemporderbyann_sal;
多列排序
selectename,deptno,salfromemporderbydeptnodesc,saldesc;
selectename,deptno,salfromemporderby2,3desc;
select*fromemporderby5;
练习
第2章限制和排列数据
1.显示收入大于2850的雇员名称和工资
2.查看雇员编号7566的雇员名字和所在部门号
3.查看BLAKE的工资
4.显示收入在2000和5000之间的人
5.显示收入为1000,2000,3000,5000的人
6.显示奖金不为空的人
7.显示管理者编号为空的人
8.找到名字当中第二个字母为"
L"
的员工
9.找到工资大于1000的职员
10.找到工资大于1000的或者工作为职员的人
11.找到工作为管理员或者是分析员,并且工资大于2500的人
12.查看雇员名称,工资,将工资按照降序排列
13.查看雇员名称,部门编号,工资,将部门编号按照升序排列,工资按照降序排列
14.做一个用别名排序的例子(随意)
单行函数
字符串函数:
selectlower('
HelloWOrld'
)fromdual;
selectupper('
selectinitcap('
selectconcat('
Hello'
'
World'
selectlength('
HeloWorld'
selectinstr('
HelloWorld'
o'
-1,2)fromdual;
--从右开始第二个“o”所在的位置
selectsubstr('
6)fromdual;
6,2)fromdual;
-5)fromdual;
selectlpad(sal,10,'
*'
)fromemp;
selectrpad(sal,10,'
selecttrim('
H'
from'
selectsubstr(name,instr(name,'
/'
-1)+1)fromv$datafile;
数字函数:
selectround(45.926,2)fromdual;
selectround(45.926,0)fromdual;
selectround(45.926)fromdual;
selectround(45.926,-1)fromdual;
selecttrunc(45.926,2)fromdual;
selecttrunc(45.926,0)fromdual;
selecttrunc(45.926)fromdual;
selecttrunc(45.926,-1)fromdual;
selectmod(13,4)fromdual;
--取余数
selectpower(2,3)fromdual;
--2的3次幂
日期函数:
selectmonths_between('
20-FEB-81'
17-DEC-80'
selectadd_months(sysdate,2)fromdual;
selectnext_day(sysdate,'
SAT'
selectlast_day(sysdate)fromdual;
selectround(sysdate+10,'
month'
selectround(add_months(sysdate,6),'
year'
selecttrunc(sysdate+10,'
selecttrunc(sysdate,'
转换函数:
selectto_char(sysdate,'
yyyy-mm-dd'
fmyyyy-mm-dd'
year-month-day'
year-mon-dy'
yyyy-mm-ddhh24:
mi:
ss'
dd"
of"
mm'
selectto_char(10,'
xx'
--转换为16进制
selectto_char(sal,'
l00,000.00'
)salfromemp;
l99,999.99'
l999.99'
selectto_number('
$950.00'
9c'
--转换为10进制
selectto_date('
2000-05-01'
select
to_char(sysdate,'
yyyy'
)curr_year,
to_char(to_date('
05'
yy'
),'
)yy05,
95'
)yy95,
rr'
)rr05,
)rr95
fromdual;
通用函数:
nvl:
expr1空则expr2,expr1不空则expr1;
*nvl函数两个形式参数的数据类型要一致
selectename,sal,comm,sal+nvl(comm,0)fromemp;
selectename,nvl(to_char(mgr),'
Nomanager'
nlv2:
expr1空则expr3,expr1不空则expr2
selectename,nvl2(comm,sal+comm,sal)fromemp;
nullif:
expr1=expr2返回空,expr1!
=expr2返回expr1
coalesce(exp1,exp2,exp3,.........):
从左向右做枚举判断返回第一个非空表达式的值
条件表达式:
SELECTename,job,sal,
CASEjobWHEN'
CLERK'
THEN1.10*sal
WHEN'
SALESMAN'
THEN1.15*sal
ANALYST'
THEN1.20*sal
ELSEsalEND"
REVISED_SALARY"
FROMemp;
selectename,job,sal,
decode(job,
1.10*sal,
1.15*sal,
1.20*sal,
sal)"
fromemp;
CASEWHENjob='
WHENjob='
WHENename='
BLAKE'
THENSAL*1.1
第3章单行函数
1.将字符串"
HELLOWorld"
全变小写输出
2.将字符串"
全变大写输出
3.将字符串"
单词字首字母变大写其余变小写输出
4.将单词"
Hello"
和"
World"
拼接为"
HelloWorld"
5.从字符串"
中截取出单词"
6.计算字符串"
的长度
7.字符串"
中字母"
W"
在第几个位置
8.将1234在左面用"
*"
号填满10位
9.将1234在右面用"
10.截掉字符串"
HelloWorldh"
中首尾的"
H"
h"
11.求出45.926四舍五入到个位,十位,十分位的结果
12.求出45.926截尾取整到个位,十位,十分位的结果
13.求出2100除以500的余数
14.查看当前系统时间
15.计算1977年9月1号和当前系统时间相差多少个月
16.计算当前系统时间加半年后的日期是哪一天
17.计算当前系统时间的下一个星期五是哪一天
sunday
monday
tuesday
wednesday
thursday
friday
saturday
18.计算当前系统时间当月最后一天是哪一天
19.当前系统时间四舍五入精确到月份是哪一天
20.当前系统时间四舍五入精确到年是哪一天
21.当前系统时间解尾取整到月份是哪一天
22.当前系统时间解尾取整到年是哪一天
23.将当前系统时间变成类似格式"
2006-10月-星期三"
的字符串
24.将当前系统时间变成类似格式"
10月-25"
25.将当前系统时间变成类似格式"
2006-10-2508