基本信息
文件名称:2025年数据库核心面试题解析与实战.docx
文件大小:23.04 KB
总页数:10 页
更新时间:2025-05-24
总字数:约1.44万字
文档摘要

Sql常会面试题(总结)

1.用一条SQL语句查询出每门课都不小于80分的学生姓名?

name??kecheng??fenshu

张三????语文??????81

张三????数学??????75?李四????语文??????76

李四????数学??????90

王五????语文??????81

王五????数学??????100?王五????英语??????90

??

A:selectdistinctnamefromtable?where?namenotin(selectdistinctnamefromtablewherefenshu=80)??2.学生表如下:

自动编号??学号??姓名课程编号课程名称分数

1???????001?张三?0001?????数学???69

2???????002?李四?0001?????数学???89

3???????001?张三?0001?????数学???69?删除除了自动编号不一样,其他都相似的学生冗余信息

?A:deletefromtablenamewhere自动编号notin(selectmin(自动编号)fromtablenamegroupby学号,姓名,课程编号,课程名称,分数)

一种叫department的表,里面只有一种字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,目前四个球对进行比赛,用一条sql语句显示所有也许的比赛组合.?你先按你自己的想法做一下,当作果有我的这个简朴吗?

答:selecta.name,b.name?fromteama,teamb

wherea.name<b.name

请用SQL语句实现:从TestDB数据表中查询出所有月份的发生额都比101科目对应月份的发生额高的科目。请注意:TestDB中有诸多科目,均有1-12月份的发生额。?AccID:科目代码,Occmonth:发生额月份,DebitOccur:发生额。

数据库名:JcyAudit,数据集:Select*fromTestDB

答:selecta.*

fromTestDBa?,(selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBwhereAccID=101groupbyOccmonth)b?wherea.Occmonth=b.Occmonthanda.DebitOccurb.Debit101ccur

************************************************************************************

面试题:怎么把这样一种表儿?year??monthamount

1991??1????1.1

1991??2????1.2

1991??3????1.3?1991??4????1.4

1992??1????2.1?1992??2????2.2?1992??3????2.3

1992??4????2.4

查成这样一种成果?yearm1??m2??m3??m4

19911.11.21.31.4?19922.12.22.32.4??答案一、?selectyear,

(selectamountfrom??aaamwheremonth=1??andm.year=aaa.year)asm1,?(selectamountfrom??aaamwheremonth=2??andm.year=aaa.year)asm2,?(selectamountfrom??aaamwheremonth=3??andm.year=aaa.year)asm3,?(selectamountfrom??aaamwheremonth=4??andm.year=aaa.year)asm4?fromaaa??groupbyyear

这个是ORACLE??中做的:

select*from(selectname,yearb1,lead(year)over?(partitionbynameorderbyyear)b2,lead(m,2)over(partitionbynameorderbyyear)b3,rank()over(?partitionbynameorderbyyear)rkfromt)whererk=1;