1实验十四使用SQL语言(一)一、实验目的与要求1.复习创建数据库、导出数据库和数据表的方法。2.掌握导入数据表的方法。3.掌握使用SQL语言的方法。二、实验内容1.创建数据库,并导入数据表【任务1】使用MySQL-front软件创建数据库studb,然后导入数据表。步骤:(1)连接MySQL服务器方法:把教师机共享的“实验14数据表”文件夹复制到桌面上,在phpStudy界面的“MySQL管理器”中选择MySQL-front,打开该软件,然后选择localhost,点击“打开”按钮。如下图所示:(2)创建一个数据库studb,并采用简体中文编码格式。方法:在左侧点击“localhost”,然后单击“新建数据库”按钮,在“新建数据库”的文本框中,输入名称:studb,选择字符集:gbk,字符集校对:gbk_Chinese_ci(即简体中文),然后单击“确定”按钮。如下图所示:当添加数据库studb完毕之后,在左侧列表中会显示该数据库,如下图所示:2(3)在数据库“studb”中导入3张数据表student、course和sc。方法:在左侧列表中选择数据库“studb”,右键单击它,选择“输入-SQL文件夹”,然后选择数据表文件student.sql,然后单击“打开”按钮。如下图所示:按照类似的方法,在数据库“studb”中导入其他2张数据表course和sc。导入完毕后,会显示出数据库“studb”中所有的数据表,如下图所示:3如果无法显示出数据表,则可以先关闭MySQL-front软件,再重新打开该软件,即可正常显示出所有数据表。这3张表中的字段如下所示:数据表student,用于存放学生信息,有5个字段,具体如下:字段名数据类型长度说明备注snochar8主键(主索引),不允许为空学号snamevarchar10不允许为空姓名ssexchar1不允许为空,默认值:男性别sbirthdate不允许为空,默认值:2000-01-01出生日期sdeptvarchar20不允许为空系名数据表course,用于存放课程信息,有2个字段,具体如下:字段名数据类型长度说明备注courseidchar8主键、不允许为空课程号cnamevarchar20不允许为空课程名数据表sc,用于存放学生考试成绩信息,有3个字段,具体如下:字段名数据类型长度说明备注snochar8主键、不允许为空学号courseidchar8主键、不允许为空课程号gradetinyint3不允许为空、默认值:0考试成绩2.使用SQL语言【任务2】使用SQL语言,完成数据表的添加记录、更新记录、删除记录、查询数据。请同学们记录任务2中各题对应的SQL语句,并保存select查询的结果,填入Word文档“实验14实验报告.doc”中。注意:一个SQL语句使用分号(;)结尾,否则mysql认为语句没有输入完。4SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)。步骤:(1)使用insert语句在数据表student中添加一条记录,其中学号sno:16010005,姓名sname:张亮,出生日期sbirth:2000-01-01,性别ssex:男,系别sdept:计算机。Insert语句的语法:INSERT[INTO]表名[列名]VALUES值列表说明:如果表名后面没有写字段名,则默认是向所有的字段添加值,字符串值应该用’’或引号括起来。方法:在左侧选择“studb”,然后单击“SQL编辑器”,删除原来的代码,输入下图所示的代码,然后单击“运行”按钮。如下图所示:请把SQL语句填到实验报告里。如果插入记录成功,则在左侧选择“student”,然后单击“数据浏览器”,再单击“刷新”按钮后,可以显示出3条记录,如下图所示:(2)使用insert语句在数据表sc中添加一条记录,其中学号sno:16010005,课程号courseid:01000001,考试成绩grade:75。方法:与上例类似,请自己完成SQL语句。(3)使用update语句将student表中的所有学生名称sname为“张亮”的改为“张光亮”。update语句的语法:UPDATE表名SET列名=更新值[WHERE更新条件]说明:where子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据。方法:单击“SQL编辑器”,输入下图所示的代码,然后单击“运行”按钮。如下图所示:5如果修改记录成功,则在左侧选择“student”,然后单击“数据浏览器”,再单击“刷新”按钮后,可以显示出3条记录,此时“张亮”已改成“张光亮”,如下图所示:请把SQL语句填到实验报告里。(4)使用update语句将sc表中所有考试成绩grade小于等于85分的记录中的考试成绩grade各加5分。方法:与上例类似,请自己完成SQL语句。(5)使用delete语句删除course表中课程名cname是“网页设计”的记录。delete语句的语法:DELETEFROM表名[WHERE删除条件]说明:此语句删除表中的行,如果不带where子句,则删除整个表中的所有记录,但是表不被删除。方法:单击“SQL编辑器”,输入下图所示的代码,然后单击“运行”按钮。如下图所示:请把SQL语句填到实验报告里。(6)使用delete语句删除sc表中课程号courseid是“01000002”的记录。方法:与上例类似,请自己完成SQL语句。(7)使用select语句从student表中查询所有学生的各种信息。SELECT查询语句的语法:6SELECT[DISTINCT|ALL]列名1[,列名2,...]FROM表名1[,表名2,...][WHERE条件表达式][GROUPBY列名1[HAVING条件表达式][ORDERBY列名2[ASC|DESC],...]说明:from子句:指定查询数据的表where子句:查询的数据应满足什么条件groupby子句:按“列名1”的值进行分组having子句:对分组后的结果进行条件限制orderby子句:对查询结果结果按“列名2”排序,选项asc升序(默认)或desc降序。方法:单击“SQL编辑器”,输入下图所示的代码,然后单击“运行”按钮,此时会在下面显示出查询结果。如下图所示:请把SQL语句填到实验报告里,并记录查询结果(截图)。(8)使用select语句查询所有学生的学号sno与姓名sname。方法:与上例类似,请自己完成SQL语句,并记录查询结果。(9)使用select语句查询所有学生的学号sno与姓名sname,分别用中文“学号”和“姓名”显示列名。方法:单击“SQL编辑器”,输入下图所示的代码,然后单击“运行”按钮。如下图所示:请把SQL语句填到实验报告里,并记录查询结果。(10)使用select语句查询选修了课程号courseid为“01000001”的学生的学号sno。方法:与上例类似,请自己完成SQL语句。在查询语句中常用的集函数:计数函数:count(列名)计算元素的个数求和函数:sum(列名)对某一列的值求和,但属性必须是整型计算平均值:avg(列名)对某一列的值计算平均值求最大值:max(列名)找出某一列的最大值7求最小值:min(列名)找出某一列的最小值(11)使用select语句查询学生总数。方法:单击“SQL编辑器”,输入下图所示的代码,然后单击“运行”按钮。如下图所示:请把SQL语句填到实验报告里,并记录查询结果。(12)使用select语句查询选修了课程号courseid为“01000001”的学生人数。方法:与上例类似,请自己完成SQL语句,并记录查询结果。(13)使用select语句查询课程号courseid为“01000001”的学生平均成绩。方法:与上例类似,请自己完成SQL语句,并记录查询结果。(14)使用select语句查询课程号courseid为“01000001”的学生考试成绩的最高分,并用中文“最高分”显示列名。方法:与上例类似,请自己完成SQL语句,并记录查询结果。3.导出数据表【任务3】导出数据库studb中的3张数据表,分别命名为student.sql、course.sql和sc.sql,存放在桌面上。步骤:(1)导出数据表student,存放在桌面上,名称为student.sql。方法:在左侧选择数据库studb中的数据表student,单击右键,选择“输出-SQL文件”,选择桌面,文件名为student.sql,单击“保存”按钮,然后再单击“运行”按钮。如下图所示:(2)导出其他2张数据表course.sql和sc.sql,方法与上一步类似。4.导出数据库【任务4】导出数据库studb,命名为studb.sql,存放在桌面上。步骤:(1)导出数据库studb,存放在桌面上,名称为studb.sql。方法:在左侧选择数据库studb,单击右键,选择“输出-SQL文件”,选择保存在桌面上,名称为8studb.sql,单击“保存”按钮,然后再单击“运行”按钮。如下图所示:上交实验内容:完成实验后,保存“实验14实验报告.doc”,并重命名为“实验14实验报告-学号末2位+姓名.doc”(例如:实验11实验报告-01张三)。在桌面上新建一个文件夹“学号末2位+姓名”,然后将“实验14实验报告-学号末2位+姓名.doc、student.sql、course.sql、sc.sql、studb.sql”都复制到“学号末2位+姓名”文件夹中,最后将自己的“学号末2位+姓名”文件夹上交到教师机指定文件夹中。