《2022年oracle学习知识点速查.docx》由会员分享,可在线阅读,更多相关《2022年oracle学习知识点速查.docx(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -Oracle 学问点学习简介:Oracle 是一个对象关系数据库治理系统(ORDBMS );它既供应关系数据库系统的功能,又供应面对对象数据库系统的功能;每个 Oracle 数据库对应唯独的一个实例名 SID,Oracle 数据库服务器启动后,一般至少有以下几个用户:Internal ,它不是一个真实的用户名,而是具有 SYSDBA 优先级的 Sys用户的别名, 它由 DBA 用户使用来完成数据库的治理任务,包括启动和关闭数据库;Sys,它是一个DBA 用户名,具有最大的数据库操作权限;System,它也是一
2、个DBA 用户名,权限仅次于Sys 用户Oracle 服务器是一个数据库治理系统,它供应开放、全面和综合的信息治理;Oracle 服务器由 Oracle 数据库和 Oracle 实例组成;后台进程和内存结构的集合称为Oracle 实例;每一个运行的Oracle 数据库都与一个Oracle 实例相联系;一 安装及体系结构概述留意:环境变量的设置问题;接触 我没有设置环境变量等相关的东西相关的设置:?安装数据库服务器时配置的名称:全局数据库名:SID:oracle 几个月中,常常重复显现一些问题,其缘由就是安装客服端过程中,会显现 Oracle Net Configuration Assistan
3、tOracle网络配置助手 的【欢迎使用】界面:【监听程序配置】 :【本地 Net 服务名配置】中:服务名:输入全局数据库名;网络服务名(Net 服务名):自 己任凭填!客户机怎么连接数据库?细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习
4、资料 - - - - - - - - - - - - - - -1.2 体系结构 数据库的规律结构Oracle9i 数据库的规律结构主要指从数据库使用者的角度来考察的数据库的组成,如下图;自上先下,数据库的规律结构共有 6 层;数据块( Data Block );数据区间( Data Extent);数据段( Data Segment);规律对象( Logic Object );表空间( Tablespace);名称注: Oracle 9i 安装完毕后自动建立 9 个默认的表空间,如下表:主要作用CWMLITE 用于联机分析处理(OLAP )DRSYS 用于存放于工作空间设置有关的信息;EXA
5、MPLE 实例表空间,存放实例信息;INDEX 索引表空间,存放数据库索引信息;SYSTEM 系统表空间,存放表空间名称、所含数据文件等治理信息;TOOLS 工具表空间,存放数据库工具软件所需要的数据库对象;UNDOTBS 回滚表空间,存放数据库复原信息;USERS 用户表空间,存放用户私有信息;数据库( Database)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -1.3 登陆【治理服务器】从【 Ora
6、cle 企业治理掌握台】界面进入,如下所示:哦?)(只能是 sysman 账号,其它的似乎不行细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -1.4 数据库的启动和关闭二 SQL*PLUS 基础、实例的启动与关闭2.1 登陆问题环境:数据库实例:testdb;密码: test Sql*plus 连接在命令行下 ,sys 用户登陆: sqlplus sys/test as sysdba 实例没有打开 ,使用 【
7、sqlplus sys/test as sysdba】执行将错误 误!所以使用【set oracle_sid=testdb】先打开实例;ORA-12560:TNS: 协议适配器错假如目前实例没有打开,我们可以使用 nolog 的形式登陆: sqlplus/nolog 留意:无论如何都要先【set oracle_sid=testdb】,先挑选数据库实例!操作如下:细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -
8、2.1.1 ORA-12560: TNS:protocol adapter error 正确的连接方式更换登录为 sys:SQL conn sys/sys服务名 as sysdba; 演示:C:Documents and Settingsguocwsqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 6 月 18 09:12:17 2022 Copyright c 1982, 2002, Oracle Corporation. All rights reserved. SQL connect sys/testtestdb
9、as sysdba; 已连接;SQL exit 从 Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -JServer Release 9.2.0.1.0 - Production
10、 中断开C:Documents and Settingsguocwsqlplus/nolog SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 6 月 18 09:17:42 2022 Copyright c 1982, 2002, Oracle Corporation. All rights reserved. SQL conn scott/tigertestdb 已连接;SQL 启动实例的命令:Startup:正常的命令,分为三个环节,第一启动实例;在打开掌握文件,即 database mount;最终打开数据文件,就是 database op
11、en Startup mount:启动数据库实例的时候,同时启动掌握文件,但是不启动数据文件!我们进行热备份的时候,是不答应进行归档 /非归档方式!;. Startup nomount:启动数据库实例的时候,不启动掌握文件,不启动数据文件!关闭实例:Shutdown:正常关闭,要等待全部客户断开连接后,才能真正关闭;Shutdown immeditale :迫使全部的用户执行完当前的 sql 后;Shutdown mount: Shutdown about:强行关闭;(有丢失数据的危急,当如火灾发生、地震的时候才使用)Sqlplus 的全部的命令:SQL help index Enter He
12、lp topic for help. 细心整理归纳 精选学习资料 COPY PAUSE SHUTDOWN 第 7 页,共 39 页 DEFINE PRINT SPOOL/ (执行缓冲区)DELPROMPT SQLPLUS ACCEPT DESCRIBE (desc)QUIT START APPEND DISCONNECT RECOVER STARTUP ARCHIVE LOG EDIT REMARK STORE ATTRIBUTE EXECUTE REPFOOTER TIMING BREAK EXIT REPHEADER TTITLE - - - - - - - - - - - - - - -
13、 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -BTITLE GET RESERVED WORDS SQL UNDEFINE CHANGE ( c)HELP RESERVED WORDS PL/SQL VARIABLE CLEAR HOST RUN WHENEVER OSERROR COLUMN(col)INPUT SAVEWHENEVER SQLERROR COMPUTE LIST SETsql 编辑,然后储存关闭即可!)CONNECT PASSWORD SHOW EDIT (默认记事本打开缓冲区,可以对缓冲区的SQ
14、L list 1* select * from dept where deptno=20 SQL edit 已写入文件 afiedt.buf 1* select * from dept SQL col deptno heading 编号 SQL / 编号 DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON DESCRIBE (desc):对于表,我们想查看列对应的字段我们用 报表:?几个相关命令Oracle 数据库的几种启动和关闭方式 有以下几种启动方式:
15、describe(desc缩写)细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -1、startup nomount 非安装启动,这种方式启动下可执行:重建掌握文件、重建数据库读取 init.ora 文件,启动instance,即启动SGA 和后台进程,这种启动只需要init.ora 文件;2、startup mount dbname 安装启动,这种方式启动下可执行:数据库日志归档、数据库介质复原、使数据文件联
16、机或脱机,重新定位数据文件、重做日志文件;执行 “nomount ”,然后打开掌握文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查;3、startup open dbname 先执行 “nomount ”,然后执行 “mount ”,再打开包括Redo log 文件在内的全部数据库文件,这种方式下可拜访数据库中的数据;4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只答应具有肯定特权
17、的用户拜访 非特权用户拜访时,会显现以下提示:ERROR :ORA-01035: ORACLE 只答应具有RESTRICTED SESSION 权限的用户使用6、startup force 强制启动方式当不能关闭数据库时,可以用startup force 来完成数据库的关闭先关闭数据库,再执行正常启动数据库命令7、startup pfile= 参数文件名细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -带初始化
18、参数文件的启动方式 先读取参数文件,再按参数文件中的设置启动数据库 例: startup pfile=E:Oracleadminoradbpfileinit.ora 8、startup EXCLUSIVE = 有三种启动方式:1、shutdown normal 正常方式关闭数据库;2、shutdown immediate 立刻方式关闭数据库;在 SVRMGRL 中执行 shutdown immediate ,数据库并不立刻关闭,而是在 Oracle 执行某些清除工作后才关闭(终止会话、释放会话资源),当使用 shutdown 不能关闭数据库时,3、shutdown abort shutdown
19、 immediate 可以完成数据库关闭的操作;直接关闭数据库,正在拜访数据库的会话会被突然终止,假如数据库中有大量操作正在执行,这时执行 很长时间;shutdown abort 后,重新启动数据库需要细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -三 SQL3.1 三类语言:数据定义 DDL :create、alter、drop;数据掌握语言 DCL :grant、revoke;数据操作语言 DML :s
20、elect、insert、delete、update;演示:- SQL create table abca varchar210,b char10; 表已创建;SQL alter table abc add c number; 表已更换;SQL alter table abc drop c; alter table abc drop c * ERROR 位于第 1 行: ORA-00905: 缺少关键字SQL alter table abc drop column c; 表已更换;- 3.2 oracle 常用系统函数 3.2.1 字符3.2 常用系统函数3.2.1 字符 length,ltr
21、im,replace,rtrim,substr,trim 演示:selectlength abcdef from dual;查询字符数如本语句结果是6 第 11 页,共 39 页 selectlength abc好def from dual;7 select lengthbabc好 def from dual;查询字节数,为8;selectltrim abc好def from dual; 去除左边空格selectrtrim abc好ef from dual; 去除左边右边空格selecttrim abc from dual; 去除两边的空格selectlength trim abc from
22、dual; 3 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -selectsubstr abcdefg,2,3 from dual;从其次个开头取串取三个即得 bcd selectsubstr abcdefg,1,3 from dual;取开头 3个from dual;取末selectsubstr abcdefg, length abcdefg- 3 + 1,3 尾3 个alter session set NLS_DATE_FORM
23、AT= dd-mm-yyyy hh24:mi:ss; 设定时间格式select sysdate from dual; 结果: 2022-6-17 11:32:313.2.2 日期 sysdate,curtent_date,next_day select sysdate from dual; 2022-6-17 11:40:49 ; 2022-6-18 select current_date from dual;2022-6-17 11:41:02 alter session set nls_date_format=dd-mon-yyyy hh:mi:ss当前时间 2022-6-17 11:41
24、:02 星期三selectnext_daysysdate, 星 期 四 fromdual; 下 个 星 期 四11:43:24 selectnext_daysysdate, 星 期 三 fromdual; 下 个 星 期 三 :2022-6-24 11:43:49 3.2.3 转换 to_char,to_date ,to_number select to_charsysdate,yyyy-mm-dd hh24:mi:ss from dual; 转换成字符2022-06-17 11:48:14 selectlengthto_charsysdate,yyyy-mm-dd hh24:mi:ss fr
25、om dual; 19 select to_date2022-06-17 11:48:14, yyyy-mm-dd hh24:mi:ss fromdual;将字符串转换成日期2022-6-17 11:48:14 将字符串转换成数字 多大溢出? select to_number123 from dual;3.2.4集合函数 sum,avg,max,min,count select maxprice from book; 求最大值select minprice from book; 求最小值select avgprice from book; 求平均值select countprice from
26、book; select count* from book; 查询有几条记录求数据总个数select sumprice from book; 求总数select * from book where price 20; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -3.2.5 其他 user,decode,nvl select user from abc; 查看用户select sumdecodesex,
27、男 ,1,0 男人数 ,sumdecodesex, 女,1,0女人数 from e; sumdecodesex, 男 ,1, 0sex 字段是男加 1,否就加 0 ;select a1,nvla2, 未输入 a2 from aa; 在null 的地方写上 未输入 select * from aa where a2 is null ; 为空select * from aa where a2 is not null ; 不为空select * from aa order by a1 asc ; 升序select * from aa order by a1 desc ; 降序select disti
28、nct a1 from aa; 没个 a1 只显示一个,不重复;select all a1 frm aa;3.3 分组语句用户汇总一些数据的时候:求合计selectsumprice*qty from books; qty数量列按出版社( pub )分组查询的时候:selectsumprice*qty from books groupby pub; 或select pub, sumprice*qty from books groupby pub; by pub; 留意:select显示的列肯定要在group by中,否就错误!select pub,book_name, sum price*qty
29、 from books group正确的语句应当是:selectpub,book_name, sumprice*qty frombooks groupby pub , book_name; 语法上必需要求这样做;group by 可以多个,但是必需与前面的select中得到答应;可以增加 where 条件:select pub, sumprice*qty from books where price30 group by pub; 如 果 这 样 写:select pub, sum price*qty from books wheresumprice*qty30 group by pub 就要
30、报错了!为什么呢? 由于集合函数不能作为条件显现在 where 子句后面!要实现类似的功能,我们使用 having 子句去改造, group by 要显现在 having 子句前面;select pub, sumprice*qty from books group by pub havingsumprice*qty30; 除此以外,我们很少使用having子句;示例:select pub,countpub from book groupby pub havingcountpub1; 第 13 页,共 39 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - -
31、- - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -select ftype from tcmo groupby ftype havingcountmoid10; 3.4 表的连接内连接:又叫等值夺标查询?将根据等值的条件查询多个数据表中关联的数据;要求关联 的多个数据表的某些字段具有相同的属性,即有相同的数据类型、宽度和取值范畴;正规的写法 select * from tcmo a join tcmotype b on a.ftype=b.fmotype;select * from tcmo a , tcmotype
32、b where a.ftype=b.fmotype; 外连接有两种:左(外)连接和右(外)连接 左连接 : 正规的写法 select * fromtcmo a leftjointcmotype b on a.ftype=b.fmotype; select * from tcmo a , tcmotype b where a.ftype=b.fmotype+; 右连接:正 规 的 写 法select * fromtcmo a rightjointcmotype b ona.ftype=b.fmotype; select * from tcmo a , tcmotype b where a.fty
33、pe+=b.fmotype; 仍可以在查询中添加其他条件:两种写法有一些差别select* fromtcmo a rightjointcmotype b on a.ftype=b.fmotype wherea.ftype=LINUX; where a.ftype+=b.fmotype andselect * from tcmo a , tcmotype b a.ftype=LINUX; 3.5 子查询 IN、EXISTS 相关子查询 无关子查询有的时候,子查询与连接查询都能得到相同的结果:谁的效率更高呢?3.6 where与 havinghaving 是检查分组后的各族是否满意条件;Havin
34、g 语句 第 14 页,共 39 页 where 检查每条记录是否符合条件,只能协作 group by 语句使用,没有group by 时不能使用having,单可以使用where;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -3.7 嵌套更新语法:update 数据表set 字段名1=select 字段列from 数据表where 条件 ,字段名2=select 字段列from 数据表 where 条件 ,Where 更新条件 ;
35、 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -四 PL/SQLPL/SQL 是 Oracle 对 sql 的一种扩展语言!命令行下要显示输出行:set serveroutput on size 10000 最大可设置一万!4.1 第一个例子declarei number :=1; 初值 ; x varchar2 20 :=begin dbms_output.put_line 打印一行 . 初值 i=|i
36、; dbms_output.put_linex; i:=10 ; 打印一行 .i=|i; x:=this is .; - 字符串连接 |;行注释 - 快注释 /* 注释内容 */ dbms_output.put_line dbms_output.put_linex; end ; 4.2 分支语句4.2.1 if 分支declare i number ; str varchar2 20 ; begin i:=2; 1 then; if i= str:=sno001elsif i=2 then; str:=sno002else str:=ifelse; end; dbms_output.put_l
37、inestr; end ;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 16 页,共 39 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -4.2.3 case分子declarei number ; str varchar2 20 ; begin i:= 2; casewhen i=1then; str:=sno001when i=2then; str:=sno002else str:=else; endcase ; dbms_output.put_linestr; en
38、d ; 4.3 循环语句4.3.1 基本循环( loop)示例 1:declare i number := 0; beginloop i:=i+1; loop内 i=|i; if i=100 thenexit; endif; dbms_output.put_lineendloop ; loop外 i=|i; dbms_output.put_lineend ;示例 2 declare i number := 0; 第 17 页,共 39 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -beginloop i:=i+1; 3 ; loop内 i=|i; exitwhen i= dbms_output.put_lineendloop ; loop外 i=|i; dbms_output.put_lineend ;4.3.2 while 循环declare i number := 0; beginwhile i