目录
第1关:数据表结构修改1
任务描述
湖南人口hnpeople数据表结构如图所示,各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
1.在湖南人口数据表(hnpeople)中增加老龄比例llbl字段 decimal类型,长度为5 小数位数为
2.
答案:
use rkpc; #代码开始 alter table hnpeople add llbl decimal(5,2); #代码结束 describe hnpeople;
第2关:数据记录删除
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
4.删除数据记录 删除hnpeople数据表中城市cs为长沙市的数据记录
答案:
use rkpc; #代码开始 delete from hnpeople where cs="长沙市"; #代码结束 select * from hnpeople;
第3关:数据表结构修改2
任务描述
打开人口普查rkpc数据库,湖南人口hnpeople数据表结构如图所示,各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
2.将数据表字段人口rk改名为人口数量rksl字段,数据类型仍为整形int。
答案:
use rkpc; #代码开始 alter table hnpeople change rk rksl int; #代码结束 describe hnpeople;
第4关:数据记录修改
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
3.修改湖南人口数据记录: 修改老年比例lnbl字段的值为老年old除以人口rk,再乘以100
答案:
use rkpc; #代码开始 update hnpeople set llbl=old/rk*100; #代码结束 select * from hnpeople;
第5关:数据查询一
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人) 本关任务:
5.查询城市cs为长沙市和株洲市,人口(rk)在500000到1000000之间的城市cs、区县qx、人口rk字段的信息,按人口从高到低排列
答案:
use rkpc; #代码开始 select cs,qx,rk from hnpeople where (cs="长沙市" or cs="株洲市") and (rk>=500000 and rk<=1000000) order by rk desc; #代码结束
第6关:数据查询二
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
6.查询湖南人口hnpeople数据表中各城市的名称(cs)、总人口zrk、老年比率llbv(老年人数量/所有人数量乘以100)和性别比xbb(男性人口/女性人口)。
注意:老年比率、性别比需要保留两位小数。按总人口降序排列。
答案:
use rkpc; #代码开始 select cs,sum(rk) as zrk , format(sum(old)/sum(rk)*100,2) as llbv , format(sum(man)/sum(woman),2) as xbb from hnpeople group by cs order by sum(rk) desc; #代码结束
第7关:数据查询三
任务描述
本关任务: 人口普查rkpc数据库中hnpeople和hnyzbm两个数据表 湖南人口hnpeople数据表有城市cs、区县qx、人口rk等字段 数据如下所示
湖南邮政编码hnyzbm数据表有城市cs、区县qx、区县编码qxbm字段如下所示
本关任务:
1.连接两个数据表,查询长沙市的区县qx、区县编码qxbm和人口rk三个字段的值。
答案:
use rkpc; #代码开始 select hnpeople.qx,qxbm,rk from hnpeople,hnyzbm where hnpeople.qx=hnyzbm.qx and hnpeople.cs="长沙市"; #代码结束
第8关:数据查询四
任务描述
本关任务: 湖南人口hnpeople数据表有城市cs、区县qx、人口rk等字段 数据如下所示
本关任务:
8.查询hnpeople数据表中,人口多于区县平均人口的城市、区县和人口,按人口降序排列。
答案:
use rkpc; #代码开始 select cs,qx,rk from hnpeople where rk>( select avg(rk) from hnpeople ) order by rk desc; #代码结束
第9关:索引
任务描述
湖南人口hnpeople数据表结构如图所示,各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人) hnpeople数据表结构
本关任务:
9.在湖南人口数据表(hnpeople)中根据城市和区县两个字段建立主索引csqx。
答案:
use rkpc; #代码开始 alter table hnpeople add primary key(cs, qx); #代码结束 show index from hnpeople;
第10关:视图1
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
10.建立视图view1,显示区县人口大于100w的城市cs、区县qx和人口rk。
修改view1,将浏阳市的人口修改为1200000.
答案:
use rkpc; #代码开始 create view view1 as select cs,qx,rk from hnpeople where rk>1000000; update view1 set rk=1200000 where qx="浏阳市"; #代码结束 select * from view1;
第11关:视图2
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
12.建立视图view2,显示城市总人口大于500w的城市cs和总人口zrk,按总人口的降序排列。
答案:
use rkpc; #代码开始 create view view2 as select cs,sum(rk) as zrk from hnpeople group by cs having zrk>5000000 order by zrk desc; #代码结束 select * from view2;
第12关:用户
任务描述
湖南人口hnpeople数据表结构如图所示,各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
12.建立用户user1,可以在所有机器上查询hnpeople数据表的所有字段。
答案:
use rkpc; #代码开始 -- 创建用户 user1 并设置密码 create user 'user1'@'%' identified by 'password'; -- 授予 user1 查询 hnpeople 表的权限 grant select on hnpeople to 'user1'@'%'; #代码结束 select host,db,table_name,Table_priv from mysql.tables_priv where user='user1';
第13关:存储过程1
任务描述
湖南人口hnpeople数据表如下所示
各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)
本关任务:
13.建立存储过程xbcx,输入城市名称,返回该城市的男性人口百分比,女性人口百分比,要求保留两位小数。 调用该存储过程,将结果赋给变量@lx和@nx
答案:
实际上是查长沙市的男性人口百分比和女性人口百分比,题目中没说清楚
use rkpc; #代码开始 delimiter // create procedure xbcx(in city_name varchar(20), out lx decimal(5,2), out nx decimal(5,2)) begin -- 计算男性人口百分比 select sum(man) * 100.0 / sum(man + woman) into lx from hnpeople where cs = city_name; -- 计算女性人口百分比 select sum(woman) * 100.0 / sum(man + woman) into nx from hnpeople where cs = city_name; end // delimiter ; call xbcx('长沙市', @lx, @nx); #代码结束 select @lx,@nx;
第14关:存储过程2
任务描述
数据库人口普查rkpc有数据表qgrk,有省份sf、名称name、人口rk字段,数据如下所示
有数据表qgqh,有省份sf、城市city、区县qx、代码dm字段,数据如下所示
本关任务:
建立存储过程sfcx(in sfmc varchar(15)) 根据输入的省份名称,建立数据表sfxx,将该省的省份名称sf、城市city、区县qx\代码dm、人口rk各字段的信息存入到数据表数据表sfxx。
标签:hnpeople,qx,数据库,人口,数据表,期末,2021,cs,rk From: https://blog.csdn.net/qwertf123/article/details/139722245答案:
注意:qgqh表中的城市是图片中的cs,而不是文字中的city
use rkpc; #代码开始 delimiter // create procedure sfcx(in sfmc varchar(15)) begin -- 首先,创建新表sfxx,如果表不存在的话 create table if not exists sfxx ( sf varchar(15), cs varchar(50), qx varchar(50), dm varchar(50), rk int ); -- 接着,向新表中插入数据 insert into sfxx (sf, cs, qx, dm, rk) select qgrk.sf, qgqh.cs, qgqh.qx, qgqh.dm, qgrk.rk from qgrk join qgqh on qgrk.sf = qgqh.sf where qgrk.sf = '湖南省' and qgrk.name=qgqh.qx; end // delimiter ; #代码结束 call sfcx("湖南省"); select * from sfxx;