建立一个含有以下对象的数据库模型,对象有客户、银行卡、存款、理财产品和基金,并且满足以下查询需求,1)查询某客户的总资产。 2)查询某客户的总负债。 3)查询某客户购买的基金的总持仓收益和总持仓收益率。 4)查询某客户持有的所有银行卡的卡号、类型、状态、余额。 5)查询手机银行目前在售的所有理财产品的名称、编号、产品期限、起购金额。
时间: 2024-04-03 17:31:18 浏览: 40
金融银行模型,包括存款,贷款,产品,交易,等30多个模型
好的,根据上述要求,我为您建立了一个数据库模型,并提供了相应的 SQL 语句来满足查询需求:
1. 客户(Customer):包含客户的基本信息,如客户ID、姓名、性别、出生日期等。
2. 银行卡(BankCard):包含银行卡的基本信息,如卡号、类型、状态、余额等,以及与客户之间的关联。
3. 存款(Deposit):包含存款的基本信息,如存款ID、存款金额、存款日期等,以及与客户之间的关联。
4. 理财产品(FinancialProduct):包含理财产品的基本信息,如产品ID、产品名称、产品类型、产品期限、购买金额等。
5. 基金(Fund):包含基金的基本信息,如基金ID、基金名称、基金类型、购买日期、购买金额等,以及与客户之间的关联。
在这个模型中,客户、银行卡、存款、理财产品和基金之间存在以下关系:
1. 客户与银行卡之间是一对多的关系,即一个客户可以拥有多张银行卡,而一张银行卡只能属于一个客户。
2. 客户与存款之间也是一对多的关系,即一个客户可以拥有多个存款,而一个存款只能属于一个客户。
3. 客户与基金之间是多对多的关系,即一个客户可以购买多个基金,而一个基金也可以被多个客户购买。
4. 理财产品与基金之间是一对多的关系,即一个理财产品可以对应多个基金,而一个基金只能属于一个理财产品。
以下是相应的 SQL 语句:
1. 查询某客户的总资产:
SELECT SUM(balance+deposit_amount+fund.income) AS total_assets
FROM customer
LEFT JOIN bank_card ON customer.customer_id=bank_card.customer_id
LEFT JOIN deposit ON customer.customer_id=deposit.customer_id
LEFT JOIN (SELECT customer_id, SUM(income) as income FROM fund GROUP BY customer_id) AS fund ON customer.customer_id=fund.customer_id
WHERE customer.customer_id = [客户ID];
其中,[客户ID] 是您所查询客户的标识符。
2. 查询某客户的总负债:
SELECT SUM(debt) AS total_liabilities FROM loan WHERE customer_id = [客户ID];
其中,[客户ID] 是您所查询客户的标识符。
3. 查询某客户购买的基金的总持仓收益和总持仓收益率:
SELECT SUM(income) AS total_income, AVG(income_rate) AS avg_income_rate
FROM fund
WHERE customer_id = [客户ID];
其中,[客户ID] 是您所查询客户的标识符。
4. 查询某客户持有的所有银行卡的卡号、类型、状态、余额:
SELECT card_number, card_type, card_status, balance
FROM bank_card
WHERE customer_id = [客户ID];
其中,[客户ID] 是您所查询客户的标识符。
5. 查询手机银行目前在售的所有理财产品的名称、编号、产品期限、起购金额:
SELECT product_name, product_number, product_term, min_purchase_amount
FROM financial_product
WHERE product_type = '理财产品';
希望这个数据库模型和相应的 SQL 语句能够满足您的需求。
阅读全文