Oracle数据库 知识点总结.docx

上传人:牧羊曲112 文档编号:3162500 上传时间:2023-03-11 格式:DOCX 页数:5 大小:39.17KB
返回 下载 相关 举报
Oracle数据库 知识点总结.docx_第1页
第1页 / 共5页
Oracle数据库 知识点总结.docx_第2页
第2页 / 共5页
Oracle数据库 知识点总结.docx_第3页
第3页 / 共5页
Oracle数据库 知识点总结.docx_第4页
第4页 / 共5页
Oracle数据库 知识点总结.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle数据库 知识点总结.docx》由会员分享,可在线阅读,更多相关《Oracle数据库 知识点总结.docx(5页珍藏版)》请在三一办公上搜索。

1、Oracle数据库 知识点总结1.constraint约束: alter table table_name add constraint pk_name primary key(pkname);/添加主键 alter table table_name drop constraint pk_name;/删除主键 alter table table_name add constraint fk_name foreign key(fkname) references tablename(fkname);/添加外 键 alter table table_name drop constraint fk_

2、name;/删除外键 2.union 关键字: A username, B username rod bruce rose marina select username from A union select username from B 2、几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时,不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来 自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABL

3、E2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 3.复合主键一般不设外键 4. 组函数也称为聚合函数。 例如:我们把学生可以分为男生和女生两个组,如果想求每组的人数,平均身高,平均年龄等,就需要用到分组函数了。 在SQL中常

4、用的组函数有以下几个: COUNT:求出全部的记录数 MAX:求出一组中的最大值 MIN:求出一组中的最小值 AVG:求出一组中的平均值 SUM:求和 范例:COUNT函数 SELECT COUNT(empno) FROM emp; 我们常用COUNT(*),最好能够用字段代替* 范例:MAX、MIN函数,求最大最小值,一般是针对于数值的字段的,求出所有员工的的最高工资,和最底工资和平均工 资。 SELECT MAX(sal) 最高工资,MIN(sal) 最底工资,AVG(sal) 平均工资 FROM emp; 范例:求出部门的所有员工工资的总合 SELECT SUM(sal) 工资综合 FR

5、OM emp WHERE deptno=10; 如果如下查询输出部门编号和其部门所有员工的工资总和,会产生错误。 SELECT deptno ,SUM(sal) 工资综合 FROM emp WHERE deptno=10; 错误: 不是单组分组函数 发生以上的错误信息,是因为这样的查询需要进行分组统计。 分组统计有其固定的语法格式: SELECT DISTINCT *| 查询列 列别名1,查询列2 列别名2, FROM 表名称 表别名,表名称 表别名, WHERE 条件(s) ORDER BY 排序的字段1,排序的字段2 ASC|DESC GROUP BY 分组字段 所以老师写的是错的 ! 5

6、./从t_student表中删除名字重复的记录的信息 delete from t_student where sid not in( select sid from( select min(sid) sid,sname from t_student group by sname ) ); / delete from tablename where id not in (select max(id) from tablename group by col1,col2,.) 6.sequence 在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 C

7、REATE SEQUENCE seqTest INCREMENT BY 1 - 每次加几个 START WITH 1 - 从1开始计数 NOMAXvalue - 不设置最大值 NOCYCLE - 一直累加,不循环 CACHE 10; -设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为-NOCACHE 定义好sequence后,你就可以用currVal,nextVal取得值。 CurrVal:返回 sequence的当前值 NextVal:增加sequence的值,然后返回 增加后sequence值 eg: SELECT Sequence名称.CurrV

8、al FROM DUAL; select seqtest.currval from dual 在Sql语句中可以使用sequence的地方: - 不包含子查询、snapshot、VIEW的 SELECT 语句 - INSERT语句的子查询中 - INSERT语句的values中 - UPDATE 的 SET中 如在插入语句中 insert into 表名(id,name)values(seqtest.Nextval,sequence 插入测试); 7.范式: 所谓第一范式是指在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一 列都是不可分割的原子数据项,而不能是集

9、合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分 为不同的属性。在符合第一范式表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式 就是无重复的域。 第二范式是在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式。 第二范式要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作 为实体的唯一标识。第二范式要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一 部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一 对多的关系。为实现区分

10、通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是在第一范式的 基础上属性完全依赖于主键。例如在员工表中的身份证号码即可实现每个一员工的区分,该身份证号码即为候选键,任何 一个候选键都可以被选作主键。在找不到候选键时,可额外增加属性以实现区分,如果在员工关系中,没有对其身份证号 进行存储,而姓名可能会在数据库运行的某个时间重复,无法区分出实体时,设计辟如ID等不重复的编号以实现区分,被 添加的编号或ID选作主键。 第三范式是第二范式的一个子集,即满足第三范式必须满足第二范式。简而言之,第 三范式要求一个关系中不包含已在其它关系已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门 有部门编号、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简 介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式也应该构建它,否则就会有 大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传 递依赖于主属性。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号