sql 笔试题

sql 相关的查询面试题收集及答案
一 //查询某表中的第30到40行的数据
select * from 表名 where 字段 in( select top 40 字段 from 表名 )and 字段 not in( select top

30 字段 from 表名)

或者

select top 10 * from 表名 where 字段  not in( select top 30 字段 from 表名)

二 //查询一个表中存在重复的字段“字段1”
select DISTINCT 字段1  from 表名 having count(字段1)>1 group by 字段1

(并显示可能重复的次数)

select DISTINCT 字段1, count(字段1) As 次数  from 表名 having count(字段1)>1 group by 字段1

某门户网站数据库职位笔试题
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存储过程,输出参数必须有一个是结果集。
 
 
 
      专家对本试卷的分析:
      第一,这张笔试卷从题目的考点上来看,属于基础知识类的;
      第二,从难度上分析属于中等;
      第三,从题目的设置上来看,该公司的主要用意是考察笔试者的工作经验和项目经验,尽管是基础

知识,但是只要没做过开发工作,想回答上来并不容易;
      第四,通篇只有第4题最后一问涉及到了“优化”的问题,因此判断该公司这张试题主要是面对开

发职位的。


请问在ASP中能否使用一条SQL语句同时操作两个表
有两表Tab1,Tab2;1和2中有两相同字段“代码”,‘名称’,现欲用Tab1中的“代码”和Tab2中‘代码’相关联查询得到‘名称’来填充Tab1中的“名称”字段,在查询分析器中该如何写此语句?
update   tab1   set   名称=tab2.名称  
  from   tab1,tab2  
  where   tab1.代码=tab2.代码  

有两表Tab1,Tab2;1和2中有两相同字段“代码”,‘名称’,现欲用Tab1中的“代码”和Tab2中‘代码’相关联查询得到‘名称’来填充Tab1中的“名称”字段,在查询分析器中该如何写此语句?  
     
  update     table1   set   名称=b.名称   from   table1   a   inner   join   table2   b   on   a.代码=b.代码

你可能感兴趣的:(sql 笔试题)