30天 Oracle 索引 ,序列的学习 059次(SQL) 学习主题:SQL 学习目标: 1 掌握视图 对应作业创建简单视图创建简单视图的语法结构是什么? create view emp80 as select e.employee_id , e.last_name , e.salary from employees e where e.department_id = 80; 创建视图 select * from emp80; 查看视图 创建复杂视图创建一个名为DEPT_NAME的复杂视图,包含每个部门的部门名称,部门最低薪水、部门最高薪水以及部门的平均薪水。 SQL> create view dept_name as select d.department_name , min(e.salary) min ,max(e.salary) max from departments d , employees e group by d.department_name; SQL> create view dept_name10(name , minsal , maxsal) as select d.department_name , min(e.salary) ,max(e.salary) from departments d , employees e group by d.department_name; 注: 使用聚合函数创建视图时,必须指定列别名.视图中 DML 操作的执行规则使用DML操作的执行规则是什么? 如果视图中包含下面的部分就不能修改数据: 组函数 Group by 子句 Distinct 关键字 用表达式定义的列.如何设置视图拒绝DML操作? 就是将此视图设置为 with read only 只读. create view emp20 as select * from employees with read only;
关于视图删除: 视图中删除数据时,会从查询到的表中将数据删除. 删除视图如何删除视图? drop view emp20;
可以删除任何视图,只读视图也可以删除.删除视图后数据为什么不会丢失? 删除视图不会丢失数据,因为视图时基于数据库中的基本表的.什么是内建视图什么是内建视图? 内建视图是一个带有别名(或相关名) 的 可以在SQL语句中使用的子查询. 一个主查询在FROM 子句中指定的子查询就是一个内建视图 内建视图:内建视图由位于FROM 子句中命名了别名的子查询创建,读子查询定义一个可以在主查询中引用数据源. 第060次(SQL) 学习主题:SQL 学习目标: 1 掌握分页 2 掌握序列 3 掌握索引 对应作业使用内建视图实现TOP-N分析什么是TOP-N分析? Top-N查询在需要基于一个条件,从表中显示最前面的n条记录或者最后面的n条记录时是有用的.该结果可以用于进一步分析,列如,用Top-N分析你可以执行下面的查询类型:在公司工资最高的3个人公司最老的4个员工.从 employees表中显示挣钱最多的 3 个人的名字及其薪水。 select last_name , salary from (select rownum , last_name ,salary from employees ) where rownum <=3 ; 显示 employees表中4 个资格最老的雇员显示他们的入职时间与名字。 SQL> select last_name , hire_date from (select * from employees order by hire_date ) where rownum <=4; Oracle的分页查询什么是分页查询? 当查询的结果集数据量过大时,可能会导致各种各样的问题发生,列如:服务器资源被耗尽,因数据传输量过大而使处理超时,等等.最终都会导致查询无法完成.解决这个问题的一个策略就是”分页查询”,也就是说不要一次行查询所有的数据,每次只查询一部分数据.这样分批次地进行处理,可以呈现出很好的用户体验,对服务器资源的消耗也不大.查询雇员表中数据,每次只返回10条数据。 select * from (select rownum rn , e.* from employees e) em where em.rn >=10 and em.rn <=20 ; 注: rownum 在子查询中的时,是分页查询,也就是可以 查询0-10 ,或 11-24 这样的 如果在主查询中 只能是 0-10 或 0-20 前多少数据.这样的.什么是序列什么是Oracle的序列? 序列是用户创建的数据库对象,序列会产生唯一的整数,序列的一个典型的用途是常见一个主键的值,它对每一行必须是唯一的.序列由一个Oracle 内部程序产生并增加或减少. 序列是一个节省时间的对象,因为它可以减少应用程序产生序列的代码量.序列号独立于表被存储和产生,因此,相同的序列可以被多个表使用.创建序列的语法结构是什么?
创建序列的语法: Increment by n 指定序列号之间的间隔,在这儿n 是一个整数(如果该子句被省略,序列增量为1 ) Start with n 指定要产生的第一个序列数 Maxvalue n 指定序列能产生的最大值 Nommaxvalue 对于升序序列指定 10^27为最大值,对于降序列指定-1 为最大值 Minvalue n 指定最小序列值 Cycle | Nocycle 指定序列在到达它的最大或最小值之后,是否继续产生(NoCycle是默认选项) Cache n | Nocache 指定Oracle 服务器预先分配多少值,并且保持在内存中(默认情况下 Oracle服务器缓冲20个值)创建序列创建一个序列名称为:dept_seq,增长间隔为10,从120开始,最大值为9999,不缓存。不循环使用。 create sequence dept_seq start with 120 increment by 10 maxvalue 9999 nocache nocycle; 通过PL/SQL Developer创建和dept_seq相同的序列,并命名为dept_seq2。
Cache 0 代表的是不缓存,默认为20使用序列Oracle记录序列的数据字典表叫什么? User_sequencesOracle的序列中包含多少伪列?每个伪列的特点是什么? Nextval 和 Currval 伪列 Nextval 返回下一个可用的序列值,他每次返回一个唯一的被引用值,即使对于不同的用户也是如此 Currval 获得当前的序列值 在 currval 获得一个值以前, nextval 必须调用一次.修改删除序列修改序列的语法结构是什么?
alter sequence dept_seq increment by 1; 修改序列的原则是什么? 必须是被修改序列的所有者,或者有alter 权限. 用alter sequence 语句,只有以后的序列数会受影响. 用alter sequence语句,start with 选项不能被改变.为了以不同的数重新开始一个序列,该序列必须被删除和重新创建.什么是索引什么是索引? 在关系型数据库中,索引是一种单独的,物理的对数据库表中一列或多列的值进行排序的一种关系存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 索引提供对表中行的直接和快速访问,它的目的是用索引路径快速定位数据以减少磁盘I/O.索引由Oracle服务自动使用和维护,索引逻辑地和物理独立于他们索引的表,这意味着索引可以在任何时候被创建或删除,并且不影响基表或其它的索引.当删除表时,相应的索引也被删除.索引有哪些类型? 唯一性索引: 当你在一个表中定义一个列为主键,或者定义一个唯一键约束Oracle 服务器自动创建该索引,索引的名字习惯上是约束的名字. 非唯一性索引: 由用户创建,列如,可以创建一个 Foreign key 列索引用于一个查询中的连接来改进数据取回的速度.创建索引的方式有几种? 自动: 在一个表的定义中,当定义一个 primary key 或 unique 约束时,一个唯一索引被自动创建. 手动: 用户能够在列上创建非唯一的索引来加速对行的访问.索引的使用什么情况下创建索引? 一个列包含一个大范围的值 一个列包含很多的空值 一个或多个列经常同时在一个where 子句中或一个连接条件中被使用 表很大,并且经常的查询期望取回少于百分之2到4的行.什么情况下不创建索引? 表很小 不经常在查询中作为条件被使用的列 大多数查询期望取回多于表中百分之 2到 4的行 表经常被更新.创建索引(单行索引,复合索引,函数索引)Oracle的非唯一性索引包含哪些类型? 单行索引,复合索引(组合索引) ,函数索引创建索引的语法结构是什么?
create index dept_index on employees(last_name); create index dept_index1 on departments(manager_id , location_id ); 删除索引的语法结构是什么?
drop index dept_index1;
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/23415.html