该实验是针对数据表jdxx,该数据表有四个字段,分别是省份(sf)、城市(cs)、区县(qxmc)、街道(name)。 例如,查询天心区(qxmc)的所有字段的值结果如图所示 , 任务要求 建立存储过程 dqxx(in city varchar(10),in district varchar(10)) 输入城市city和区县district的名称,显示乡x、镇z和街道jd、其他的个数 提示:即name字段含有乡、镇、街道及不包含上述选项的个数 调用过程 以长沙市和开福区为参数,调用dqxx过程 以厦门市和同安区为参数,调用dqxx过程 例如,以长沙市和岳麓区为参数,调用过程显示结果如下 乡 街道 镇 其他 1 9 1 0
时间: 2024-02-22 22:55:58 浏览: 37
好的,根据你提供的信息,以下是实现该任务的存储过程示例:
1. 创建存储过程
```mysql
CREATE PROCEDURE `dqxx`(IN city VARCHAR(10), IN district VARCHAR(10))
BEGIN
SELECT
COUNT(CASE WHEN name LIKE '%乡%' THEN 1 END) AS '乡',
COUNT(CASE WHEN name LIKE '%街道%' THEN 1 END) AS '街道',
COUNT(CASE WHEN name LIKE '%镇%' THEN 1 END) AS '镇',
COUNT(*) - COUNT(CASE WHEN name LIKE '%乡%' THEN 1 END) -
COUNT(CASE WHEN name LIKE '%街道%' THEN 1 END) -
COUNT(CASE WHEN name LIKE '%镇%' THEN 1 END) AS '其他'
FROM jdxx
WHERE cs = city AND qxmc = district;
END
```
该存储过程接收城市名和区县名两个参数,返回该城市该区县内乡、街道、镇和其他的数量。
2. 调用存储过程
```mysql
CALL dqxx('长沙市', '岳麓区');
```
执行上述语句即可调用存储过程,查询长沙市岳麓区内乡、街道、镇和其他的数量。
```mysql
CALL dqxx('厦门市', '同安区');
```
执行上述语句即可调用存储过程,查询厦门市同安区内乡、街道、镇和其他的数量。