b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

listener.ora Oracle(5)

电脑杂谈  发布时间:2018-02-12 18:03:06  来源:网络整理
  面试题:
      select name,
        sum(decode(t.course,JDBC,t.grade,0)) JDBC,
    sum(decode(t.course,Hibernate,t.grade,0)) Hibernate,
    sum(decode(t.course,Spring,t.grade,0)) Spring
     from tb_course t 
      group by t.name;
11.对象
    (1)对象包括: 表、序列、同义字、链接、视图等。
       对象的特点:可以给其他对象使用,名字不能重复。
    (2)序列:自动生成的唯一序列号,常用在主键自动生成。
          创建序列:
         create seqeuence s_tb_student;
      删除序列:
          drop seqeuence s_tb_student;
      序列的两个属性currval,nextval:
         select s_tb_student.currval from dual;
         select s_tb_student.nextval from dual;
      使用序列:
          insert into tb_student(id)values(s_tb_student.nextval);
      序列不会随着rollback回滚,下面这些情况时sequence值可能产生间隙:
         回滚发生; 
         序列用于多个表(不建议),建议一张表使用一个序列;
          系统宕机。
    (3)索引
         面试:如何优化你的查询?
        1.的查询方式?
          --全表扫描  select * from tb_student 慢
          --利用索引扫描   快
          --共享语句   最快(oracle有个回滚段,临时表空间)
      
    索引 index
      作用:在中用来加速对表的查询
      原理:通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O
      特点:与表独立存放,但不能独立存在,必须属于某个表
             由自动维护,表被删除时,该表上的索引自动被删除。
        
          索引的创建:
           自动:当在表上定义一个primary key或者unique约束1条件时,会
             自动创建一个对应的索引。
           手动:用户可以创建索引以加速查询。
           create index i_tb_student_name on tb_student(name);
           查询的时候使用索引:
             select * from tb_student where name=Alice;
           删除索引:
              drop index i_tb_student_name;
      当创建索引的时候,oracle会默认创建一个和当前表相关的索引页,
      而索引页中保存了索引字段和真实的磁盘地址,当用户发送sql语句带了索引时,
      oracle会到索引页中查询索引字段,直接定位磁盘IO,提取数据。
      所以索引数据快于全表扫描。
    索引的维护
       1.建立索引后,查询的时候需要在where条件中带索引字段才可以使用索引。
       2.在经常查询的字段上面建立索引。不要在所有字段上建立索引。
       3.因为索引是用来加速查询速度的,如果一张表经常做insert,delete,
        update ,而很少做select,不建议建立索引
     如果一张表字段很少,不建议建立索引。
       4.索引是由oracle自动维护的。索引使用久了会产生索引碎片
        (磁盘碎片),影响查询效果,所以使用久了需要手动进行维护(删除在重建)
   sql语句的优化:
     多使用共享语句,尽量使你的sql语句能够使用索引。
     怎样使sql语句能够使用到索引呢?
      当sql语句中包含not in,<>,is null,is not null,like%%的时候
      不会使用索引。
      in:可以使用索引。
      优化方案: a<>0  改为a>0 or a<0
                 a is not null改为 a>0 或a>
         is null 用一个缺省值代替空值
         like%%不能使用索引
         like001%可以使用索引
   (4)同义字 :通过创建同义字(对象的另外的一个名字)简化访问对象的操作。
      create synonym tb_emp for scott.emp;
      select * from tb_emp;
      删除:drop synonym tb_emp;
     链接--database link
   (5)视图
     创建用户时通过dba角色赋予权限,而不是手动赋予权限,则会创建
     视图会报:没有权限
      解决方案:使用system用户登录,在给j1703赋予权限
      grant create any table to j1703 with admin option;
      grant create any view to j1703 with admin option;
      grant select any table to j1703 with admin option;
      所有数据字典都是视图:
       select * from User_Tables;
       视图可以使复杂的查询变得简单
       创建简单视图(一个表):
         create view v_deptinfo as
     select deptno as 部门,count(*) 人数,sum(sal) 总工资,avg(sal)
     平均工资,max(sal) 最高工资,min(sal) 最低工资
     from scott.emp group by deptno;
使用视图:select *from v_deptinfo;
     复杂视图(多个表)
      删除视图:drop view v_deptinfo;
   (6)数据建模(试规范题)
   软件开发过程:
1. 需求调研,与客户进行沟通
2. 需求分析,将现实工作中的动作模拟到计算机
   数据建模
3. 开发
4. 测试
5. 上线部署
从关系的表中删除冗余信息的过程称为规范化,
是得到高效的关系型表的逻辑结构最好和最容易的方法。
规范化数据时:应执行以下操作:
将的结构精简为最简单的形式
从表中删除冗余值
标识所有依赖与其他数据的数据
     获得数据化的三种方法:三范式
       步骤1:
         第一范式:必须要有主键,并且每个属性值都是不可分的最小数据单元
     ,则称为是第一范式。
     第二范式:所有非主关键字都完全依赖于主关键字(通常用于联合主键)
     第三范式:非主关键字不能依赖于其他非主关键字(通常用于一个主键)
     数据建模
      1.根据三个范式
      2.分析实体之间的关系
        1对1:一个人只有一个 唯一外键关联或者主键关联
    一对多:一个班级可以有多个学生  一个学生只属于一个班级
            关联:一对多使用主外键关联,通常在多方建立外键
        多对多:一个学生可以选择多门课程 一门课程可以被多个学生选修
           关联:多对多通常使用中间表(再多建一张表存储)关联数据
               通常中间表会有两张表的id作为联合主键,并且
           作为外键指向关联表
        订单和用户之间的关系是多对一:
       create table tb_order(
        id int primary key,
        code varchar2(50),
        user_id int,
        foregin key(user_id) references tb_user(id)
       );
     订单和书籍是多对多关系:
       create table tb_item(
        order_id int,
        book_id int,
        count int,
        primary key(order_id,book_id),
        foregin key(order_id) references tb_order(id),
        foregin key(book_id) references tb_book(id)
       );
       select * from tb_user u,tb_book b,tb_order o,tb_item i
        where u.id=o.user_id 
        and o.id=i.order_id,
        and b.id=i.book_id


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-73999-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 程庆安
      程庆安

      在中国同志有更传统的意思哦

    • 乔吉
      乔吉

      他不是把军舰开去了吗

    热点图片
    拼命载入中...