大家好,又见面了,我是你们的朋友全栈君。
一、上机内容
)DEFAULT CHARSET=UTF8; create table grade( s_id char(4) not null, c_id char(4) not null, g_score int , primary key(s_id,c_id) )default charset=utf8; 表1 student_info表结构 列名 数据类型 允许NULL值 主键 学号 char(4) 否 是 姓名 char(8) 否 否 性别 char(2) 是 否 出生日期 date 是 否 家族住址 varchar(50) 是 否 表2 curriculum表结构 列名 数据类型 允许NULL值 主键 课程编号 char(4) 否 是 课程名称 varchar(50) 是 否 学分 int 是 否
表3 grade表结构
列名 数据类型 允许NULL值 主键 学号 char(4) 否 是 课程编号 char(4) 否 是 分数 int 是 否
4.使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。 Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0001”,”张青平”,”男”,’2000-10-01’,”衡阳市东风路77号”);’ Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0002”,”刘东阳”,”男”,’1998-12-09’,”东阳市八一北路33号”); Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0003”,”马晓夏”,”女”,’1995-05-12’,”长岭市五一路763号”); Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0004”,”钱忠理”,”男”,’1994-09-23’,”滨海市洞庭大道279号”); Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0005”,”孙海洋”,”男”,’1995-04-03’,”长岛市解放路27号”); Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0006”,”郭小斌”,”男”,’1997-11-10’,”南山市红旗路113号”); Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0007”,”肖月玲”,”男”,’1996-12-07’,”东方市南京路11号”); Insert into student_info (s_id,s_name,s_sex,s_birthday,s_address) values (“0008”,”张玲珑”,”女”,’1997-12-24,”滨江市新建路97号”);
表4 student_info表的数据 学号 姓名 性别 出生日期 家族住址 0001 张青平 男 2000-10-01 衡阳市东风路77号 0002 刘东阳 男 1998-12-09 东阳市八一北路33号 0003 马晓夏 女 1995-05-12 长岭市五一路763号 0004 钱忠理 男 1994-09-23 滨海市洞庭大道279号 0005 孙海洋 男 1995-04-03 长岛市解放路27号 0006 郭小斌 男 1997-11-10 南山市红旗路113号 0007 肖月玲 女 1996-12-07 东方市南京路11号 0008 张玲珑 女 1997-12-24 滨江市新建路97号
表5 curriculum表的数据
课程编号 课程名称 学分 0001 计算机应用基础 2 0002 C语言程序设计 2 0003 数据库原理及应用 2 0004 英语 4 0005 高等数学 4 表6 grade表的数据 学号 课程编号 分数 0001 0001 80 0001 0002 91 0001 0003 88 0001 0004 85 0001 0005 77 0002 0001 73 0002 0002 68 0002 0003 80 0002 0004 79 0002 0005 73 0003 0001 84 0003 0002 92 0003 0003 81 0003 0004 82 0003 0005 75
5.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。 alter table curriculum modify “课程名称” varchar(50) null; update curriculum set “课程名称 =null; 6.使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。 Alter table grade modify grade demical(5,2); 7.使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。 Alter table student_info add(“备注” varchar(50)); 8.使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。 Create database studb; Use studb; Create table stu as select *from studentdb…student_info where 1=2; 9.使用SQL语句删除表stu中学号为0004的记录。 Delete from stu where 学号=’0004’; 10.使用SQL语句更新表stud中学号为0002的家庭住址为“滨江市新建路96号”。 update stud set address = ‘滨江市新建路96号’ where ID=0002; 11.删除表stud的“备注”列。 Alter table stud drop column ‘备注’; 12.删除表stud。 Drop table stud; 13.删除数据库studb。 Drop database studb; 二、实验思考
(3)查询每个学生所选课程的最高成绩,要求列出学号、姓名、最高成绩。 Select student.s_id,student.s_name,max(grade.g_score)最高成绩 from student s,grade g where s.s_id=g.s_id group by s.s_name; (4)使用左外连接查询每个学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。 Selcet student.s_id ,student.s_name,sun(g_score) 总成绩 from student s left join grade g on s.s_id=g.g_id group by s.s_id; (5)为grade表添加数据行:学号为0004、课程编号为0006、分数为76。 Insert into grade (s_id,c_id ,g_score) values (“0004”,”0006”,76); 使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。 Select c_id,c_name,count(*) 选修人数,from grade g right join curriculum c on g.c_id=c.c_id group by g.c_id; 二、实验思考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192179.html原文链接:https://javaforall.cn