数据库笔试题
姓名:         日期:         
 
1、事务是什么?
 
 
2、oracle中truncate和delete命令有何区别?
 
 
3、Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?
 
 
4、参见如下表结构
出版社: 
       出版社代码 char(2),
       出版社名称 varchar2(32)
 
图书: 
       图书编号 char(8),
       图书名称 varchar2(128),
       出版社代码 char(2),
       作者代号 char(4),
       图书简介 varchar2(128)
 
作者: 
       作者代号 char(4),
       作者名称 varchar2(10),
       性别 char(1),
       年龄 number(3),
       文学方向 varchar2(64)
 
获奖名单: 
       获奖日期 date,
       获奖人员 char(4)
 
编写SQL语句,找出“作者”库中没有出现在“获奖名单”库中所有作者信息的SQL语句(提示:使用not in、not exists以及外关联三种方法,并说明哪种方法最优。
 
 
 
5、Oracle数据库表存在伪列rowid,请利用rowid编写一个SQL语句,从以下记录中找到唯一记录,并将其flag列更新为Y
 
No       name      sex     flag
1                张三        1               N
1                张三        1               N
1                张三        1               N
 
 
 
6、Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理?
 
 
 
7、见第四题“获奖名单”表,写出SQL语句,查询出在上一个月获奖的人员。
 
 
 
8、见第四题“图书”表,在表上对图书名称、出版社代码、作者代号创建了组合索引,请问在执行如下语句时会不会利用到索引。
Select * from 图书 where 图书名称=’xxxx’
Select * from 图书 where 图书名称=’xxxx’ and 出版社代码=’bb’
Select * from 图书 where 图书名称=’xxxx’ and 作者代号=’ddd’
Select * from 图书 where 出版社代码=’yyy’
 
 
 
9、编写一个简单的Oracle存储过程,输出参数必须有一个是结果集。