Oracle数据库SQL查询实验

需积分: 12 7 下载量 99 浏览量 更新于2024-09-09 收藏 19KB DOCX 举报
"这些SQL查询语句展示了在Oracle数据库环境中操作数据的基本方法,涉及了对供应商(S)、零件(P)、工程(J)和供应情况(SPJ)四个表的数据查询、联接、子查询以及更新操作。" 在这个实验代码中,我们可以看到以下几个Oracle数据库的关键知识点: 1. **基本查询**:例如,查询供应工程J1零件的供应商号码(SNO),这是通过简单的SELECT语句实现的,它涉及到表`spj`的单表查询。 2. **联接查询**:查询供应工程J1红色零件的供应商号码时,使用了`NATURAL JOIN`来联接`spj`和`p`表,通过`jno`和`pno`字段匹配数据。 3. **子查询**:查询没有使用天津供应商生产的红色零件的工程号,这里使用了子查询来获取满足条件的工程号,然后在外层查询中用`NOT IN`操作符排除这些工程号。 4. **多表联接**:查询使用供应商S1供应零件的工程号码,或者上海厂商供应的所有零件号码,以及使用上海产零件的工程名称,都涉及到多表联接,使用了`NATURAL JOIN`或`INNER JOIN`来连接多个表。 5. **条件过滤**:在查询中,经常使用`WHERE`子句来指定筛选条件,如供应商城市、零件颜色、工程号码等。 6. **数据更新**:将全部红色零件的颜色改为蓝色,使用了`UPDATE`语句,通过`WHERE`子句指定更新条件。 7. **行级别的数据操作**:将由S5供给J4的零件P6改为由S3供应,这个操作涉及到两步,首先通过`UPDATE`语句修改`spj`表中的供应商号码,然后删除旧的供应商记录,这需要用到`DELETE`语句。 8. **删除操作**:从供应商和供应情况两个表中删除供应商号为S2的记录,这演示了如何在关联表中删除数据,确保数据一致性。 9. **事务处理**:虽然没有明确写出,但在实际的数据库操作中,涉及多条DML(数据操纵语言)语句(如UPDATE和DELETE)可能需要包裹在一个事务中,以确保数据操作的原子性和一致性。 这些SQL查询和操作体现了Oracle数据库在数据查询、关联、过滤、更新和删除等方面的基本功能,对于理解和掌握SQL语言以及Oracle数据库的日常管理非常重要。在实际的数据库管理工作中,理解并熟练运用这些技巧能够帮助我们有效地管理和维护数据库系统。
2012-07-26 上传
第一部分sql基础 9 基本查询语句 9 实验1:书写一个最简单的sql语句,查询一张表的所有行和所有列 9 实验2:查询一张表的所有行,但列的顺序我们自己决定 10 实验3:查询表的某些列,在列上使用表达式 10 实验4:使用sqlplus,进入sqlplus并进行简单的操作 11 实验5:查看当前用户的所有表和视图 13 实验6:关于null值的问题 15 实验7:在列上起一个别名 15 实验8:在显示的时候去掉重复的行 16 实验9:显示表的部分行和部分列,使用where子句过滤出想要的行 18 实验10:使用like查询近似的值 18 实验11:使用order by子句来进行排序操作 20 实验12:操作字符串的函数 22 实验13:操作数字的函数 25 实验14:操作日期的函数 25 实验15:操作数据为null的函数 31 实验16:分支的函数 32 实验17:分组统计函数 33 实验18:表的连接查询 36 实验19:sql99规则的表连接操作 40 实验20:子查询 41 DDL和DML语句 45 实验21:建立简单的表,并对表进行简单ddl操作 45 实验22:dml语句,插入删除和修改表的数据 49 实验23:事务的概念和事务的控制 52 实验24:在表上建立不同类型的约束 54 实验25:序列的概念和使用 58 实验26:建立和使用视图 60 实验27:查询结果的集合操作 63 实验28:高级分组rollup,cube操作 65 实验29:树结构的查询start with子句 66 实验30:高级dml操作 68 第二部分pl/sql基础 69 匿名块的编写 69 实验31:书写一个最简单的块,运行并查看结果 69 实验32:在块中操作变量 70 实验33:在块中操作表的数据 71 实验34:在块中的分支操作if语句 71 实验35:在块中使用循环,三种循环模式 72 实验36:在块中自定义数据类型,使用复合变量 73 实验37:在块中使用自定义游标 76 实验38:在块中处理错误exception 78 编写程序 80 实验39:触发器 80 实验40:编写函数 82 实验41:编写存储过程 83 实验42:编写包package 85 第三部分数据库的体系结构 88 实例的维护 88 实验43:数据库的最高帐号sys的操作系统认证模式 90 实验44:数据库的最高帐号sys的密码文件认证模式 92 实验45:数据库的两种初始化参数文件 92 实验46:启动数据库的三个台阶nomount,mount,open 95 实验47:停止数据库的四种模式 96 实验48:建立数据库 97 实验49:查找你想要的数据字典 99 控制文件 99 实验50:减少控制文件的个数 100 实验51:增加控制文件的个数 101 日志文件 104 实验52:日志文件管理和nologging的实现 107 数据文件 111 实验53:建立新的表空间 111 实验54:更改表空间的名称,更改数据文件的名称 113 表空间 116 实验55:建立临时表空间 117 实验56:大文件表空间和表空间的管理模式 118 数据库的逻辑结构 120 实验57:建立表,描述表的存储属性 121 实验58:数据库范围extent的管理 128 undo段的管理 134 实验59:数据库自动回退段的管理 135 实验60:数据库手工回退段的管理 136 实验61:通过回退段闪回历史数据 136 实验62:闪回数据的查询方法,以及历史交易 137 表—存储数据的最基本单元 138 实验63:rowid的使用 138 实验64:临时表和压缩数据表的使用 141 实验65:压缩存储数据 142 实验66:删除表中指定列操作 142 实验67:使用sqlldr加载外部的数据 143 实验68:使用utl_file包来将表的数据存储到外部文件 144 实验69:使用外部表 145 实验70:处理挂起的事务 146 索引 149 实验71:查看索引的内部信息 151 实验72:监控索引的使用状态 153 约束的管理 154 实验73:改变约束的状态 154 实验74:找到违反约束条件的行 155 Profile配置 156 实验75:管理密码的安全配置 156 实验76:限制会话的资源配置 157 权限管理 158 实验77:维护系统权限 158 实验78:维护对象权限 159 实验79:维护角色 160 实验80:审计 161 数据库字符集 162 实验81:配置国家语言支持 163 元数据 165 实验82:提取元数据dbms_metedata 165 第四部分数据库的网络配置 168 实验83:配置监听 168 实验84:客户端的网络配置 169 实验85:数据库共享连接的配置 171 实验86:数据库dblink 173 第五部分数据库的备份和恢复 174 Exp导出和imp导入 174 实验87:交互模式导出和导入数据 174 实验88:命令行模式导出和导入数据 175 实验89:参数文件模式导出和导入数据 175 实验90:导出和导入表的操作 176 实验91:导出和导入用户操作 178 实验92:导出和导入全数据库操作 179 实验93:导出和导入表空间操作 179 实验94:数据泵 179 冷备份 180 实验95:将冷备份恢复到其它目录 181 实验96:修改实例的名称 181 实验97:将冷备份恢复到其它主机 181 实验98:将数据库改为归档数据库 182 热备份 182 实验99:热备份数据文件 184 实验100:热备份控制文件 186 实验101:改变控制文件大大小 186 实验102:改变数据库的名称 187 实验103:使用老的控制文件进行数据库恢复 187 实验104:系统表空间损坏的恢复 187 实验105:非系统表空间损坏的恢复 188 实验106:索引表空间损坏的恢复 193 实验107:临时表空间损坏的恢复 195 实验108:无备份表空间损坏的恢复 195 实验109:日志挖掘 198 实验110:不完全恢复,删除表的恢复 199 实验111:不完全恢复,删除表空间的恢复 199 实验112:不完全恢复,当前日志损坏的恢复 199 实验113:不完全恢复,resetlogs后的再次恢复 203 实验114:表空间的传送 203 实验115:整个数据库的闪回 203 Rman备份和恢复 204 实验116:rman的连接,report和list命令 204 实验117:rman的copy命令 205 实验118:rman的backup命令 206 实验119:rman的backup备份增量级别 206 实验120:rman的backup备份片大小的限制 209 实验121:rman的backup备份数据文件 211 实验122:rman的backup备份控制文件 211 实验123:rman的backup备份归档日志文件 211 实验124:rman的backup备份二进制参数文件 212 实验125:rman的恢复目录的配置 212 实验126:rman的数据文件的恢复 212 实验127:rman的数据块完全恢复 213 实验128:rman的数据库不完全恢复 214 实验129:rman的数据库副本管理 214 实验130:rman的备份管理 214 第六部分数据库的优化 216 采集数据 216 实验131:优化工具utlbstat/utlestat的使用 216 实验132:优化工具spreport的使用 217 实验133:系统包dbms_job维护作业 217 Shared_pool 219 实验134:sql语句在shared_pool中的查询 219 实验135:shared_pool的sql命中率 220 实验136:数据字典的命中率查询 223 实验137:shared_pool保留区的判断 223 其它内存优化 224 实验138:db_cache命中率和db_cache的细化管理 224 实验139: v$latch的使用 225 实验140:log_buffer的优化 227 实验141:pga的优化 227 不同的存储格式 229 实验142:OMF管理的文件 229 实验143:处理行迁移 230 实验144:lock的信息查询 231 SQL语句的优化 234 实验145:explain列出执行计划 234 实验146:跟踪sql语句的使用 235 实验147:AUTOTRACE的使用 235 实验148:定位高消耗资源语句 236 实验149:收集数据库的统计信息 236 实验150:收集列的统计信息 238 实验151:自动收集统计信息 239 数据库的不同访问模式 240 实验152:全表扫描的优化 240 实验153:索引的五种使用模式 242 实验154:连接的三种模式 246 实验155:联合索引的建立 247 实验156:基于函数索引的建立 249 实验157:位图索引的建立 249 实验158:反键索引的建立 252 实验159:索引组织表的建立 253 实验160:cluster表的建立 253 实验161:物化视图的建立 253 实验162:查询重写 255 实验163:最后的sql优化办法,使用hints