oracle学习笔记分析和总结.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《oracle学习笔记分析和总结.docx》由会员分享,可在线阅读,更多相关《oracle学习笔记分析和总结.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章SQL更新数据2第二章序列4第三章SQL查询6第四章ORACLE数据表对象15Select manager_name name, statusFrom t_managersWhere status = ACTUnion allSelect employee_name, statusFrom t_employeesWhere status =,ACTIntersect 查询Intersect查询用于获得两个结果集的交集。例 select employee_name, statusFrom t_employeesWhere status = ACTIntersectselect manage
2、r_name, statusFrom t_managersWhere status = ACTMinus查询Minus查询可以看做集合间的减法运算,该操作的第一个集 合看做被减数,而第二个集合看作减数,那么minus操作将 返回第一个结果集中存在,而第二个结果集中不存在的记录 例 selectemployee_name,statusFrom t_employeesWhere status = ACTMinusSelect manager_name, statusFrom t_managersWhere status = ACTIV .联接联接用于多数据源(表、视图)之间如何组合,以形成最终 的
3、数据源。联接对于查询语句有着不可或缺的作用。如果未 显示指定联接,那么将获得多个数据源的笛卡尔积。Oracle中主要包括以下几种联接关系。自然联接内联接外联接:左联接外联接:右联接外联接:完全联接自然联接自然联接将两个数据源中具有相同名称的列进行联接。用户不 必明确指定执行联接的列。自然联接应该使用natural join 关键字。例 select *From t_employees natural join t_managers内联接内联接像自然联接不同,需要在from子句中使用联接条件。 但是,用户可以自行制定所要联接的各数据源的列。这克服 T自然联接要求联接必须同名的限制。例 selec
4、t *From t_employees e inner join t_managers mOne. employee_name = m. manager_name内连接可以用where子句来代替外联接一左联接外联接与内联接不同的是,内联接中的两个数据源是并列关系, 二者具有平等的地位,而外联接将其中一个数据源指定为基 表(或者说为主表)另一个数据源可以看做附表。在最终的数 据源中,一定含有基表中的数据,而附表中的数据是 否出现, 那么依具体的联接条件而定。左联接例子 select e.employeejd, e.employee_name, s.salary From t_employees
5、eLeft outer join t_salarysOn e.employeejd = s.employee_idOrder by e. employee_id(当左侧数据表中的数据在右侧表中没有记录与之对应,将利 用null来填补空缺的查询结果)对于左联接,oracle还提供了另外一种简写的方式一一在where子句条件中添加(+ )来指定附表Select e.employeejd, e.employee_name, salaryFrom t_employees e, t_salary sWhere e. employ ee_id = s.employee_id(+)Order by e.em
6、ployee_id外联接一一右联接右联接与左联接的执行过程非常相似,二者的区别在于基表 的选择。右联接应该选择使用right (outer) join关键字,而 基表即处于该关键字右侧的数据表select e.employeejd, e. employee_name, s. salaryFrom t_employees eright outer join t_salarysOn e.employeeJd = s.employee_idOrder by e.employee_id外联接一一完全联接完全联接实际是一个左联接和右联接的组合,即首先执行一 个左联接,然后执行一个右联接,最后将两个结果集
7、执行 union操作,从而获得最终的数据源。例 select e.employeejd, e.employee_name, s.salaryFrom t_employees e full join t_salary sOn e.employeeJd = s.employee_idOrder by e.employee_id缺点:完全联接开销很大V.层次化查询利用connect by进行层次化查询例 select * from marketStart with market_id = 14Connect by prior parent_market_id = market_idConnect指定
8、的递归条件,可以像where子句中的条件一样, 使用and或者or等运算符来指定多个条件例 select * from marketStart with marketjd = 14Connect by prior parent_market_id = marketjd and instr (market_name,洲)=0演示用connect by获得所有中国市场的客户信息。(具体看书)Select * from market_customerWhere marketjd in (Select marketjd from marketStart with market_name =中国,Con
9、nect by prior marketjd = parent_market_id)Sys_connect_by_path()函数的使用(具体看书316页)第四章ORACLE数据表对象与其他数据库不同,oracle数据库的下一层逻辑结构并非数 据表,而是表空间;每个数据表都属于唯一的表空间。I .oracle表空间表空间是oracle的开创性理念,他是一个逻辑对象。使用表 空间有以下好处:1 .防止磁盘空间突然耗竭的风险.规划数据更灵活(类似于操作系统的文件夹功能)2 .提高数据库性能(访问频繁的数据表放入单独的表空间).提高数据库的安全性II.创立oracle表空间.Oracle表空间是一个
10、逻辑概念,创立是需要指定物理文件, 即实际数据分配磁盘空间。表空间的物理文件被称为数据文 件(datafile);与此同时,应同时指定数据文件的初始大小。创立一个名为USER1的表空间,其SQL语句如下:Create tablespace userl datafilef:databaseoracleuser 1 _data.dbf size 20 M1 指定数据文件的可扩展性表空间设计理念灵活性的一个方面在于数据文件的可扩展 性。当存储在某个数据文件中的数据量超过了其初始大小 时,数据文件可以进行自动扩展。要像实现该功能,在创立表空间时应该使用autoextend选项Create tables
11、pace user2 datafilef:databaseoracleuser2_data.dbf size 20M autoextend on要关闭自动扩展,可以将autoextend选项的值设为“off”2 指定数据文件的增长幅度数据文件默认每次增长64K,当频繁增长时,可以使用next 选项设定数据文件自动增长的幅度例create tablespace user3 datafile f:databaseoracleuser3_data.dbf size 20MAutoextend on next5M数据文件的大小和自动增长的幅度单位只有KB和MB两种。3 .指定数据文件的最大尺寸数据文件
12、可以自动增长,但是无限制的增长往往带来风险。很 多情况下,某台服务器上可能同时运行着多个系统,如邮件 服务器和数据库服务器可能为同一台机器。,因此除非特殊 需要,应为每个表空间的数据文件设定最大尺寸。应使用 maxsize 选项Create tablespace user4 datafile f:datafileoracleuser4_data.dbf size 20M Autoextend on next 5m maxsize unlimited 这里unlimited作用是不限制最大尺寸。4 .查看表空间是否创立成功表空间成功创立后,会在数据库系统表中添加相应的记录,并 且创立相应的物理文
13、件。可以通过查看视图dba_data_files 中的记录和实际数据文件存在性,来判断表空间是否创立成 功Select file_name, tablespace_name from dba_data_files order by file_name,为一个表空间创立多个数据文件5 .一个表空间可以有多个数据文件,为一个表空间创立多个数据文件需要指定多个数据文件的完整路径和详细的选项 参数。各数据文件之间使用分隔。例 select tablespace multiple_data_file datafilef:databasetmpdata_ 1.dbf size IM ,f: databas
14、e tmp data_2. dbf size 5MIII.查看表空间Dba_tablespaces可以用来查看所有表空间的基本信息;而 dba_data_files可以用来查看相关数据文件的信息。查看表空间信息,可以利用如下SQL语句:Select tablespace_name, status, allocation_type from dba_tablespacesW ,修改数据库默认表空间查询每个用户的默认表空间,可以使用如下SQL语句:Selectuser_id, username, default_tablespace from dba_users 修改数据库默认的表空间的SQL语句
15、如下:Alter database default tablespace userl.修改表空间名称修改表空间名称使用rename命令Alter tablespace user2 rename to user20表空间重命名并不对数据文件产生影响,需要注意的是,不 能对数据的系统表空间进行重命名,例如SYSTEM, SYSAUX等无法进行重命名。V .删除表空间删除表空间的命令为drop tablespaceo删除表空间有两种方 式,一种是仅仅删除其在数据库中的记录,另一种是将记录 和数据文件一起删除。仅删除其在数据库中的记录的SQL语句如下:Drop tablespace user20删除表
16、空间及其数据文件的SQL语句如下:Drop tablespace user20 including contents and datafiles.创立oracle数据表利用命令创立数据表例 create table t_user (user_id number not null, user_namevarchar2(20) not null,user_email varchar2(30)利用命令查看表结构Select table_name, tablespace_name from user_tables where table_name=,t_user视图user_tables可以用来查看所
17、有用户表的基本信息。 可以在SQL Plus 或 PL/SQL Developer 的Command Window 执行如下SQL语句来查看数据表信息Describe t user;.修改oracle数据表结构利用命令修改数据表结构修改数据表结构的SQL命令为alter table可以利用RENAME选项,对列名进行修改例 alter table t_user rename column user_emailto email 列更名时,不会影响数据库中的记录;但注意不能将列名更 新为与其他已存在列名相同。可以利用modify选项对列的属性进行修改,以修改 USER_NAME的长度为例,相应的S
18、QL语句如下: Alter tablet_user modify (user_name varchar2 (15) Oracle允许一次修改多个列属性。例 alter table t_user modify (user_name varchar2 (15), email varchar2 (30)使用alter table命令同样可以为表添加一列例 alter table t_user add (remarks varchar2 (50)删除表中的操作使用drop选项第一章SQL更新数据I .插入数据一.Insert语句向表中插入数据1 .为所有列显示赋值Insert into people
19、values(people_seq.nextval,1, ACT);2 .同时指定要插入的列名列表和列值列表Insert into table_name(column 1 ,column2,.) values (value 1 ,value2二.利用子查询批量插入数据此时的SQL语句除了包含insert into命令之外,还应包含一个查询语句,其语法规那么如下:Insert into table_name select.例:insert into people select employeejd , employee_name,status from t_employees where emp
20、loyee_id=3;n.修改数据Update修改数据一般有以下几种情况:直接修改单列的值,直接修 改多列的值、利用where子句限制修改范围和利用视图修改数据。L修改单列的值update table_name set colum =value例 update people set status =CXL;例 alter table t_user drop column remarkAvertable命令除了对列进行修改外,还可以对表本身的属 性进行修改。例如,利用rename选项修改表名 Altertablet_userrenametot_users (注意,不要轻易修改表名).删除数据表删
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 学习 笔记 分析 总结
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内