ORACLE数据库实操培训.docx
- 文档编号:2141626
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:19
- 大小:59.70KB
ORACLE数据库实操培训.docx
《ORACLE数据库实操培训.docx》由会员分享,可在线阅读,更多相关《ORACLE数据库实操培训.docx(19页珍藏版)》请在冰豆网上搜索。
ORACLE数据库实操培训
1.使用tnsnames.ora文件配置本地服务名
步骤:
1)切换到oracle用户
su-oracle
2)进入配置目录
cd$ORACLE_HOME/network/admin
3)配置本地服务名
tnsnames.ora配置文件用于配置本地服务名,可以手工修改文件配置,也可以通过netca工具配置。
打开tnsnames.ora文件:
vitnsnames.ora
拷贝样例连接串:
YXDB=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=james)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=yxdb)
)
)
配置新的服务名连接串:
NEW_YXDB=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=james)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=yxdb)
)
)
4)测试新的服务名连接串的可用性
在oracle用户下,执行tnspingnew_yxdb
如下表示正常状态:
[oracle@jamesadmin]$tnspingnew_yxdb
TNSPingUtilityforLinux:
Version11.2.0.4.0-Productionon18-MAY-201611:
51:
32
Copyright(c)1997,2013,Oracle.Allrightsreserved.
Usedparameterfiles:
/oracle/app/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
UsedTNSNAMESadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=yxdb)))
OK(0msec)
注释:
2.根据需求输出相应结果集(groupby,多表链接等)
例1:
分组函数groupby
计算按照工作职位分类最高平均工资和最低平均工资数。
SQL>SELECTMAX(AVG(sal)),MIN(AVG(sal))FROMEMPGROUPBYJOB;
例2:
多表链接
查询职员名称,组织编号,组织名称,公司位置。
selecte.ename,d.deptno,d.dname,d.locfromdeptd,empewhered.deptno=e.deptno;
3.根据要求编写存储过程,函数,视图
例1:
编写存储过程:
创建一个存储过程,查询员工姓名,员工岗位,雇佣日期和薪水。
CREATEORREPLACEPROCEDUREselectemp(employeenoININTEGER)
IS
employeenamevarchar2(20);
employeejobvarchar2(9);
employeehiredatedate;
employeesalnumber(7,2);
BEGIN
selectename,job,hiredate,sal
INTOemployeename,employeejob,employeehiredate,employeesal
FROMemp
WHEREempno=employeeno;
DBMS_OUTPUT.put_line('员工姓名'
||employeename
||'员工岗位'
||employeejob
||'雇佣日期'
||employeehiredate
||'薪水'
||employeesal);
EXCEPTION
WHENOTHERS
THEN
DBMS_OUTPUT.put_line('ERRORS!
!
!
');
END;
/
例2:
编写函数:
创建一个函数,返回3.14*(f*f)的值。
CREATEORREPLACEFUNCTIONarea(ffloat)
RETURNfloat
IS
BEGIN
RETURN3.14*(f*f);
ENDarea;
例3:
编写视图:
创建一个视图,可以查询员工的姓名,工作,雇佣日期,工资,组织名称。
createviewaccounting_viewas
select
e.ename"employee_name",
e.job"job",
e.hiredate"hiredate",
e.sal"salary",
d.dname"dep_name"
fromdeptd,empe
wheree.deptno=d.deptno;
4.数据库存储管理操作
步骤:
假设存在表空间TEST,要求给该表空间添加数据文件。
1)确认表空间TEST已存在的数据文件路径和大小
SQL>createtablespacetestadddatafile‘/oracle/app/oracle/oradata/yxdb/test01.dbf’size2M;
SQL>selectfile_name,tablespace_name,bytes/1024/1024fromdba_data_fileswheretablespace_name='TEST';
FILE_NAMETABLESPACE_NAMEBYTES/1024/1024
------------------------------------------------------------------------------------------
/oracle/app/oracle/oradata/yxdb/test01.dbfTEST2
2)按照需求添加数据文件,大小为2M,不开启自动扩展
SQL>altertablespacetestadddatafile'/oracle/app/oracle/oradata/yxdb/test02.dbf'size2Mautoextendoff;
Tablespacealtered
5.数据库闪回操作
步骤:
假设数据表被误删除,利用闪回恢复特性恢复误删数据表。
1)确认是否已经开启闪回
SQL>selectflashback_onfromv$database;
FLASHBACK_ON
------------------
NO
2)开启闪回功能
SQL>shutdownimmediate;
SQL>startupmount;
SQL>alterdatabaseflashbackon;
SQL>alterdatabaseopen;
SQL>selectflashback_onfromv$database;
3)确认闪回路径和空间大小
NAMETYPEVALUE
----------------------------------------------------------------------------
db_recovery_file_deststring/oracle/app/oracle/fast_recovery_area
db_recovery_file_dest_sizebiginteger4182M
4)模拟用户误删除数据库表,利用闪回特性恢复误删数据表,并重新命名
SQL>createusertestidentifiedbytestdefaulttablespacetest;
Usercreated.
SQL>grantdbatotest;
Grantsucceeded.
SQL>conntest/test;
Connected.
SQL>createtabletestasselect*fromdba_objectswhererownum<18000;
SQL>droptabletest;
Tabledropped.
SQL>selectobject_name,original_name,ts_name,createtime,droptimefromrecyclebin;
OBJECT_NAMEORIGINAL_NAMETS_NAMECREATETIMEDROPTIME
----------------------------------------------------------------------------------------------------------------------------------
BIN$Mxf36aYJUX7gU2U4qMAgfA==$0TESTTEST2016-05-18:
13:
16:
192016-05-18:
13:
17:
05
SQL>select*fromtest;
select*fromtest
*
ERRORatline1:
ORA-00942:
tableorviewdoesnotexist
SQL>flashbacktable"BIN$Mxf36aYJUX7gU2U4qMAgfA==$0"tobeforedroprenametotest1;
Flashbackcomplete.
SQL>selectcount(*)fromtest1;
COUNT(*)
----------
17999
6.Impdp/expdb导入导出数据操作
假设需求是导出用户test的表t1,并导入到用户test1中。
步骤:
1)创建模拟数据环境,并创建数据泵目录,以及授权。
SQL>createtabletest.t1tablespacetestasselect*fromdba_objectswhererownum<1000;
Tablecreated.
SQL>createusertest1identifiedbytest1defaulttablespacetest;
Usercreated.
SQL>grantdbatotest1;
Grantsucceeded.
SQL>!
---创建dump目录
[oracle@james~]$mkdirdump
[oracle@james~]$pwd
/home/oracle
[oracle@james~]$cddump
[oracle@jamesdump]$pwd
/home/oracle/dump
[oracle@jamesdump]$exit
exit
---创建数据泵目录,并授权
SQL>createorreplacedirectorydumpas'/home/ora
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLE 数据库 培训
![提示](https://static.bdocx.com/images/bang_tan.gif)