(转载)使用SQL-Server创建一个银行数据管理系统Ⅰ
首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以我在这里也是一点一点分步来做的。
创建数据库,数据库属性在这里用的是默认(不推荐使用这种偷懒的做法)
1 --创建数据库,使用默认配置
2 create database 某银行客户管理系统
3 go
创建表,共四个,分别是:客户信息,银行卡信息,业务类型,交易记录

1 use 某银行客户管理系统
2
3
4 --创建业务类型表,包含业务编号,业务名称和业务描述
5 create table 业务类型
6 (
7 业务编号 int identity(1,1) primary key,
8
9 业务名称 varchar(50) not null unique,
10
11 业务描述 varchar(100)
12 )
13
14
15 --创建客户信息表,包含客户编号,姓名,居住地,手机号码和身份证号码
16 CREATE TABLE 客户信息
17 (
18 客户编号 INT IDENTITY(101,1) PRIMARY KEY,
19
20 姓名 VARCHAR(25) NOT NULL,
21
22 居住地 VARCHAR(50),
23
24 手机号码 CHAR(11) UNIQUE NOT NULL
25 check(手机号码 like '1[358][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
26
27 身份证号码 CHAR(18) UNIQUE NOT NULL
28 check(left(身份证号码,17)
29 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
30 and (right(身份证号码,1) like '[0-9]' or right(身份证号码,1) like 'X')
31 )
32
33
34 --创建银行卡信息表
35 CREATE TABLE 银行卡信息
36 (
37 卡号 CHAR(19) PRIMARY KEY CHECK(卡号 LIKE '6223 2017 [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]'),
38
39 密码 BIGINT CHECK(密码>99999 AND 密码<=999999)
40 DEFAULT 111111
41 NOT NULL,
42
43 存款类型 int not null,
44
45 余额 MONEY CHECK(余额>=10) NOT NULL,
46
47 持卡客户 INT not null,
48
49 注册日期 DATETIME NOT NULL default(getdate()),
50
51 是否挂失 char(2) default('否') check(是否挂失='是' or 是否挂失='否')
52 )
53
54
55 --创建交易记录表
56 create table 交易记录
57 (
58 记录编号 int identity(1,1) primary key,
59
60 卡号 char(19) not null,
61
62 交易日期 datetime not null,
63
64 交易金额 money not null,
65
66 交易类型 char(4) not null check(交易类型='收入' or 交易类型='支出'),
67
68 交易备注 varchar(50)
69 )

建立外键

1 --建立外键
2 alter table 银行卡信息
3 add foreign key(存款类型) references 业务类型(业务编号)
4
5 alter table 银行卡信息
6 add foreign key(持卡客户) references 客户信息(客户编号)
7
8 alter table 交易记录
9 add foreign key(卡号) references 银行卡信息(卡号)

到了这里,创建银行数据库系统的第一步就算是完成了,接下来要建立一些触发器和存储过程,以及插入一些测试数据,详情请关注本人的下一篇博客,谢谢。
(转载)使用SQL-Server创建一个银行数据管理系统Ⅰ的更多相关文章
- SQL Server 创建和修改数据表
一.CREATE语句(创建) 1.创建DataBase 1.CONTAINMENT SQL Server 2012 新功能 , 默认值是OFF .(太高级 书上也没有详细介绍). 2.ON ON用于两 ...
- Confluence 6 SQL Server 创建一个数据库和数据库用户
一旦你成功安装了 SQL Server 服务器,请按照下面的方法为你的 Confluence 创建数据库用户和数据库: 使用你的 SQL 管理员权限,创建一个新的数据库(例如 confluence). ...
- SQL Server 创建 修改 删除数据表
1. 图形界面方式操作数据表 (1)创建和修改数据表 列名中如果有两个以上单词时,最好用下划线连接,否则可能会给将来的查询维护带来不便.我们公司美国佬做的数据库就很烦,所有列名都有空格,一旦忘记用方括 ...
- 【转载】SQL语句将一个表的数据写入到另一个表中
在日常的数据库运维过程中,有时候需要将Select查询出来的数据集写入到另一个数据表中,其中一种方式是通过存储过程循环写入数据,另一种简便的方式是直接使用Insert Into语句后面跟上Select ...
- 恢复SQL Server被误删除的数据
恢复SQL Server被误删除的数据 <恢复SQL Server被误删除的数据(再扩展)> 地址:http://www.cnblogs.com/lyhabc/p/4620764.html ...
- 转:Sql Server中清空所有数据表中的记录
如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表是不难的 ...
- 恢复SQL Server被误删除的数据(再扩展)
恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...
- SQL Server中一个隐性的IO性能杀手-Forwarded record
简介 最近在一个客户那里注意到一个计数器很高(Forwarded Records/Sec),伴随着间歇性的磁盘等待队列的波动.本篇文章分享什么是forwarded record,并从原理上谈一 ...
- [转载]在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?
原来使用SQL Server 2000数据库,通过DTS工具很方便地在SQL Server和DBF文件之间进行数据的导入和导出,现在安装了SQL Server2005之后,发现其提供的“SQL Ser ...
随机推荐
- go语言操作mongodb
Install the MongoDB Go Driver The MongoDB Go Driver is made up of several packages. If you are just ...
- @Html.DropDownListFor默认选中项
http://q.cnblogs.com/q/73902/ 项目使用mvc4,给dropDownList指定默认值未选中 页面代码是: 1.未有默认选中值 Html.DropDownListFor(m ...
- mvc4同一视图传入两个模型
http://bbs.csdn.net/topics/390961335 用ViewModel,把内容和评论构造到一个类中 这个简单,定义一个模型,包含两个属性,各自为那两个模型的类型,用这个模型.比 ...
- joda-time 2.5 包简化java时间操作
原文:https://www.ibm.com/developerworks/cn/java/j-jodatime.html Joda-Time 简介 既然无法摆脱时间,为何不设法简化时间处理? J P ...
- 第一天:简单工厂模式与UML类图
何为简单工厂模式: 通过专门定义一个类,来负责创建其他类的实例,这些其它类通常具有共同的父类. 简单工厂模式的UML类图: 简单工厂模式中包含的角色和相应的职责如下: ...
- Docker容器跨主机通信--overlay网络
一.Docker主机间容器通信的解决方案 Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接 ...
- nltk_29_pickle保存和导入分类器
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...
- CIDR 无类别域间路由
参考百度百科 1.全称 CIDR的全称是Classless Inter-Domain Routing 2.作用 CIDR将路由集中起来,使一个IP地址代表主要骨干提供商服务的几千个IP地址,从而减轻I ...
- CSS3 box-sizing:border-box的好处
无论如何改动border,margin与padding的值,都不会导致box总尺寸发生变化.
- jQuery精仿手机上的翻牌效果菜单
代码简介: jQuery精仿手机上的翻牌效果菜单,很平滑的动画翻牌效果,每点击一下菜单,就会翻去一下,貌似很灵敏的动作.注意:如果预览时没看到效果,请刷新一下页面,让jquery载入就行了,在实际使用 ...