您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > MySQL学习之数据库基本操作篇
实验一:创建并使用一个数据库。实验背景:把MySQL安装在Ubuntulinux上之后,我们的老师和学生们仍然不能直接使用MySQL登记或查看学生的信息。MySQL是关系数据库的一种,关系数据库的数据在逻辑上是以二维表的形式组织起来的。所以我们要先建立数据库和表。实验目的:掌握在MySQL中创建数据库,创建表。设置主键,设置字段默认值以及约束的方法。实验分析:1)使用MySQL的命令创建一个数据库。2)使用这个新建的数据库。3)在这个数据库中创建表并设置表中字段的属性。注意:MySQL的命令通常由SQL语句组成,命令的结尾以分号结束。(有些例外不需要加分号,例如退出的命令exit)说明:使用MySQL的连接命令连接到MySQL,即进入了MySQL的客户端。客户端提示符:mysql表示准备好接受一条新命令。-为等待多行命令的下一行。’为等待下一行,收集以单引号开始的字符串。”为等待下一行,收集以双引号开始的字符串。如果想取消之前输入命令的执行,打入\c取消命令的执行。注:此手册中用到的SQL语句语法可参考《SQL学习手册》实验步骤:步骤一:新建数据库和表。1)打开终端,使用root用户连接上MySQL。使用命令:mysql–uroot–p2)新建一个数据库,名为student_management。使用命令:createdatabasestudent_management;3)查看现在MySQL中存在的数据库。使用命令:showdatabases;4)使用新创建的student_management数据库。使用命令:usestudent_management;5)查看student_management数据库中的表。使用命令:showtables;6)新建一个记录学生信息的表(student_info)。包含的字段有:学号(stu_id)、姓名(name)、性别(sex)、班级(class)。使用的命令:createtablestudent_info(stu_idint,namevarchar(8),sexvarchar(4),classvarchar(16));7)查看student_info这个表的结构。使用命令:descstudent_info;步骤二:设置表的主键、默认值及约束。我们之前创建的student_info表中,字段的属性并不完整。我们只是设定了字段的数据类型,字段还可以有更多的属性。比如:字段是否可以为空,是否唯一,是否为主键,默认值。1)在student_management数据库中新建教师信息表(teacher_info)。包含的字段有:教师号(tea_id)、姓名(name)、性别(sex)、入职时间(join_time)、民族(nationality)。教师号为主键,具有非空和唯一的属性。性别只有男或女两种选择,所以使用check约束。民族默认为汉族。使用命令:createtableteacher_info(tea_idintprimarykey,namevarchar(8),sexvarchar(4)check(sex=’男’orsex=’女’),join_timedate,nationalityvarchar(8)default’汉族’)2)查看教师信息表的结构。使用命令:desctea_info;扩展练习:1)在数据库student_management中新建课程信息表(course_info)要求包含以下字段:课程编号(course_id)、课程名称(course_name)其中课程编号为主键。参考语句:createtablecourse_info(course_idint,course_namevarchar(20),primarykeycourse_id);2)在数据库student_management中新建学生成绩表(student_score)要求包含以下字段:学号(stu_id)、课程编号(course_id)、成绩(score)其中主键为学号和课程编号两个字段。参考语句:createtablestudent_score(stu_idint,course_idint,scorefloat,primarykey(stu_id,couse_id));实验二:对数据库的数据操作实验背景:在MySQL中创建好了数据库及表。软件学院的辅导员就可以往学生信息表中插入本班学生的信息。辅导员在需要的时候也可以修改或删除学生信息表中的数据。实验目的:掌握向数据库中插入记录、更新记录、删除记录的方法。实验步骤:步骤一:向学生信息表(student_info)中插入学生的信息。1)打开终端,使用assistant用户连接上数据库,并使用student_management数据库。注:assistant用户为《MySQL学习手册之linux下安装配置篇》中创建的用户,是辅导员使用的用户。2)向学生信息表中插入数据。使用命令:insertintostudent_infovalues(20080201,’张帅’,’男’,’计算机软件’);3)重复上一步操作,插入一部分学生信息的数据。步骤二:修改学生信息表(student_info)中某学生的信息。因为王青同学中途更换了专业,由计算机网络改为了计算机软件。在我们的数据库中也需要更改王青同学的信息。使用命令:updatestudent_infosetclass=’计算机软件’wherename=’王青’;步骤三:删除某学生的信息。张玲同学因为种种原因退学了,在我们的数据库中需要删除张玲同学的信息。使用命令:deletefromstudent_infowherename=’张玲’;扩展练习:向实验一的扩展练习中所创建的两个表course_info和student_score内插入数据。注意:插入数据的格式可参考如下。数据可以自己定,但是student_score表中的stu_id和course_id两个字段中的数据必须要和student_info表和course_info表中的数据对应。实验三:查询数据:实验背景:学生的个人信息和成绩已经登记在数据库中了。现在就可以使用学生(student)用户连接到MySQL查询学生的个人信息和成绩了。实验目的:掌握:单表查询、分组查询、联合查询的方法。实验分析:1)单表查询。仅在一个表中查询,将查询的数据按某种方式排序。2)分组查询。将数据分组查询。3)联合查询。将相关的几个表通过某些关系连接起来,查询我们需要的数据。实验步骤:步骤一:单表查询。1)在终端中使用student用户连接到数据库。使用命令:mysql–ustudent注:student用户为《MySQL学习之linux下安装配置篇》中创建的用户,是学生使用的用户。2)切换到student_management数据库。使用命令:usestudent_management;3)查询所有学生的个人信息,并按照学号排序。使用命令:select*fromstudent_infoorderbystu_id;4)查询李飞同学的学号和所在的班级。使用命令:selectstu_id,classfromstudent_infowherename=’李飞’;5)查询学生信息表中的记录数。使用命令:selectcount(*)fromstudent_info;步骤二:分组查询。查询学生信息表中各班男女学生的人数。使用命令:selectclass,sex,count(*)fromstudent_infogroupbyclass,sex;步骤三:联合查询。1)查询指定班级,课程的平均分。将学生信息表,课程信息表和成绩表联合。查询计算机软件班的大学英语这门课的平均成绩。使用avg函数计算平均分。使用命令:selectavg(c.score)as‘平均分’fromstudent_infoa,course_infob,student_scorecwherea.stu_id=c.stu_idandb.course_id=c.course_idandb.course_name=’大学英语’anda.class=’计算机软件’;as的作用是给字段起别名,显示的时候含义更明确。2)查询各门课程的平均分。把课程信息表和成绩表通过课程编号(course_id)联合,按课程编号和课程名称分组,并使用avg函数计算出来平均分。使用命令:selecta.course_name,avg(score)fromcourse_infoa,student_scorebwherea.course_id=b.course_idgroupbya.course_id,a.course_name;3)查询大学英语的最高分和最低分。将课程信息表和成绩表通过课程编号联合,查询出大学英语的最高分和最低分。使用命令:selectmax(score)as‘最高分’,min(score)as‘最低分’fromcourse_infoa,student_scorecwherea.course_id=c.course_idanda.course_name=’大学英语’;扩展练习:1)查询是否有名叫王青的女生。参考命令:select*fromstudent_infowherename=’王青’andsex=’女’;2)查询男生的总数。参考命令:selectcount(*)as‘男生总数’fromstudent_infowheresex=’男’;3)查询张帅的高等数学成绩。参考命令:selectname,scorefromstudent_infoa,student_scoreb,course_infocwherea.stu_id=b.stu_idandb.course_id=c.course_idanda.name=’张帅’andc.course_name=’高等数学’;实验四:修改表的结构。实验背景:在我们使用数据库的过程中,往往会因为某些原因去修改数据库中表的结构。比如:学生信息表中记录的信息太少,我们希望增加一个记录学生手机号码的字段(tel_num)等等。我们可以使用一些修改表结构的SQL语句来实现修改。实验目的:掌握:使用SQL语句在表中增加字段、修改字段名称、修改字段属性和删除字段的方法。实验步骤:步骤一:添加字段1)使用root用户连接MySQL。2)使用student_management数据库。3)在学生信息表(student_info)中添加一个字段,记录学生的电话号码(tel_num)。使用命令:altertablestudent_infoaddtel_numint(11);4)查看效果。使用命令descstudent_info;步骤二:修改字段名称我们发现在学生信息表中,学生的姓名(name)这个字段容易同别的表中的字段混淆。为了表示的更加明确我们希望将name改为stu_name。1)使用命令:altertablestudent_infochangenamestu_namevarchar(8);2)查看效果。使用命令:descstudent_info;步骤三:修改字段属性在学生信息表中,学号stu_id这个字段应该是这个表的主键。但是我们在建表时并没有把这个字段设为主键。现在我们就可以修改stu_id的属性,让他成为主键。1)使用命令:altertablestudent_infomodifystu_idintprimarykey;2)查看效果。使用命令:descstudent_info;步骤四:删除字段1)某些时候我们希望删除某一字段,比如现在我们想在学生信息表中将电话这个字段删除。可以使用命令:altertablestudent_infodropcolumntel_num;2)查看效果。使用命令:descstudent_info;注意:删除字段,此字段所存储的数据会丢失。所以删除字段时一定要慎用,以免造成重要数据丢失的损失。扩展练习1)向课程信息表中添加一个任课老师姓名的字段name。参考命令
本文标题:MySQL学习之数据库基本操作篇
链接地址:https://www.777doc.com/doc-4375092 .html