zoukankan      html  css  js  c++  java
  • 关于几道面试题的思考

    1:表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列

    题目再混,思路要清晰;

    select
    case when a>b then (case when a>c then a else c end )
    else
    (case when b>c then b else c end )
    end
    from testabc

    思路:如果a大于b,再比较a与c else 比较b与c

    2: 同一条sql语句查询出“每门”课程都大于80分的学生姓名

    Name chengji fengshu

    张三 数学 75
    张三 语文 81
    李四 数学 90
    李四 语文 76
    王五 数学 81
    王五 语文 100
    王五 英语 90

    select name from table a
    where a.name not in (select name from table b where fengshu <=80)
    思路:过滤掉有分数小于等于80的学生就OK

    (1):Oracle数据库实现一个字段为ID自增长?

    1、思路:使用Oracle数据库的序列
    2、实现过程:
    --创建序列 从1000开始,到99999999结束
    create sequence seq_a minvalue 1000 maxvalue 99999999 start with 1000 increment

    by 1 nocache;
    --查询序列
    select seq_a.nextval from dual;
    --创建测试表
    create table seq_t(
    tid integer,
    tname varchar2(20)
    );
    --插入数据
    insert into seq_t values (seq_a.nextval,'郭靖');
    insert into seq_t values (seq_a.nextval,'黄蓉');
    --查询
    select * from seq_t;
    --删除表
    drop table seq_t;
    --删除序列
    drop sequence seq_a

    (2):存储过程和SQL的区别?

    存储过程就是将多个T-SQL语句集合在一起,完成一定功能的子程序,供需要的时候调用。
    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后,注意是经过编译后,存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。 由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。

     

    (3):简述游标、索引、序列的定义和用法?

    游标:数据缓存区

    索引:基于数据表的一种数据结构

    n  序列:序列就是一个连续的数字生成器,可设置为上升或下降

    n  当序列第一次被调用的时候将返回一个指定的值,然后根据规则增量增长

    n  序列可以是循环的,也可以是连续增加的,直到一个限制值为止。

    n  序列有两个伪列:

    n  CurrVal:表示当前列

    n  NextVal:下一个序列值

     

     

    (4):BLOB与CLOB

    BLOB的含义

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。

    在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。

    BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。

    根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。

    但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。

    编辑本段BLOBCLOB的区别

    大型对象

    BLOB就是使用二进制保存数据。

    如:保存位图。

    CLOB使用CHAR来保存数据。

    如:保存XML文档。

    5:DML DDL

    总体解释:


    DMLdata manipulation language):
           它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
    DDLdata definition language):
           DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
    DCLData Control Language):
           是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

     

     

     

     

      

     

    英文名:kingwang & Email :kingstudy@vip.qq.com
  • 相关阅读:
    PHP 设计模式系列 —— 资源库模式(Repository)
    在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
    laravel集合
    2013项目总结
    项目总结
    到底创建了几个String对象?
    String s=new String("abc")创建了几个对象?
    局部刷新
    robot framework 在pycharm中语法无法高亮显示的,显示绿色解决办法(Robot Framework with PyCharm)
    UNIX环境高级编程——进程管理和通信(总结)
  • 原文地址:https://www.cnblogs.com/wxjnew/p/2950768.html
Copyright © 2011-2022 走看看