SQL练习题Word文件下载.docx
《SQL练习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《SQL练习题Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
fenshu
张三
语文
81
数学
75
李四
76
90
王五
100
英语
A:
selectdistinctnamefromtablewherenamenotin(selectdistinctnamefromtablewherefenshu<
=80)
selectnamefromtablegroupbynamehavingmin(fenshu)>
80
3、学生表如下:
自动编号
学号
姓名课程编号课程名称分数
1
2005001
0001
69
2
2005002
89
3
删除除了自动编号不同,
其他都相同的学生冗余信息
deletetablenamewhere
notin(selectmin(
自动编号)fromtablenamegroupby学号,
姓名,
课程编号,
课程名称,
分数)
4、请用SQL
语句实现:
从TestDB
数据表中查询出所有月份的发生额都比101
科目相应月份的发生额高的科目。
请注意:
TestDB
中有很多科目,都有1
-12
月份的发生额。
AccID
:
科目代码,Occmonth
发生额月份,DebitOccur
发生额。
数据库名:
JcyAudit
,数据集:
Select*fromTestDB
答:
selecta.*
fromTestDBa
(selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBwhereAccID='
101'
groupbyOccmonth)b
where=and>
5、一个叫
team
的表,
里面只有一个字段name,
一共有4
条纪录,分别是a,b,c,d,
对应四个球对,现在四个球对进行比赛,用一条sql
语句显示所有可能的比赛组合.
你先按你自己的想法做一下,看结果有我的这个简单吗
select,
fromteama,teamb
where<
6、面试题:
怎么把这样一个表儿
year
monthamount
1991
1
2
3
4
1992
查成这样一个结果
yearm1
m2
m3
m4
1991
1992
答案一、
selectyear,
(selectamountfrom
aaamwheremonth=1
and=asm1,
aaamwheremonth=2
and=asm2,
aaamwheremonth=3
and=asm3,
aaamwheremonth=4
and=asm4
fromaaa
groupbyyear
7、说明:
复制表(
只复制结构,
源表名:
a新表名:
b)
SQL:
select*intobfromawhere1<
>
(where1=1,拷贝表结构和数据内容)
Oracle:
createtableb
As
Select*fromawhere1=2
[<
(不等于)(SQLServerCompact)
比较两个表达式。
当使用此运算符比较非空表达式时,如果左操作数不等于右操作数,则结果为TRUE。
否则,结果为FALSE。
]
8、说明:
拷贝表(
拷贝数据,
a目标表名:
insertintob(a,b,c)selectd,e,ffroma;
9、说明:
显示文章、提交人和最后回复时间
select,,fromtablea,(selectmax(adddate)adddatefromtablewhere=b
10.
说明:
外连接查询(
表名1
a表名2
b)
select,,,,,fromaLEFTOUTERJOINbON=
ORACLE:
select,,,,,froma,b
where=(+)
11.
日程安排提前五分钟提醒
select*from
日程安排
wheredatediff('
minute'
f
开始时间,getdate())>
5
12.
两张关联表,删除主表中已经在副表中没有的信息
Deletefrominfowherenotexists(select*frominfobzwhere=)
13.有两个表A
和B
,均有key
和value
两个字段,如果B
的key
在A
中也有,就把B
的value
换为A
中对应的value
这道题的SQL
语句怎么写
updatebset=(selectfromawhere=wherein(selectfromb,awhere=;
高级sql
面试题
14.原表:
courseidcoursenamescore
-------------------------------------
Java
70
2oracle90
3xml40
4jsp30
5servlet80
为了便于阅读,
查询此表后的结果显式如下(
及格分数为60):
courseidcoursenamescoremark
---------------------------------------------------
70pass
2oracle90pass
3xml40fail
4jsp30fail
5servlet80pass
写出此查询语句
selectcourseid,coursename,score,decode(sign(score-60),-1,'
fail'
'
pass'
)asmarkfromcourse
(SQL:
selectcourseid,coursename,score,(casewhenscore<
60then'
else'
end)asmarkfromcourse)
ORACLE:
selectcourseid,coursename,score,decode(sign(score-60),-1,'
(DECODE函数是ORACLEPL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数)
完全正确
SQL>
desccourse_v
NameNullType
-----------------------------------------------------------------------------
COURSEIDNUMBER
COURSENAMEVARCHAR2(10)
SCORENUMBER
select*fromcourse_v;
COURSEIDCOURSENAMESCORE
------------------------------
1java70
)asmarkfromcourse_v;
COURSEIDCOURSENAMESCOREMARK
----------------------------------
1java70pass
面试题
(1)
createtabletesttable1
(
idintIDENTITY,
departmentvarchar(12)
)
select*fromtesttable1
insertintotesttable1values('
设计'
市场'
售后'
/*
结果
iddepartment
设计
市场
售后
*/
createtabletesttable2
dptIDint,
namevarchar(12)
insertintotesttable2values(1,'
张三'
李四'
insertintotesttable2values(2,'
王五'
insertintotesttable2values(3,'
彭六'
insertintotesttable2values(4,'
陈七'
用一条