首先,要创建一个完整的数据管理系统,不是一蹴而就的,一定要要一步一步的来,不断完善,最终方能达到自己想要的结果,所以我在这里也是一点一点分步来做的。

  • 创建数据库,数据库属性在这里用的是默认(不推荐使用这种偷懒的做法)

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创建一个银行数据管理系统Ⅰ的更多相关文章

  1. SQL Server 创建和修改数据表

    一.CREATE语句(创建) 1.创建DataBase 1.CONTAINMENT SQL Server 2012 新功能 , 默认值是OFF .(太高级 书上也没有详细介绍). 2.ON ON用于两 ...

  2. Confluence 6 SQL Server 创建一个数据库和数据库用户

    一旦你成功安装了 SQL Server 服务器,请按照下面的方法为你的 Confluence 创建数据库用户和数据库: 使用你的 SQL 管理员权限,创建一个新的数据库(例如 confluence). ...

  3. SQL Server 创建 修改 删除数据表

    1. 图形界面方式操作数据表 (1)创建和修改数据表 列名中如果有两个以上单词时,最好用下划线连接,否则可能会给将来的查询维护带来不便.我们公司美国佬做的数据库就很烦,所有列名都有空格,一旦忘记用方括 ...

  4. 【转载】SQL语句将一个表的数据写入到另一个表中

    在日常的数据库运维过程中,有时候需要将Select查询出来的数据集写入到另一个数据表中,其中一种方式是通过存储过程循环写入数据,另一种简便的方式是直接使用Insert Into语句后面跟上Select ...

  5. 恢复SQL Server被误删除的数据

    恢复SQL Server被误删除的数据 <恢复SQL Server被误删除的数据(再扩展)> 地址:http://www.cnblogs.com/lyhabc/p/4620764.html ...

  6. 转:Sql Server中清空所有数据表中的记录

    如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍.   使用sql删除数据库中所有表是不难的 ...

  7. 恢复SQL Server被误删除的数据(再扩展)

    恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...

  8. SQL Server中一个隐性的IO性能杀手-Forwarded record

    简介     最近在一个客户那里注意到一个计数器很高(Forwarded Records/Sec),伴随着间歇性的磁盘等待队列的波动.本篇文章分享什么是forwarded record,并从原理上谈一 ...

  9. [转载]在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?

    原来使用SQL Server 2000数据库,通过DTS工具很方便地在SQL Server和DBF文件之间进行数据的导入和导出,现在安装了SQL Server2005之后,发现其提供的“SQL Ser ...

随机推荐

  1. Express入门( node.js Web应用框架 )

    运用Express框架构建简单的NodeJS应用 Start  确认安装了NodeJS之后(最新的Node安装好后NPM也会自带安装了),npm可理解为nodejs的一个工具包.可通过查看版本来检测是 ...

  2. sql数据库设计学习---数据库设计规范化的五个要求

    http://blog.csdn.net/taijianyu/article/details/5945490 一:表中应该避免可为空的列: 二:表不应该有重复的值或者列: 三: 表中记录应该有一个唯一 ...

  3. Centos6.6下安装nginx1.6.3

    安装环境: [root@nginx ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@nginx ~]# uname -r 2. ...

  4. Python【pymysql】模块

    import pymysql# 1.连上数据库 账号.密码 ip 端口号 数据库#2.建立游标#3.执行sql#4 .获取结果# 5.关闭游标#6.连接关闭coon = pymysql.connect ...

  5. Guava之CaseFormat

    com.google.common.base.CaseFormat是一种实用工具类,以提供不同的ASCII字符格式之间的转换. 其对应的枚举常量 从以上枚举中可以看出,java程序员最常用的转换类型为 ...

  6. webpack+vue+iview使用vue-cli脚手架搭建

    1.安装nodejs环境 下载node.js.安装成功后再控制台输入 node -v 出现版本号则,安装成功. 如果没有出现 版本号 而是出现node 不是内部命令的话 需要配置一下环境变量,如果已经 ...

  7. 《剑指offer》 面试题43 n个骰子的点数 (java)

    引言:写这篇文章的初衷只是想做个笔记,因为这道题代码量有点大,有点抽象,而书上并没有详细的注释.为了加深印象和便于下次复习,做个记录. 原题:把n个骰子扔到地上,所有骰子朝上一面的点数之后为s. 输入 ...

  8. 转:UIView的sizeToFit与sizeThatFits

    UILabel经常用到的方法- (void)sizeToFit- (CGSize)sizeThatFits:(CGSize)size解释如下: sizeToFit会自动调用sizeThatFits方法 ...

  9. c# 的一些基本操作或属性

    http下载文件,不保存到服务器,直接使用浏览器下载 /// <summary> /// 根据url下载文件 /// </summary> /// <param name ...

  10. bzoj千题计划135:bzoj1066: [SCOI2007]蜥蜴

    http://www.lydsy.com/JudgeOnline/problem.php?id=1066 每个柱子拆成两个点 i<<1,i<<1|1,之间连流量为高度的边 如果 ...