个数据库-|||-SQL操作题(共3小题,分值分别为10分15分15分共40分-|||-学生DBE
1个回答
关注
展开全部
个数据库-|||-SQL操作题(共3小题,分值分别为10分15分15分共40分-|||-学生DBE学生数据库结构如下:Student (学生)id (学生ID)name (学生姓名)age (学生年龄)gender (学生性别)major (学生专业)grade (学生年级)Course (课程)id (课程ID)name (课程名称)credit (学分)Score (成绩)id (成绩ID)student_id (学生ID)course_id (课程ID)score (成绩)
咨询记录 · 回答于2023-04-19
个数据库-|||-SQL操作题(共3小题,分值分别为10分15分15分共40分-|||-学生DBE
个数据库-|||-SQL操作题(共3小题,分值分别为10分15分15分共40分-|||-学生DBE学生数据库结构如下:Student (学生)id (学生ID)name (学生姓名)age (学生年龄)gender (学生性别)major (学生专业)grade (学生年级)Course (课程)id (课程ID)name (课程名称)credit (学分)Score (成绩)id (成绩ID)student_id (学生ID)course_id (课程ID)score (成绩)
查询选修了课程编号为1的学生的姓名和成绩。SELECT s.name, sc.score FROM Student s INNER JOIN Score sc ON s.id = sc.student_id WHERE sc.course_id = 1; 查询每个专业的平均年龄和平均成绩(只查询有成绩的专业)。SELECT s.major, AVG(s.age) AS avg_age, AVG(sc.score) AS avg_score FROM Student s INNER JOIN Score sc ON s.id = sc.student_id GROUP BY s.major HAVING AVG(sc.score) IS NOT NULL; 查询选修了所有课程的学生的姓名和年龄。SELECT s.name, s.age FROM Student s WHERE NOT EXISTS ( SELECT c.id FROM Course c WHERE NOT EXISTS ( SELECT sc.id FROM Score sc WHERE sc.stu
根据题目要求写出相应的SQL操作命令,数据库处于打开状态。(注:学号、姓名、性别为字符型,其余为整数型)学号 姓名 性别 年龄 英语 计算机 总分 10101 李 丽 16 90 100 10102 刘花花 女 15 100 58 11201 林三木 56 99 男1711202 张森 70 100 161、查询课目成绩有低于60分的学生姓名。2、找出年龄小于张森年龄学生的姓名、学号及性别。
1、SELECT 姓名 FROM 表名 WHERE 英语<60 OR 计算机<60;2、SELECT 学号, 姓名, 性别 FROM 表名 WHERE 年龄<(SELECT 年龄 FROM 表名 WHERE 姓名='张森');
使用 SQL 命令完成操作。有DBF 关系模式如下:学生(学号(C、6),姓名(C、8),班级(C、6),年龄INT)。课程(课程名(C、30)课程号(C、6)学分INT)成绩(学号(C、6),课程号(C、6)成绩INT)1.查询选修了《计算机操作》,成绩在60分以下的学生姓名2.统计各班人数。3.找出年龄小于 23岁的同于4.查询名字中带有“辉”字的同学姓名。SCHOOL5、学生表中插入一条记录“201113,王明,7 班,26’6、使选修了大学英语的同学成绩提高 10分。7、学生表中添加一个字段名为“系别”数据类型:字符型8、修改学生表“姓名”字段,将数据长度改为309.统计选修课程超过2门的学生学号。1210.删除“5”号课的选课纪录。
SELECT 学生.姓名 FROM 学生, 成绩, 课程 WHERE 学生.学号 = 成绩.学号 AND 成绩.课程号 = 课程.课程号 AND 课程.课程名 = '计算机操作' AND 成绩.成绩 < 60;SELECT 班级, COUNT(*) FROM 学生 GROUP BY 班级;SELECT * FROM 学生 WHERE 年龄 < 23;SELECT 姓名 FROM 学生 WHERE 姓名 LIKE '%辉%';INSERT INTO 学生 (学号, 姓名, 班级, 年龄) VALUES ('201113', '王明', '7班', 26);UPDATE 成绩 SET 成绩 = 成绩 + 10 WHERE 学号 IN (SELECT 学号 FROM 成绩 WHERE 课程号 = (SELECT 课程号 FROM 课程 WHERE 课程名 = '大学英语'));ALTER TABLE 学生 ADD COLUMN 系别 VARCHAR(20);ALTER TABLE 学生 MODIFY COLUMN 姓名 VARCHAR(30);
SELECT 学号 FROM 成绩 GROUP BY 学号 HAVING COUNT(*) > 2;DELETE FROM 成绩 WHERE 课程号 = '5';
六、设某一数据库有四个表:学生表Student,课程表Course,成绩表Score,教师表Teacher。Student(Sno,Sname,Ssex,Sbirthday,Class) Course(Cno, Cname,Tno)Score(Sno,Cno, Degree Teacher(Tno,TnameTsex,Tbirthday,Pro,Depart)11.查询Student表中的所有记录的Sname、Ssex和Class列(要求对列重命名)。12.查询Score表中成绩在60到90之间的所有记录并按课程号升序排序,同一课程按成绩从高到低排序。13.查询 Student 表中与“张三”同班的女同学记录。14.查询考试成绩不及格的同学的姓名,不及格的课程及成绩。15.查询每门课的课程名及平均分和最高分、最低分。
SELECT Sname AS 姓名, Ssex AS 性别, Class AS 班级 FROM StudentSELECT Score.Sno, Score.Cno, Degree FROM ScoreWHERE Degree BETWEEN 60 AND 90ORDER BY Score.Cno ASC, Degree DESCSELECT * FROM StudentWHERE Class = (SELECT Class FROM Student WHERE Sname = '张三')AND Ssex = '女'
SELECT Student.Sname, Course.Cname, Score.Degree FROM Student, Course, ScoreWHERE Student.Sno = Score.Sno AND Course.Cno = Score.Cno AND Score.Degree < 60SELECT Course.Cname, AVG(Score.Degree) AS 平均分, MAX(Score.Degree) AS 最高分, MIN(Score.Degree) AS 最低分 FROM Course, ScoreWHERE Course.Cno = Score.CnoGROUP BY Course.Cname
六、设有一个S-T数据库,包括STUDENTS,COURSES,REPORTS三个关系模式:学生表STUDENTS(学号SNO,姓名SNAME,生日SBIRTH性别SSEX,所在系SDEPT);课程表COURSES(课程号CNO课程名CNAME,先行课PRECNO学分CREDITS):学生选课表REPORTS(学号SNO课程号CNO成绩GRADE)。试用SQL语言完成如下操作:(1)按如下要求创建REPORTS 表:表名 列名 数据类型 宽度 约束 REPORTS SNO CNO VARCHAR VARCHAR 20 主码 外码 外码 3GRADE INT 取值在0~100之间 (2)将CS系学号为S17的学生张立(生日98-10-16)的记录录入STUDENTS表。(3)将刘晨选修C03号课程的记录从REPORTS表中删除。(4)将生日在1990年7月1日以前的学生的SDEPT字段置为空值。(5)创建SG视图,查询平均分在90分以上的学生学号。
(1)创建REPORTS表的SQL语句:CREATE TABLE REPORTS (SNO VARCHAR(20) NOT NULL,CNO VARCHAR(20) NOT NULL,GRADE INT CHECK (GRADE >= 0 AND GRADE <= 100),PRIMARY KEY (SNO, CNO),FOREIGN KEY (SNO) REFERENCES STUDENTS (SNO),FOREIGN KEY (CNO) REFERENCES COURSES (CNO));(2)将CS系学号为S17的学生张立(生日98-10-16)的记录录入STUDENTS表的SQL语句:INSERT INTO STUDENTS (SNO, SNAME, SBIRTH, SSEX, SDEPT)VALUES ('S17', '张立', '1998-10-16', '男', 'CS');(3)将刘晨选修C03号课程的记录从REPORTS表中删除的SQL语句:DELETE FROM REPORTSWHERE SNO = 'S05' AND CNO
(4)将生日在1990年7月1日以前的学生的SDEPT字段置为空值的SQL语句:UPDATE STUDENTSSET SDEPT = NULLWHERE SBIRTH '1990-07-01';(5)创建SG视图,查询平均分在90分以上的学生学号的SQL语句:CREATE VIEW SG ASSELECT SNOFROM REPORTSGROUP BY SNOHAVING AVG(GRADE) > 90;
冲刺04数据表数据来自四个表,分别是学生-成绩课程老师,此处列出四个表的字段与关联图StudentsC Course Sid Sid Cld Teacher Sname Cld Cname Tid Sage score TId Tname Ssex创建表及插入数据学生表Student1 create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssexvarchar(1e));insert into Student values(01’,"赵雷’,"1990-01-01’,"男"); insert into Student values('e2’,"钱电’,'1990-12-21’,"男”); insert into Student values(e3’,"孙风’,"1990-12-2日’,"男") insert into Student values('e4”,'李云’,'1990-12-e6”,"男");6 insert into Studentvalues('e5’,'周梅
’,'1991-12-01’,"女"); insert into Student values('e6’,'吴兰’,'1992-01-01’,"女"); insert into Student values('e7’,'郑竹’,'1989-01-01’,"女"); insert into Student values('e8’,'王菊’,'1990-01-01’,"女");
成绩表Score1 create table Score(Sid varchar(10),Cid varchar(10),score int);2 insert into Score values('e1’,'01’,'100’); insert into Score values('e1’,'02’,'90’); insert into Score values('e1’,'03’,'80’); insert into Score values('e2’,'01’,'70’); insert into Score values('e2’,'02’,'80’); insert into Score values('e2’,'03’,'90’); insert into Score values('e3’,'01’,'80’); insert into Score values('e3’,'02’,'80’); insert into Score values('e3’,'03’,'80’); insert into Score values('e4’,'01’,'50’); ins
values('e4’,'02’,'30’); insert into Score values('e4’,'03’,'20’); insert into Score values('e5’,'01’,'76’); insert into Score values('e5’,'02’,'87’); insert into Score values('e6’,'01’,'31’); insert into Score values('e6’,'03’,'34’); insert into Score values('e7’,'02’,'89’); insert into Score values('e7’,'03’,'98’); insert into Score values('e8’,'01’,'67’); insert into Score values('e8’,'02’,'68’); insert into Score values('e8’,'03’,'70’);课程表Course1 create table Course(CId varchar(10),Cname v
课程表Course1 create table Course(CId varchar(10),Cname varchar(10),TId varchar(10));2 insert into Course values('01’,'语文’,'01’); insert into Course values('02’,'数学’,'02’); insert into Course values('03’,'英语’,'03’);老师表Teacher1 create table Teacher(TId varchar(10),Tname varchar(10));2 insert into Teacher values('01’,'张三’); insert into Teacher values('02’,'李四’); insert into Teacher values('03’,'王五’);
关联查询1.查询"01"课程比"02"课程成绩高的所有学生的学号select a.Sid from Score a,Score b where a.Cid='01' and b.Cid='02' and a.score>b.score and a.Sid=b.Sid;2.查询平均成绩大于等于85分的所有学生的学号、姓名和平均成绩select a.Sid,a.Sname,avg(b.score) as avg_score from Student a,Score b where a.Sid=b.Sid group by a.Sid,a.Sname having avg(b.score)>=85;3.查询所有学生的课程及分数情况(存在即输出,不存在即输出null)select a.Sid,a.Sname,b.Cid,score from Student a left join Score b on a.Sid=b.Sid;4.查询任何一门课程成绩在70分以上的所有学生的姓名、性别、年龄select distinct a.Sname,a.Ssex,a.Sage from
5.查询不及格的课程(少于60分)的数量select count(*) from Score where score80;7.求每门课程的平均成绩,结果按平均成绩从高到低排列,平均成绩相同时,按课程编号顺序排列select Cid,avg(score) as avg_score from Score group by Cid order by avg_score desc,Cid;