zoukankan      html  css  js  c++  java
  • SQL强化练习(面试与学习必备)

    SQL强化练习(面试与学习必备)

    一、经典选课题A

    1.1、请同时使用GUI手动与SQL指令的形式创建数据库、表并添加数据。

    题目:设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。

    1-1数据库的表结构

    表(一)Student (学生表)                        

    属性名

    数据类型

    可否为空

    含 义

    Sno

    Char(3)

    学号(主码)

    Sname

    Char(8)

    学生姓名

    Ssex

    Char(2)

    学生性别

    Sbirthday

    datetime

    学生出生年月

    Class

    Char(5)

    学生所在班级

    表(二)Course(课程表)

    属性名

    数据类型

    可否为空

    含 义

    Cno

    Char(5)

    课程号(主码)

    Cname

    Varchar(10)

    课程名称

    Tno

    Char(3)

    教工编号(外码)

    表(三)Score(成绩表)

    属性名

    数据类型

    可否为空

    含 义

    Sno

    Char(3)

    学号(外码)

    Cno

    Char(5)

    课程号(外码)

    Degree

    Decimal(4,1)

    成绩

    主码:Sno+ Cno

    表(四)Teacher(教师表)

    属性名

    数据类型

    可否为空

    含 义

    Tno

    Char(3)

    教工编号(主码)

    Tname

    Char(4)

    教工姓名

    Tsex

    Char(2)

    教工性别

    Tbirthday

    datetime

    教工出生年月

    Prof

    Char(6)

    职称

    Depart

    Varchar(10)

    教工所在部门

    1-2数据库中的数据

    表(一)Student

    Sno

    Sname

    Ssex

    Sbirthday

    class

    108

    曾华

    1977-09-01

    95033

    105

    匡明

    1975-10-02

    95031

    107

    王丽

    1976-01-23

    95033

    101

    李军

    1976-02-20

    95033

    109

    王芳

    1975-02-10

    95031

    103

    陆君

    1974-06-03

    95031

    表(二)Course

    Cno

    Cname

    Tno

    3-105

    计算机导论

    825

    3-245

    操作系统

    804

    6-166

    数字电路

    856

    9-888

    高等数学

    831

    表(三)Score

    Sno

    Cno

    Degree

    103

    3-245

    86

    105

    3-245

    75

    109

    3-245

    68

    103

    3-105

    92

    105

    3-105

    88

    109

    3-105

    76

    101

    3-105

    64

    107

    3-105

    91

    108

    3-105

    78

    101

    6-166

    85

    107

    6-166

    79

    108

    6-166

    81

    表(四)Teacher

    Tno

    Tname

    Tsex

    Tbirthday

    Prof

    Depart

    804

    李诚

    1958-12-02

    副教授

    计算机系

    856

    张旭

    1969-03-12

    讲师

    电子工程系

    825

    王萍

    1972-05-05

    助教

    计算机系

    831

    刘冰

    1977-08-14

    助教

    电子工程系

    1.2、完成下列的查询,请保存sql与查询结果到word文档中

    复制代码
    1、 查询Student表中的所有记录的Sname、Ssex和Class列。
    
    2、 查询教师所有的单位即不重复的Depart列。
    
    3、查询Student表的所有记录。
    
    4、查询Score表中成绩在60到80之间的所有记录。
    
    5、查询Score表中成绩为85,86或88的记录。
    
    6、查询Student表中“95031”班或性别为“女”的同学记录。
    
    7、以Class降序查询Student表的所有记录。
    
    8、以Cno升序、Degree降序查询Score表的所有记录。
    
    9、查询“95031”班的学生人数。
    
    10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
    查询语句查询出一个或者一列结果,可以作为其他查询语句的参数来使用,就是子查询,就是查询的嵌套。
    
    11、查询每门课的平均成绩,要按照课程分组group by,然后求没门课平均avg
    
    12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
    Like模糊查询 3%以3开头 having只能跟在group by 后面
    
    13、查询分数大于70,小于90的Sno列。
    
    14、查询所有学生的Sname、Cno和Degree列。
    
    15、查询所有学生的Sno、Cname和Degree列。
    
    16、查询所有学生的Sname、Cname和Degree列。
    
    17、 查询“95033”班学生的平均分。
    
    18、假设使用如下命令建立了一个grade表:
    create table grade(low int(3),upp int(3),rank char(1))
    insert into grade values(90,100,’A’)
    insert into grade values(80,89,’B’)
    insert into grade values(70,79,’C’)
    insert into grade values(60,69,’D’)
    insert into grade values(0,59,’E’)
    现查询所有同学的Sno、Cno和rank列。
    
    19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
    
    20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。
    
    21、查询成绩高于学号为“109”、课程号为“3-105”的成m绩的所有记录。
    
    22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
    
    23、查询“张旭“教师任的学生成绩。
    
    24、查询选修某课程的同学人数多于5人的教师姓名。
    
    25、查询95033班和95031班全体学生的记录。
    
    26、 查询存在有85分以上成绩的课程Cno.
    
    27、查询出“计算机系“教师所教课程的成绩表。
    
    28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
    
    29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同
    
    30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree. ?
    
    31、 查询所有教师和同学的name、sex和birthday.
    
    32、查询所有“女”教师和“女”同学的name、sex和birthday.
    
    33、 查询成绩比该课程平均成绩低的同学的成绩表。
    
    34、查询所有任课教师的Tname和Depart.
    
    35 、查询所有未讲课的教师的Tname和Depart.
    
    36、查询至少有2名男生的班号。
    
    37.查询不姓王的同学信息
    
    38、查询Student表中每个学生的姓名和年龄。
    
    39、查询Student表中最大和最小的Sbirthday日期值。
    
    40、以班号和年龄从大到小的顺序查询Student表中的全部记录。
    
    41、查询“男”教师及其所上的课程。
    
    42、查询最高分同学的Sno、Cno和Degree列。
    
    45、查询所有选修“计算机导论”课程的“男”同学的成绩表。
    
    43、查询和“李军”同性别的所有同学的Sname.
    
    44、查询和“李军”同性别并同班的同学Sname.
    
    45、查询所有选修“计算机导论”课程的“男”同学的成绩表。
    复制代码

    二、答案与学习资料

    1.2答案  (密码是sql)(布置给学生的课后作业)

    MySQL基础学习

  • 相关阅读:
    Windows下Rails2.0.2最简安装教程
    xmpp with openfire之三 openfire扩展小试 整合现有系统用户
    母亲的电话
    郁闷……
    博弈
    长春下雪了
    监考
    sql把逗号分隔的字符串拆成临时表
    SQL语句使用大全。
    Left Join、Right Join、Inner Join的区别
  • 原文地址:https://www.cnblogs.com/qqfff/p/12405695.html
Copyright © 2011-2022 走看看