1. 项目(任务)概要
你作为《建设用地信息系统》项目基础数据设置子模块开发组的程序员,请按要求完成:
数据库的创建;
数据表的创建;
数据的操作。
2. 实施步骤及内容
《建设用地信息系统》基础数据设置子模块的E-R图如图2.19所示,逻辑数据模型如图2.20 所示,物理数据模型如图2.21所示,数据表字段名定义见表2.9。请按以下设计完成数据库创建、数据表创建和数据操作任务:
图2.19 E-R图
表2.9字段名定义表
字段名 | 字段说明 | 字段名 | 字段说明 |
Proj_id | 项目ID | Canton_id | 行政区ID |
Proj_no | 项目编号 | Canton_no | 行政区编号 |
Proj_name | 项目名称 | Canton_name | 行政区名称 |
Canton_no | 行政区编号 | Canton_tot | 行政区面积 |
Proj_type | 项目类型 | Branch | 直属部门 |
Proj_kind | 项目性质 | Remark | 备注 |
Farm_tot | 农用地总面积 | ||
Tilth_state | 耕地面积 | ||
Approve_unit | 审批单位 |
实施步骤
第一步 创建数据库
创建数据库Proj。
第二步 数据表设计
根据图2.20和表2.9,创建数据表T_proj_info、T_canton_info。
第三步 数据表之间的关系设计
根据物理数据原型,创建数据关系表。
第四步 数据操作
用SQL语句查询出以下数据:
- 在行政区域信息表中插入数据,ID为“A001”编号为“83100”,行政名称为“星沙”,行政面积为“142”,直属部门为“长沙市国土资源局”;
- 在用地基本信息表中插入测试数据
- 查询出项目编号为C0001的建设用地基本信息;
- 查询出行政直属部门为“长沙市国土资源局”的建设用地基本信息;
- 查询出所有的建设土地基本信息并按农用地总面积升序排序;
- 删除耕地面积大于“720”的建设用地基本信息;
- 请把直属部门由“长沙市国土资源局”修改为“株洲市国土资源局”;
- 创建名为ProjInfo_view1的视图,视图的数据为编号是C0001的建设用地基本信息;
删除上题中所创建的ProjInfo_view1视图。
代码展示:
-- 第一步 创建数据库
-- 创建数据库Proj。
CREATE DATABASE Proj;
-- 第二步 数据表设计
-- 根据图2.20和表2.9,创建数据表T_proj_info、T_canton_info。
CREATE TABLE T_proj_info(
Proj_id VARCHAR(50) PRIMARY KEY,
Proj_name VARCHAR(100) NOT NULL,
Proj_no VARCHAR(50) NOT NULL,
Proj_type VARCHAR(50) NOT NULL,
Tilth_state VARCHAR(50) NOT NULL,
Proj_kind VARCHAR(100) NOT NULL,
Approve_unit VARCHAR(50) NOT NULL,
Canton_id VARCHAR(50) NOT NULL
);
CREATE TABLE T_canton_info(
Canton_id VARCHAR(50) PRIMARY KEY,
Canton_tot NUMERIC(8,0) NOT NULL,
Canton_no NUMERIC(8,0) NOT NULL,
Canton_name VARCHAR(50) NOT NULL,
Branch VARCHAR(50) NOT NULL,
Remark VARCHAR(100) NOT NULL
);
-- 第三步 数据表之间的关系设计
-- 根据物理数据原型,创建数据关系表。
ALTER TABLE T_proj_info ADD CONSTRAINT UNIQUE(Canton_id);
ALTER TABLE T_canton_info ADD CONSTRAINT UNIQUE(Canton_no);
ALTER TABLE T_proj_info ADD CONSTRAINT FOREIGN KEY(Canton_id);
REFERENCES T_canton_info(Canton_id);
ALTER TABLE T_proj_info
ADD CONSTRAINT fk_Canton_id
FOREIGN KEY(Canton_id)
REFERENCES T_canton_info(Canton_id);
-- 第四步 数据操作
-- 用SQL语句查询出以下数据:
-- 在行政区域信息表中插入数据,ID为“A001”编号为“83100”,行政名称为“星沙”,行政面积为“142”,直属部门为“长沙市国土资源局”;
SELECT *FROM T_proj_info
INSERT INTO T_canton_info(Canton_id,Canton_tot,Canton_no,Canton_name,Branch,Remark) VALUES('A001','142','83100','星沙','长沙市国土资源局','公司');
INSERT INTO T_canton_info(Canton_id,Canton_tot,Canton_no,Canton_name,Branch,Remark) VALUES('A002','150','83101','长沙','长沙市国土资源局','公司');
-- 在用地基本信息表中插入测试数据
INSERT INTO T_proj_info VALUES('202201','金侨集团建设','C0001','商业项目','900','集团项目','株洲市国土资源局','A001');
INSERT INTO T_proj_info VALUES('202202','软件集团建设','C0002','商业项目','800','集团项目','长沙市国土资源局','A002');
-- 查询出项目编号为C0001的建设用地基本信息;
SELECT * FROM T_proj_info WHERE Proj_no='C0001'
-- 查询出行政直属部门为“长沙市国土资源局”的建设用地基本信息;
SELECT * from T_proj_info AS a,T_canton_info AS b WHERE Branch='长沙市国土资源局' AND a.Canton_id=b.Canton_id;
-- 查询出所有的建设土地基本信息并按农用地总面积升序排序;
SELECT * FROM T_proj_info ORDER BY Tilth_state
-- 删除耕地面积大于“720”的建设用地基本信息;
DELETE FROM T_proj_info WHERE Tilth_state > 800
SELECT *FROM T_proj_info
-- 请把直属部门由“长沙市国土资源局”修改为“株洲市国土资源局”;
UPDATE T_canton_info SET Branch='株洲市国土资源局' WHERE Branch='长沙市国土资源局'
SELECT*FROM T_canton_info
-- 创建名为ProjInfo_view1的视图,视图的数据为编号是C0001的建设用地基本信息;
CREATE VIEW ProjInfo_view1
AS
SELECT * FROM T_proj_info WHERE Proj_no='C0002'
SELECT * FROM ProjInfo_view1
-- 删除上题中所创建的ProjInfo_view1视图。
DROP VIEW ProjInfo_view1
--
以上就是全部结果!!!