资源描述:
《葵花宝典之sql面试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、学生表:student学生表(学号,姓名,性别,年龄,组织部门)课程表:course课程表(编号,课程名)选课表:sc(学号,课程编号,成绩)(1)写一个sql语句,查询选修了“计算机原理”的学生学号和姓名(2)写一个sql语句,查询“周星驰”同学选修了的课程名字(3)写一个sql语句,查询选修了5门课程的学生学号和姓名1、selectsno,snamefromstudentwheresnoin(selectsnofromscwherecno=(selectenofromcoursewherecname二'计算利l原理'))2、selectcnamefromcourse
2、whereenoin(selectenofromscwheresno=(Selectsnofromstudentwheresname=‘周星驰))3、Selectsname,snofromstudentwheresnoin(Selectsnofromscgroupbysnohavingcount(sno)=5)二、已知一个表结构:姓名科目成绩张三语文20张三数学30张三英语50李四语文70李四数学60李四英语90怎样通过select语句把它变成以下结构:姓名语文数学英语张三203050李四706090Droptableifexistsstudentscore;Creat
3、etablestudentscore(idintauto_increamentprimarykey,姓名varchar(20),科目varchar(20),成绩varchar(20)defaultcharset=utf-8;)Insertintostudentscore(id,姓名,科目,成绩)value(『张三丁语文”,n20n);Insertintostudentscore(id,姓名,科冃,成绩)value(叮‘张三丁数学“,n30n);Insertintostudentscore(id,姓名,科目咸绩)value(打'张三;'英语“,n50n);Insertin
4、tostudentscore(id,姓名,科目,成绩)value(1,”李四丁语文”,f,70n);Insertintostudentscore(id,姓名,科目,成绩)value(1,”李四丁数学”,"60”);Insertintostudentscore(id,姓名,科目,成绩)value(1,”李四英语”,n90n);SelectA.姓名,A・成绩as语文,B•成绩as数学,C・成绩as英语fromstudentscoreA,studentscoreB,studentscoreCwhereA・姓名二B・姓名andB.姓名二C・姓名andA.科目三语文1andB.科
5、目三数学"andC・科目三英语、三、购物人商品名数量B乙4C丙1A丁2B丙5给出所有购入商品数为两种或两种以上的购物人记录:select*fromproductwhere购物人in(Select购物人fromproductgroupby购物人havingcount(商品数)>=2)四、sql语言实现查找成绩排名10到20的学生selecttop11from成绩表wheresnonotin(Selecttop9snofrom成绩表orderby成绩desc)orderby成绩desc;五、假设数据库表如下t_user:id主键自增username字符password字符假
6、设现有80条记录,每页显示10条记录,id从1到80现在按照id升序排序,取出第三页的数据应该为:所得记录的id应该为21到30select*from(selecttop10*from(Selecttop30*fromt_userorderbyidASC)ast2_userorderbyidDESC)ast3_userorderbyidASC八、I、A、B两个表拥有一样的表结构,都以id为主键。如何将A表中存在而B表中不存在的记录插入到B表中?表结构如下:createtableA(idintprimarykey,namevarchar(20),passwordvarch
7、ar(20));A表记录:IDNAMEPASSWORD1Tom12342Mary12343Lucy12344Billy12345Henry1234B表记录:IDNAMEPASSWORD1Tom12342Mary12343Lucy1234SQL语句一:(通过notin实现)InsertintoBselect*fromAwhereidnotin(selectidfromB)SQL语句二:(通过notexists实现)InsertintoBselect*fromAanotexists(select*fromBbwherea.id=b.id)II