SQL语句创建一个简单的银行数据库

目录

一、银行业务E-R图

二、数据库模型图

转换关系模型后:

三、创建数据库

3.1 创建银行业务数据库

四、创建表

4.1 创建客户信息表

4.2 创建银行卡信息表

4.3 创建交易信息表

4.4 创建存款类型表

结果如下:

​编辑

五、插入适量数据

5.1 客户信息表数据

5.2 银行卡信息表数据

5.3 交易信息表数据

5.4 存款类型数据

结果如下:


一、银行业务E-R图

二、数据库模型图

转换关系模型后:

三、创建数据库

3.1 创建银行业务数据库


mysql> DROP DATABASE IF EXISTS Bank;//如果存在先删除表
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE DATABASE IF NOT EXISTS Bank;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| Bank               |
| MySchool_db        |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

四、创建表

4.1 创建客户信息表

CREATE TABLE IF NOT EXISTS userInfo(
    customerID INT(8) PRIMARY KEY AUTO_INCREMENT COMMENT'客户编号',
    customerName VARCHAR(10) NOT NULL COMMENT'开户姓名',
    PID CHAR(18) NOT NULL COMMENT'身份证号',
    telephone CHAR(11) NOT NULL COMMENT'联系电话',
    address VARCHAR(50) COMMENT'居住地址'
)ENGINE=INNODB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

4.2 创建银行卡信息表

CREATE TABLE IF NOT EXISTS cardInfo(
    cardID VARCHAR(19) NOT NULL PRIMARY KEY COMMENT'卡号',
    curID VARCHAR(10) NOT NULL DEFAULT'RMB' COMMENT'货币种类',
    savingID INT(2) NOT NULL COMMENT'存款类型',
    openDate TIMESTAMP NOT NULL COMMENT'开户日期',
    openMoney DECIMAL NOT NULL COMMENT'开户金额',
    balance DECIMAL NOT NULL COMMENT'余额',
    password VARCHAR(6) NOT NULL DEFAULT'888888' COMMENT'密码',
    IsReportLoss BIT NOT NULL DEFAULT 0 COMMENT'是否挂失'.
    customerID INT(8) NOT NULL COMMENT'客户编号'
)ENGINE=INNODB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

ALTER TABLE cardInfo MODIFY openMoney DECIMAL(9,2);
ALTER TABLE cardInfo MODIFY balance DECIMAL(9,2);#确保账户有余额

ALTER TABLE cardInfo
ADD CONSTRAINT FK_cardID FOREIGN KEY(cardID) REFERENCES cardInfo(cardID);
ALTER TABLE cardInfo
ADD CONSTRAINT FK_customerID FOREIGN KEY(customerID) REFERENCES userInfo(customerID);
ALTER TABLE cardInfo
ADD CONSTRAINT FK_savingID FOREIGN KEY(savingID) REFERENCES deposit(savingID);
#设立外键

4.3 创建交易信息表

CREATE TABLE IF NOT EXISTS tradeInfo(
    transDate TIMESTAMP NOT NULL COMMENT'交易日期',
    cardID CHAR(19) NOT NULL COMMENT'卡号',
    transType CHAR(10) NOT NULL COMMENT'交易类型',
    transMoney DECIMAL NOT NULL COMMENT'交易金额',
    remark TEXT COMMENT'备注',
    CONSTRAINT FK_cardID FOREIGN KEY(cardID) REFERENCES cardInfo(cardID)
)ENGINE=INNODB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

4.4 创建存款类型表

CREATE TABLE IF NOT EXISTS deposit(
    savingID INT(2) PRIMARY KEY COMMENT'存款类型号',
    savingName VARCHAR(20) NOT NULL COMMENT'存款类型名称',
    descrip VARCHAR(20) COMMENT'描述'
)ENGINE=INNODB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
结果如下:

五、插入适量数据

5.1 客户信息表数据

INSERT INTO userInfo(customerID,customerName,PID,telephone,address)
VALUES
(1,'王令','320123199001021111','19599931111','江苏淮安'),
(2,'老王','320123199102032222','19599932222','四川成都'),
(3,'嘉文','320123199203043333','19599933333','福建福州'),
(4,'文静','320123199304054444','19599934444','江苏南京'),
(5,'高宇','320123199405065555','19599935555','重庆渝北');

5.2 银行卡信息表数据

INSERT INTO cardInfo(cardID,curID,savingID,openDate,openMoney,balance,password,isReportLoss,customerID)
VALUES
('9999123400000102','RMB',1,NOW(),100,100,'888888',0,1),
('9999123400000203','RMB',1,NOW(),100,1,'888888',0,2),
('9999123400000304','RMB',2,NOW(),10,10,'888888',0,3),
('9999123400000405','RMB',2,NOW(),100,1000,'888888',0,4),
('9999123400000506','RMB',1,NOW(),100,100000,'888888',0,5);
UPADTE cardInfo SET cardID='9999123400000901' WHERE cardID='9999123400000506';

5.3 交易信息表数据

INSERT INTO tradeInfo(transDate,cardID,transType,transMoney,remark)
VALUES
(NOW(),'9999123400000102','取出',222,NOW()),
(NOW(),'9999123400000304','存入',1111,NOW()),
(NOW(),'9999123400000506','取出',1002,NOW()),
(NOW(),'9999123400000102','存入',100,NOW()),
(NOW(),'9999123400000102','存入',2002,NOW()),
(NOW(),'9999123400000304','取出',2000,NOW()),
(NOW(),'9999123400000203','存入',1000,NOW());

5.4 存款类型数据

INSERT INTO deposit(savingID,savingName,descrip)
VALUES(1,'定期',‘ ’),(2,'活期',‘ ’);
结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/352582.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】字符串

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

android开发者模式@adb无线调试

文章目录 adb调试功能介绍有线调试无线调试 配置无线adb调试手机端开发者选项配置电脑端配置步骤初次使用进行配对链接设备小结 检查链接是否成功 技巧快速打开无线调试 refs adb调试 功能介绍 ADB(Android Debug Bridge)是一种强大的命令行工具&#…

Linux初始相关配置

前言 在学完了Linux的相关基础命令后,在正式使用Linux系统之前,我觉得配置一些东西是很有意义的。 文章目录 前言1.权限配置,普通用户无法sudo提权2.vim配置3.vim其他操作4.动静态库5.gcc/g6.程序翻译的过程7.make/makefile8.cmake/CMakeLis…

docker拉取镜像时指定其OS及CPU指令集类型

前言 之前在香橙派5上安装的时候碰到过一次指定镜像的OS及cpu指令集类型的问题,但是当时没有记录,现在用到 了又想不起来,干脆就自己记录一下。预防后面忘掉。docker报错截图 上次时在arm的cpu中运行x86镜像,这次时在x86中运行arm…

仰暮计划|“星星之火可以燎原,平凡人的一生同样值得称赞

传递助老之情,践行为老初心。为学习和发扬助老为老精神,我参与了康乐忆享实践队开展的以“仰暮计划”为主题的实践活动,在实践过程中了解老人的人生经历,传播尊老爱老思想。我与老人谭爷爷在谈论家常时,他拿出年轻时的…

Blender教程-物体的移动、旋转与缩放-04

一、新建一个立方体 ShiftA新建一个立方体用来演示。 二、物体的移动 xyz轴移动 点击下图图左侧的移动选项后,选中要移动的物体,会出现三个箭头的方向,这分别代表沿着x、y、z轴移动。xyz平面移动 这个小正方体代表沿着某一个面移动&#…

基于JAVA的陕西非物质文化遗产网站 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与过程2.3.1 系统设计2.3.2 查阅文献2.3.3 网站分析2.3.4 网站设计2.3.5 网站实现2.3.6 系统测试与效果分析 三、系统展示四、核心代码4.1 查询民间文学4.2 查询传统音乐4.3 增改传统舞…

程序员的平均结婚年龄

关于程序员的平均结婚年龄,根据之前的信息: 一项对全球10000名在职程序员的调查数据显示,程序员第一次结婚的平均年龄是39.43周岁。而在中国的部分地区,如北京等地,程序员群体中普遍反映的结婚年龄是在30岁左右。 程序…

hive面试题

0. 思维导图 1. 简述Hive♥♥ 我理解的,hive就是一款构建数据仓库的工具,它可以就结构化的数据映射为一张表,并且可以通过SQL语句进行查询分析。本质上是将SQL转换为MapReduce或者spark来进行计算,数据是存储在hdfs上,…

带延迟的随机逼近方案(Stochastic approximation schemes):在网络和机器学习中的应用

1. 并行队列系统中的动态定价Dynamic pricing 1.1 系统的表述 一个含有并行队列的动态定价系统,该系统中对于每个队列有一个入口收费(entry charge) ,且系统运行的目标是保持队列长度接近于某个理想的配置。 这里是这个系统的几个关键假设:…

ASUS华硕无畏Pro15笔记本电脑(M6500QB,M6500QH)工厂模式原厂OEM预装Windows11.22H2系统 含Recovery恢复

原装出厂Windows11系统适用于华硕无畏15笔记本电脑型号:M6500QB和M6500QH 链接:https://pan.baidu.com/s/1AVGLN6-ILIRogOMj48Mk1w?pwdmi7d 提取码:mi7d 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题专用壁纸、系统属性联机支持…

keil使用教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重…

Apipost数据库连接使用

Apipost提供了数据库连接功能,在接口调试时可以使用数据库获取入参或进行断言校验。目前的Apipost支持:Mysql、SQL Sever、Oracle、Clickhouse、达梦数据库、PostgreSQL、Redis、MongoDB 8种数据库的连接操作 新建数据库连接: 在「项目设置…

face_recognition和图像处理中left、top、right、bottom解释

face_recognition.face_locations 介绍 加载图像文件后直接调用face_recognition.face_locations(image),能定位所有图像中识别出的人脸位置信息,返回值是列表形式,列表中每一行是一张人脸的位置信息,包括[top, right, bottom, l…

[Python] 如何在Windows下安装图形可视化工具graphviz

什么是graphviz? Graphviz是一款开源的图形可视化工具,用于生成各种结构化数据的图形表示。它支持多种图形排列算法,可以将复杂的数据关系用图形的方式直观地展示出来。Graphviz广泛应用于软件工程、数据可视化、计算机网络以及其他领域的可视化分析中…

Java二分查找-图文

一、二分查找概念 二分查找也叫折半查找,是在一组有序(升序/降序)的数据中查找一个元素,它是一种效率较高的查找方。 二、二分查找原理 1.二分查找的数组必须是有序数值型数组。 2.将想要查找的目标元素与查找范围内的中间元素进行比较,如果…

python在线聊天室(带聊天保存)

python Socket在线聊天室(带聊天保存) 需求功能 1.聊天信息保存功能(服务端会把信息保存到一个txt里面) 2.使用pyqt5框架作为一个可视化界面 3.具备一个服务端和多个客户端的功能 4.具备离线加入黑名单(离线踢出) 5.具备在线加入黑名单(在线加入黑名单被踢出) 6.具备群聊功能…

任正非最新讲话:没有退路就是胜利之路!

内容来源:本文来自心声社区 组织管理 9月4日,华为心声社区发布了华为创始人任正非在华为高端技术人才使用工作组对标会上的讲话。 任正非表示,先有专才,才有全才,要实现跨界交流、融合创新,让领袖自然成长…

计算机网络——TCP协议

💡TCP的可靠不在于它是否可以把数据100%传输过去,而是 1.发送方发去数据后,可以知道接收方是否收到数据;2.如果接收方没收到,可以有补救手段; 图1.TCP组成图 TCP的可靠性是付出代价的,即传输效率…

Git安装详细步骤

目录 1、双击安装包,点击NEXT​编辑 2、更改安装路径,点击NEXT 3、选择安装组件 4、选择开始菜单页 5、选择Git文件默认的编辑器 6、调整PATH环境 7、选择HTTPS后端传输 8、配置行尾符号转换 9、配置终端模拟器与Git Bash一起使用 10、配置额外…