上一周的作业中,我们已经通过编译和二进制两种方式来进行MySQL和MariaDB数据库的安装,本周来看一下如何使用数据库,本篇主要是通过导入hellodb.sql数据库,进行指定内容的查看。

    因笔者上周实验的内容已经清掉,此次直接通过yum安装了MariaDB的10.3.28版本,刚好补充一下设置登录后密*码的方法。开启服务后登录数据库,执行 ​update mysql.user set password=password("centos") where user='root';​ 命令设置root登录密*码,因为是实验,笔者为了方便就设置的比较简单,同时执行 ​flush privileges;​ 命令更新权限,退出后,如果不输入密*码是无法登录的​(如下图)​。

导入hellodb.sql生成数据库并完成相关练习_mysql

    执行 ​mysql -uroot -p123456 < hellodb_innodb.sql ​命令导入数据库,登录数据库后,执行 ​show databases; ​命令可查看已生成hellodb数据库。如果要使用哪个数据库,执行 ​use 数据库名称;​ 命令可切换过去;如果想查看当前数据库中有哪些表,执行 ​show tables; ​命令;如果想查看某一个表中的所有信息,执行 ​select * from 表名;​ 即可​(如下图)​。

导入hellodb.sql生成数据库并完成相关练习_db数据库_02

导入hellodb.sql生成数据库并完成相关练习_数据库_03

    在此基础上,我们来完成一些小练习:

  1. 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄

    SQL语言相对比较友好,接近于正常的英语语法,上面说到了查看某一个表的信息要用select,因为是筛选出名字和年龄,直接将*号替换成age和name,中间用逗号隔开,同时大小写可随意;限制条件部分使用where,具体操作如下:

导入hellodb.sql生成数据库并完成相关练习_数据库_04


  1. 以ClassID为分组依据,显示每组的平均年龄

    平均值用avg表示,平均年龄即avg(age),因为要对应起来,所以筛选出的信息部分要加上classid。同时是以ClassID为分组依据,因此要加上group by classid,根据指定的条件把查询结果进行"分组"以用于做"聚合"运算​(如下图)​。

导入hellodb.sql生成数据库并完成相关练习_数据库_05


  1. 显示第2题中平均年龄大于30的分组及平均年龄

    上一题我们已经通过聚合运算得到了平均年龄,要得出平均年龄大于30的部分,需要用到having,having可以对分组聚合运算后的结果指定过滤条件​(如下图)​。

导入hellodb.sql生成数据库并完成相关练习_db数据库_06


  1. 显示以L开头的名字的同学的信息

    这一题涉及到模糊查询,要用到like,如果后面跟的是任意单个字符,要接上“_”,如果跟的是任意长度的任意字符,要接上“%”,结合本题需跟上“%”,具体操作如下:

导入hellodb.sql生成数据库并完成相关练习_db数据库_07