1. 定义数据库和表:
1) 创建学生-课程数据库student_course。
进入mysql命令行(两种方式:Navicat与Dos界面),使用SQL命令创建数据库student_course
2) 按照学生-课程数据库中的表结构,创建学生表Student、课程表Course和学生选课表SC,使用新创建的数据库,并在数据库student_course 创建学生表Student、课程表Course和学生选课表SC:
显示表结构:
插入数据:
查询Student表中数据:
利用Insert语句进行数据的插入。
- Student表插入一个新学生元祖(学号:201215121,姓名:李勇,性别:男,年龄:20岁,所在系:CS)。
注意:指明表属性,因此赋值要与指明的表属性相对应
- 向Student表插入一个新学生元祖(学号:201215122,姓名:刘晨,性别:女,年龄:19岁,所在系:CS)。
注意:没有指明表属性,因此列的值顺序要与定义表Student时的属性顺序相同
- 向Student表插入一个新学生元祖(学号:201215123,姓名:王敏,性别:女,所在系:MA,年龄:18岁)。
注意:指明表属性,且顺序与表定义的属性顺序不一值,赋值要与指明的表属性顺序一致
- 向Student表插入一个新学生元祖(所在系:IS,年龄:19岁,学号:201215125,姓名:张立,性别:男),参考例3.69。
注意:指明表属性,且顺序与表定义的属性顺序不一值,赋值要与指明的表属性顺序一致
- 对每一个系,求学生的平均年龄,并把结果存入数据库中,参考例3.72。
需要创建一个新表,用来存放系别与平均年龄:
接着对Student表按系分组求平均年龄,并将系别和平均年龄存入新表
注意:利用子查询插入数据,插入的是一组数据
修改先行课Cpno
给SC表插入数据
- 修改数据:
- 将学生201215121的年龄改为22岁,参考例3.73。
查询修改之前的表数据:
修改:
查询修改之后的表数据:
- 将所有学生的年龄增加1岁,参考例3.74。
查询修改之前的表数据:
修改:
查询修改之后的表数据:
- 将计算机科学系全体学生的成绩置零,参考例3.75。
查询修改前计算机科学系学生的成绩(利用连接查询):
修改(带子查询的修改):
查询修改后的计算机科学系学生成绩(利用连接查询):
- 思考与练习:将数学课程的学分改为3,参考例3.73。
修改前查询课程表信息:
修改:
修改后查询课程信息:
- 思考与练习:将所有学生的成绩设置为90,参考例3.74。
修改前查看选课表成绩信息:
修改:
修改后查看成绩信息:
- 思考与练习:将所有男生的成绩加1分,参考例3.75。
查询所有男生的成绩(利用连接查询):
修改:
查询修改后的男生的成绩(利用连接查询):
- 删除数据:
- 删除学号为201215125的学生记录,参考例3.76。
查询学生记录:
删除:
查询删除后的学生记录:
- 删除计算机科学系所有学生的选课记录,参考例3.77。
- 思考与练习:删除课程号为1的课程信息,参考例3.76。
查询删除之前的课程记录:
删除:
- 注意:删除失败,显示外码约束错误,因为1号课程的课程号Cno被其他的先行课引用,所以删除1号课程之前需要删除引用它的3号课程