资源描述:
《SQL经典面试题集(二).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQL经典面试题集(二)第十一题:有表students(name,class,grade),请用标准sql语句完成nameclassgrade张三数学81李四语文70王五数学90张三语文60李四数学100王五语文90王五英语81要求:用sql语句输出各门功课都大于80分的同学姓名?createtablestudents(namevarchar(25),classvarchar(25),gradeint)insertintostudentsvalues('张三','语文',20)insertintostudentsvalues('张三','数学',90
2、)insertintostudentsvalues('张三','英语',50)insertintostudentsvalues('李四','语文',81)insertintostudentsvalues('李四','数学',60)insertintostudentsvalues('李四','英语',90)insertintostudentsvalues('王二','数学',81)insertintostudentsvalues('王二','英语',90)insertintostudentsvalues('李五','数学',83)insertintos
3、tudentsvalues('李五','英语',90)insertintostudentsvalues('李五','化学',90)---选出所有成绩大于80分的学生姓名-----------解法一------selectnamefromstudentsgroupbynamehavingmin(grade)>80------解法二------selectdistinctNamefromstudentswheregrade>80andNamenotin(selectNamefromstudentswheregrade<80)------解法三------
4、selectdistinctnamefromstudentswherenamenotin(selectnamefromstudentswheregrade<=80groupbyname)-----解法四-------selectnamefromstudentsgroupbynamehavingnamenotin(selectnamefromstudentswheregrade<=80)第十二题:已知一个表的结构为:姓名科目成绩张三语文20张三数学30张三英语50李四语文70李四数学60李四英语90怎样通过select语句把他变成以下结构:姓名语文数学
5、英语张三203050李四706090createtablestudents(namevarchar(25),classvarchar(25),gradeint)insertintostudentsvalues('张三','语文',20)insertintostudentsvalues('张三','数学',90)insertintostudentsvalues('张三','英语',50)insertintostudentsvalues('李四','语文',81)insertintostudentsvalues('李四','数学',60)insertin
6、tostudentsvalues('李四','英语',90)--解答:selectA.Name,A.gradeas语文,B.gradeas数学,C.gradeas英语fromstudentsA,studentsB,studentsCwhereA.Name=B.NameandB.Name=C.NameandA.class='语文'andB.class='数学'andC.class='英语'第十三题:我现在有两张表个表createtableuserinfo(idint,usernamevarchar(32),u_idint)createtablechec
7、kinfo(idint,checktypevarchar(32)--出勤的类型(正常,病假,事假)u_idint)两张表通过u_id关联的怎么查询出每个用户的某个月出勤的情况:比如说,1月份,正常出勤多少天,事假多少天,病假多少天?例如:username病假(天数)事假(天数)病假(天数)张三1552createtableuserinfo(idint,usernamevarchar(32),u_idint)createtablecheckinfo(idint,checktypevarchar(32),--出勤的类型(正常,病假,事假)u_idint)
8、deletefromuserinfoinsertintouserinfovalues(1,'user1',1