银行信贷管理系统的客户关系管理子模块

一、概要

作为《银行信贷管理系统》项目开发组的程序员,按要求完成:
数据库的创建;
数据表的创建;
数据的操作。

二、实施步骤和内容

《银行信贷管理系统》的E-R图如图2.7 所示,逻辑数据模型、物理数据模型如图2.8和图2.9所示。数据表字段名定义见表2.5。按以下设计完成数据库创建、数据表创建和数据操作任务:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、代码

-- 创建数据表客户基本信息表: T_customer_info 
CREATE TABLE IF NOT EXISTS T_customer_info(
	Cust_id CHAR(10) NOT NULL COMMENT '客户编号,主键',
	Cust_name VARCHAR(60) NOT NULL COMMENT '客户名称',
	Legal_name VARCHAR(10) NOT NULL COMMENT '法人代表',
	Reg_address VARCHAR(60) NOT NULL COMMENT '注册地址',
	Post_code CHAR(6) NOT NULL COMMENT '邮政编码',
	PRIMARY KEY(Cust_id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

-- 创建数据表客户信用等级表: T_cust_credit_level 
CREATE TABLE IF NOT EXISTS T_cust_credit_level(
	Cust_id CHAR(10) NOT NULL COMMENT '客户编号,主键',
	Credit_level CHAR(2) NOT NULL COMMENT '信用级别',
	Begin_date DATETIME NOT NULL COMMENT '评级有效起始日期',
	End_date DATETIME NOT NULL COMMENT '评级有效终止日期',
	PRIMARY KEY(Cust_id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

-- 创建数据表客户信用等级历史表: T_his_cust_credit_level ,其中  序号Id为自动增长字段
CREATE TABLE IF NOT EXISTS T_his_cust_credit_level(
	Id INTEGER AUTO_INCREMENT COMMENT '序号,主键',
	Cust_id CHAR(10) NOT NULL COMMENT '客户编号',
	Credit_level CHAR(2) NOT NULL COMMENT '信用级别',
	Begin_date DATETIME NOT NULL COMMENT '评级有效起始日期',
	End_date DATETIME NOT NULL COMMENT '评级有效终止日期',
	PRIMARY KEY(Id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;  


-- FOREIGN KEY: 创建数据表之间的关系
ALTER TABLE T_cust_credit_level ADD CONSTRAINT FOREIGN KEY(Cust_id)
REFERENCES T_customer_info(Cust_id)

ALTER TABLE T_his_cust_credit_level ADD CONSTRAINT FOREIGN KEY(Cust_id)
REFERENCES T_customer_info(Cust_id)

-- 将信用级别字段的默认值设置为"01" 
ALTER TABLE T_cust_credit_level MODIFY Credit_level CHAR(2) DEFAULT '01'

-- 向三个表中插入测试数据  
INSERT INTO T_customer_info VALUES('A001B0101','XX公司','张三','长沙市雨花区XX路999号','410001')

INSERT INTO T_cust_credit_level(Cust_id,Begin_date,End_date) VALUES('A001B0101','2022-01-01','2023-01-01')

INSERT INTO T_his_cust_credit_level(Cust_id,Credit_level,Begin_date,End_date) VALUES('A001B0101','01','2022-01-01','2023-01-01')

-- 查询客户名称为"xx公司"的信用等级
SELECT Credit_level FROM T_cust_credit_level WHERE Cust_id = 
(SELECT Cust_id FROM T_customer_info WHERE Cust_name='xx公司')

SELECT a.Cust_id,a.Cust_name,b.Credit_level FROM T_customer_info AS a INNER JOIN T_cust_credit_level AS b
ON a.Cust_id = b.Cust_id
AND a.Cust_name = 'xx公司'

-- 创建视图查询客户的信用级别历史记录,视图列名显示为:客户名称、  信用级别、评级有效起始日期、评级有效中止日期   
CREATE VIEW v_his_cust_credit_level
AS 
SELECT b.Cust_name AS '客户名称',a.Credit_level AS '信用级别',a.Begin_date AS '评级有效起始日期',a.End_date AS '评级有效中止日期' FROM T_his_cust_credit_level AS a INNER JOIN T_customer_info AS b 
ON a.Cust_id = b.Cust_id

 -- 创建带输入参数的存储过程P_cust_credit_level, 根据输入参数,更新客户信用等级表,将更新前的记录插入到客户信用等级历史表
DELIMITER $$
CREATE PROCEDURE P_cust_credit_level(IN custId CHAR(10), IN creditLevel CHAR(2))
BEGIN
	UPDATE T_cust_credit_level SET Credit_level=creditLevel
	WHERE Cust_id = custId;
	INSERT INTO T_his_cust_credit_level(Cust_id,Credit_level,Begin_date,End_date) VALUES(custId,creditLevel,NOW(),NOW());
END $$
DELIMITER ;

CALL p_cust_credit_level('A001B0101','02')




  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值