1. 定义数据库和表:
1) 创建学生-课程数据库student_course。
进入mysql命令行(两种方式:Navicat与Dos界面),使用SQL命令创建数据库student_course
2) 按照学生-课程数据库中的表结构,创建学生表Student、课程表Course和学生选课表SC。
使用新创建的数据库,并在数据库student_course内创建学生表Student、课程表Course和学生选课表SC:
显示表结构:
1、插入数据:
查询Student表中数据:
利用Insert语句进行数据的插入。
- Student表插入一个新学生元祖(学号:201215121,姓名:李勇,性别:男,年龄:20岁,所在系:CS)。
注意:指明表属性,因此赋值要与指明的表属性相对应
- 向Student表插入一个新学生元祖(学号:201215122,姓名:刘晨,性别:女,年龄:19岁,所在系:CS)。
注意:没有指明表属性,因此列的值顺序要与定义表Student时的属性顺序相同
- 向Student表插入一个新学生元祖(学号:201215123,姓名:王敏,性别:女,所在系:MA,年龄:18岁)。
注意:指明表属性,且顺序与表定义的属性顺序不一值,赋值要与指明的表属性顺序一致
- 向Student表插入一个新学生元祖(所在系:IS,年龄:19岁,学号:201215125,姓名:张立,性别:男)。
注意:指明表属性,且顺序与表定义的属性顺序不一值,赋值要与指明的表属性顺序一致
- 对每一个系,求学生的平均年龄,并把结果存入数据库中。
需要创建一个新表,用来存放系别与平均年龄:
接着对Student表按系分组求平均年龄,并将系别和平均年龄存入新表
注意:利用子查询插入数据,插入的是一组数据
- 思考与练习:选择合适的插入数据方法,向Course和SC表插入图3.2中的课程信息和选课信息。
注意:外码引用失败,因为Course自已引用自己的Cno为外码,插入第一个数据时,因为没有插入1号的先行课5号课程数据,因此引用5号课程时引用失败,因此报错。解决方法:插入数据时,先将先行课设置为空值null,后续再进行修改为正确的先行课序号。
修改先行课Cpno
给SC表插入数据
标题三 修改数据:
- 将学生201215121的年龄改为22岁。
查询修改之前的表数据:
修改:
查询修改之后的表数据:
- 将所有学生的年龄增加1岁。
查询修改之前的表数据:
修改:
查询修改之后的表数据:
- 将计算机科学系全体学生的成绩置零。
查询修改前计算机科学系学生的成绩(利用连接查询):
修改(带子查询的修改):
查询修改后的计算机科学系学生成绩(利用连接查询):
- 删除数据:
- 删除学号为201215125的学生记录。
查询学生记录:
删除:
查询删除后的学生记录:
- 删除计算机科学系所有学生的选课记录,参考例3.77。
- 导出与导入:
(可以从Navicat中导出导出,也可以从命令行中导入导出,这里介绍Navicat中的常用方法)
导出备份与还原备份
(1)导出备份
新建备份,Navicat中找到数据库student_course,点击备份出现备份界面,点击新建备份
出现新建备份窗口,点击备份
备份完成,出现Finished successfully,备份成功,点击“关闭”
出现备份文件
选中备份文件,鼠标右键选择复制,后面就可以将备份文件粘贴到U盘带走或其他地方进行保存!!!
(2)还原备份
新建数据库,注意数据库名称需要与之前创建的数据库名称一致:
选中连接,右键下拉单中点击刷新,出现新建的数据库:
在新建的数据库中点击备份,右边窗口中出现备份对象窗口,复制备份文件,在备份对象中右键选中粘贴,将备份文件粘贴到备份窗口中:
选中备份文件,然后点击还原备份:
出现还原备份窗口,点击还原:
出现Finished successfully,证明还原备份成功,点击关闭:
选中数据库“student_course”,右键出现菜单栏,点击刷新,查看表,出现之前创建的表: