数据库练习题一、用你的姓名的全拼新建一个数据库,用create语句在数据库中建立以下三张表学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)列名数据类型长度备注Snochar11设为关键字Snamechar20Ssexchar2其值只能为“男”或“女”,默认值为“男”SagesmallintSdeptchar20允许为空列名数据类型长度备注Cnochar4设为关键字CNamechar20Cpnochar4外码参照cno即foreignkey(Cpno)referencescourse(cno)Ccreditsmallint10列名数据类型长度备注Snochar11设为主码,外键引用,参照Student中的字段SnoCnochar4设为主码,外键引用,参照Course中的字段CnoGradesmallint(正确)二、仿照下面的格式用insert语句给三张表添加数据,要求学生表和选课表的记录至少要达到25条记录以上,课程表至少达到10条以上记录,可用本班级的学生姓名和所学课程为基本数据。(出错时请认真理解实体完整性、参照完整性、用户自定义的完整性)学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept200215121200215122200215123200515125李勇刘晨王敏张立男女女男20191819CSCSMAIS课程号Cno课程名Cname先行课Cpno学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64学号Sno课程号Cno成绩Grade200215121200215121200215121200215122200215122123239285889080三、用SQL语句完成下列单表查询1、查询全体学生的学号与姓名。2、查询全体学生的姓名、学号、所在系。3、查询全体学生的详细记录。4、查全体学生的姓名及其出生年份。(表达式)5、查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名;改变查询结果的列标题:使用列别名“姓名”替换Sname,“出生年份”作为所计算的列名。6、查询选修了课程的学生学号(即有选修记录)。7、查询计算机科学系全体学生的名单。8、查询所有年龄在20岁以下的学生姓名及其年龄。9、查询考试成绩有不及格的学生的学号。10、查询年龄在18~22岁(包括18岁和22岁)之间的学生的姓名、系别和年龄11、查询年龄不在20~23岁之间的学生姓名、系别和年龄12、查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。13、查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。14、查询学号为09102040203的学生的详细情况。15、查询所有姓“张”学生的姓名、学号和性别。16、查询姓“李”且全名为三个汉字的学生的姓名。17、查询名字中第2个字为“丽”字的学生的姓名和学号。18、查询所有不姓“陈”的学生姓名。19、查询DB_Design课程的课程号和学分。20、查询以DB_开头,且倒数第3个字符为i的课程的详细情况。SELECT*FROMCourseWHERECnameLIKE'DB\_%i__'ESCAPE'\'其中ESCAPE'\'表示“\”为换码字符21、某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。22、查所有有成绩的学生学号和课程号。23、查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。24、查询全体学生情况,查询结果按所在系号升序排列,同一系中的学生按年龄降序排列。25、查询学生总人数。SELECTCOUNT(*)FROMStudent;26、查询选修了数学课程的学生人数。27、计算1号课程的学生平均成绩。28、查询选修1号课程的学生最高分数。29、查询学号为200215121的学生选修课程的总学分数。30、求各个课程号及相应的选课人数。31、查询选修了3门以上课程的学生学号。