dba面试题目综合整理.docx
《dba面试题目综合整理.docx》由会员分享,可在线阅读,更多相关《dba面试题目综合整理.docx(13页珍藏版)》请在冰豆网上搜索。
![dba面试题目综合整理.docx](https://file1.bdocx.com/fileroot1/2022-10/20/62dfb27d-b199-4e59-b08e-89a1c29f2007/62dfb27d-b199-4e59-b08e-89a1c29f20071.gif)
dba面试题目综合整理
求同一个号码的两次通话之间间隔大于10秒的通话记录ID
一组通话记录(总共500万条):
ID主叫号码被叫号码通话起始时间 通话结束时间 通话时长
1 022007-02-0109:
49:
53.0002007-02-0109:
50:
16.00023
2 0666 2007-02-0109:
50:
29.0002007-02-0109:
50:
41.00012
3 0666 2007-02-0109:
50:
58.0002007-02-0109:
51:
12.00014
4 098662007-02-0110:
04:
31.0002007-02-0110:
07:
13.000162
5 086382007-02-0110:
48:
26.0002007-02-0110:
49:
23.00057
6 091092007-02-0110:
49:
39.0002007-02-0110:
52:
55.000196
7 0370 2007-02-0111:
30:
45.0002007-02-0111:
31:
58.00073
8 099042007-02-0111:
33:
47.0002007-02-0111:
35:
00.00073
9 0379 2007-02-0111:
52:
20.0002007-02-0111:
54:
56.000156
10011992007-02-0112:
44:
45.0002007-02-0112:
45:
04.00019
求其中同一个号码的两次通话之间间隔大于10秒的通话记录ID
例如:
6,7,8,9,10条记录均符合。
答案:
在SQL-SERVER2000查询分析器下成功。
selectDISTINCTa.id--,a.mainNumber,a.endDateTime,b.StartDatetime,(b.startDatetime-a.endDatetime)
fromnumma,nummb
wherea.mainNumber=b.mainNumberanda.startDateTime<>b.startDateTime
and(b.startDatetime-a.endDatetime)>'1900-01-0100:
00:
10.000'
UNION
selectDISTINCTB.id--,a.mainNumber,a.endDateTime,b.StartDatetime,(b.startDatetime-a.endDatetime)
fromnumma,nummb
wherea.mainNumber=b.mainNumberanda.startDateTime<>b.startDateTime
and(b.startDatetime-a.endDatetime)>'1900-01-0100:
00:
10.000'
答案是除了4以外的全部ID
两道SQL面试题
在面试过程中多次碰到两道SQL查询的题目,一是查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下:
select top10*from AwhereID>(selectmax(ID)from(select top30 IDfrom AorderbyA )T)orderbyA
另外一道题目的要求是查询表A中存在ID重复三次以上的记录,完整的查询语句如下:
select*from(selectcount(ID)ascountfromtablegroupbyID)TwhereT.count>3
一道经典的SQL面试题
已经知道原表
yearsalary
---------------------------------------
20001000
20012000
20023000
20034000
显示查询结果
yearsalary
---------------------------------------
20001000
20013000
20026000
200310000
即salary为以前年的工资的和;
我这里提供的答案有两种
第一种:
selectb.year,sum(a.salary)
fromsalarya,salaryb
wherea.year<=b.yeargroupbyb.year
orderbyb.year;
其中salary为工资表
第二种:
selects1.year"year",(selectsum(s2.salary)fromsalarys2wheres2.year<=s1.year)"salary"fromsalarys1;
这两种方法都可以实现上面的效果,大家谁还有好的方法回复给我,交流一下。
程序员面试SQL题目
SQL试题2
一、
教师号 星期号 是否有课
1 2 有
1 3 有
2 1 有
3 2 有
1 2 有
写一条sql语句让你变为这样的表
教师号 星期一 星期二 星期三
1 2 1
2 1
3 1
各星期下的数字表示:
对应的教师在星期几已经排的课数
二、
书表(books)
book_id,book_name,creatdate,Lastmodifydate,decription
001,三个人的世界,2005-02-02,2005-07-07,NULL
作者表(authors)
A_id,A_name
01,王纷
02,李尚
03,泰和
部门表(depts)
d_id,d_name
001,编辑一部
002,编辑二部
003,编辑三部
书和作者关联表(bookmap)
book_id,A_id
001,01
001,02
001,03
部门和作者关联表(depmap)
d_id,a_id
001,01
002,02
003,03
找出每个部门的所写的总书两,比如,一本书有3个人写,如果三个人在不同的部门,则每个部门的总数量就是1.最后结果如下:
部门,书量
编辑一部,1
编辑二部,1
编辑三部,1
三、
两个表情况
表名:
wu_plan
ID plan model corp_code plannum prixis
1 00001 exx22 nokia 2000 0
2 00002 lc001 sony 3000 0
表名:
wu_bom
ID plan pact amount
1 00001 aa1 300
2 00001 aa2 200
3 00002 bb1 500
4 00002 bb2 800
5 00002 bb3 400
查询这两个表中plan唯一,每一个plan中,amount最少的,plannum大于prixis的记录
结果是:
ID plan model corp_code plannum prixis pact amount
1 00001 exx22 nokia 2000 0 a2 200
2 00002 lc001 sony 3000 0 bb3 400
四、
表1结构如下:
部门 条码 品名 销售额 销售数量 销售日期
表2结构如下
课别 部门
要求:
先按部门排序,再按销售额、销售数量排序检索出某个课别每个部门一个时期内的商品销售额的前三名,如查询01课别2007年4月15日到2007年4月22日每个部门一个周内的商品销售额合计的前三名
SQL面试之理论
我,8月1日在一家公司试三次第一次去的面试题今日在此与大家分享:
1.Acess和SQL SERVER区别?
2.如何优化SQL SERVER系统性能?
请举例3谈谈文件组与文件?
请使用文件与文件组恢复的方式恢复数据库?
4.请讲出登录帐号、数据库用户及数据库角色之间的关系,并画出示意图5.如何监控数据库的阻塞,并实现数据库的死锁测试?
6.写一个自动编号的存储过程如:
0001?
7.union all和union的区别?
8.exists和in的区别?
请举例?
9.你什么时候用触发器和索引?
请举例?
OracleSQL面试题目
一.简单SQL查询:
1):
统计每个部门员工的数目
selectdept,count(*)fromemployeegroupbydept;
2):
统计每个部门员工的数目大于一个的记录
selectdept,count(*)fromemployeegroupbydepthavingcount(*)>1;
3):
统计工资超过1200的员工所在部门的名称
selecte.first_name,salary,d.name
froms_empe,s_deptd
wheree.dept_id=d.id
andsalary>1200;
4):
查询哪个部门没有员工
selecte.empno,d.deptno
fromempe,deptd
wheree.deptno(+)=d.deptno
ande.deptnoisnull;
二.复杂SQL查询
有3个表(15分钟):
(SQL)
Student学生表(学号,姓名,性别,年龄,组织部门)
Course课程表(编号,课程名称)
Sc选课表(学号,课程编号,成绩)
表结构如下:
1)写一个SQL语句,查询选修了’JAVA’的学生学号和姓名(3分钟)
答:
SQL语句如下:
selectstu.sno,stu.sname
fromstudentstu,coursec,sc
wherestu.sno=sc.sno
ando=o
andame=’JAVA’;
2)写一个SQL语句,查询’a’同学选修了的课程名字(3分钟)
答:
SQL语句如下:
selectstu.sname,ame
fromstudentstu,coursec,sc
wherestu.sno=sc.sno
ando=o
andstu.sname=’a’;
3)写一个SQL语句,查询选修了5门课