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的典型例子。
编辑本段BLOB和CLOB的区别
大型对象
BLOB就是使用二进制保存数据。
如:保存位图。
CLOB使用CHAR来保存数据。
如:保存XML文档。
5:DML 与DDL
总体解释:
DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL