关于几道面试题的思考

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
原文地址:https://www.cnblogs.com/wxjnew/p/2950768.html