建立銀行資料庫bankDB

萬里無雲便是我發表於2017-04-03

問題描述:

建立銀行資料庫bankDB

1、建立資料庫1  2   2


1-1 建立資料夾用以存放資料庫


1-2 建立建庫bankDB


2、建立資料庫


2-1、建立使用者資訊表userInfo


欄位名稱

資料型別

說明

customerID

int

客戶編號,主鍵

customerName

CHAR(8)

客戶姓名

PID

CHAR(18)

身份證號

telephone

CHAR(13)

電話

address

VARCHAR(50)

地址


 


 


2-2、建立銀行卡資訊表 cardInfo


欄位名稱

資料型別

說明

cardID 

CHAR(19)

卡號

curType

CHAR(5)

型別

savingType 

CHAR(18)

存款型別(存或取)

openDate 

DATETIME

開戶時間

openMoney 

MONEY

開戶金額

balance 

MONEY

帳戶餘額

pass

CHAR(6)

密碼

IsReportLoss

BIT

是否掛失

customerID

Int

客戶帳號


 


 


2-3、建立交易資訊表 transInfo


欄位名稱

資料型別

說明

transDate 

DATETIME

交易日期

transType 

CHAR(4)

交易型別

cardID

CHAR(19)

卡號

transMoney 

MONEY

交易金額

remark 

TEXT  

備註


 


 


3、加約束


3-1 userInfo表的約束


customerID  顧客編號  自動編號(標識列),從1開始,主鍵


customerName 開戶名 必填


PID   身份證號  必填,只能是18位,身份證號唯一約束


telephone 聯絡電話  必填,手機號位


address  居住地址  可選輸入


 


3-2 cardInfo表的約束


cardID 卡號  必填,主健,銀行的卡號規則和電話號碼一樣,一般前位代表特殊含義,如某總行某支行等。假定該行要求其營業廳的卡號格式為:3576 xxxx xxx開始


curType  貨幣  必填,預設為1RMB


savingType  存款種類  活期/定活兩便/定期


openDate 開戶日期  必填,預設為系統當前日期


openMoney 開戶金額  必填,不低於1


balance  餘額  必填,不低於1元,否則將銷戶


pass  密碼  必填,6位數字,預設為6


IsReportLoss 是否掛失 必填,是/否值,預設為”否”


customerID  顧客編號  必填,表示該卡對應的顧客編號,一位顧客可以辦理多張卡


 


3-3 transInfo表的約束


transType       必填,只能是存入/支取


cardID 卡號  必填,外健,可重複索引


transMoney  交易金額  必填,大於1


transDate 交易日期  必填,預設為系統當前日期


remark 備註  可選輸入,其他說明


 


4、 插入測試資料


張三開戶,身份證:,電話:-67898978,地址:北京海淀


   開戶金額:活期 卡號:3576 1234 5678


李四開戶,身份證:,電話:-44443333,


   開戶金額:1 定期卡號:3576 1212 1134





程式碼:

 

if exists (select *from sysdatabases where name='bankDB')
drop database bankDB
create database bankDB
on primary--主資料庫檔案
(
 name = 'bankDB-張晴晴',
 filename ='D:\project\bankDB.mdf',
 size=5mb,
 maxsize=100mb,
 filegrowth=2mb  
),--次要資料庫檔案
(
 name = 'bankDB01',
 filename ='c:\project01\bankDB01.ndf',
 size=5mb,
 maxsize=100mb,
 filegrowth=2mb 
),
(
 name = 'bankDB02',
 filename ='c:\project02\bankDB02.ndf',
 size=5mb,
 maxsize=100mb,
 filegrowth=2mb 

)--日誌檔案
log on
(
 name = 'bankDB_log1',
 filename ='C:\log1\bankDB_log1.ldf',
 size=5mb,
 maxsize=100mb,
 filegrowth=2mb 
  
),
(
 name = 'bankDB_log2',
 filename ='C:\log2\bankDB_log2.ldf',
 size=5mb,
 maxsize=100mb,
 filegrowth=2mb  
)
----------------------使用者表----------------------------------------------------
if exists (select *from sysobjects where name='userInfo')
drop table userInfo
create table userInfo
(
customerID	int identity (1,1),--客戶編號,主鍵
customerName CHAR(8) not null,	--客戶姓名
PID	CHAR(18),--身份證號
telephone	CHAR(11)not null,--	電話
address	VARCHAR(50)--地址
)
alter table userInfo--主鍵必填
add constraint PK_customerID primary key(customerID)

alter table userInfo--唯一約束
add constraint UK_customerName unique(customerName)



----------------------卡號表----------------------------------------------------
if exists (select *from sysobjects where name='cardInfo')
drop table cardInfo
create table cardInfo--建立銀行卡資訊表 
(
cardID CHAR(19)not null,--卡號
curType	CHAR(5)not null,--型別
savingType CHAR(18)not null,--	存款型別(存或取)
openDate DATETIME not null,-- 	開戶時間
openMoney MONEY not null,--	開戶金額
balance MONEY not null,--	帳戶餘額
pass CHAR(6) not null,--	密碼
IsReportLoss BIT not null,--	是否掛失
customerID Int not null,--	客戶帳號
)
---------------------------------cardInfo表的約束-----------------------------------
alter table cardInfo
add constraint PK_cardID primary key(cardID)
--savingType	存款種類	活期/定活兩便/定期
alter table cardInfo
add constraint CK_savingType check(savingType='活期' or savingType='定活兩便' or savingType='定期')
--cardID	卡號	必填,主健, 卡號格式為:3576 xxxx xxx開始
alter table cardInfo
add constraint CK_cardID check(cardID like '3576%')
--openDate	開戶日期	必填,預設為系統當前日期
alter table cardInfo
add constraint DF_openDate default(getdate())for openDate
--貨幣	必填,預設為1RMB 
alter table cardInfo
add constraint DF_curType default('RMB')for curType
--openMoney	開戶金額	必填,不低於1元
alter table cardInfo
add constraint CK_openMoney check(openMoney>=1)
--balance	餘額	必填,不低於1元,否則將銷戶
alter table cardInfo
add constraint CK_balance check(balance>=1)
--pass	密碼必填,6位數字,預設為6個
alter table cardInfo
add constraint CK_pass check(len(pass)=6)
--IsReportLoss	是否掛失 必填,是/否值,預設為”否”
alter table cardInfo
add constraint DF_IsReportLoss default(0)for IsReportLoss
/*
customerID	顧客編號 必填,表示該卡對應的顧客編號,一位顧客可以辦理多張卡
*/
--------------------交易表-------------------------------------------------
if exists (select *from sysobjects where name='transInfo')
drop table transInfo
create table transInfo--建立交易資訊表 transInfo
(
transDate  DATETIME,--	交易日期
transType  CHAR(4),--	交易型別
cardID	CHAR(19),--	卡號
transMoney  MONEY,--	交易金額
remark TEXT-- 備註
)
----------------transInfo表的約束---------------------------------------------------
--transType       必填,只能是存入/支取
alter table transInfo
add constraint CK_transType check(transType='存入' or transType='支取')

--transMoney	交易金額	必填,大於1元
alter table transInfo
add constraint CK_transMoney check(transMoney>=1)

--transDate	交易日期	必填,預設為系統當前日期
alter table transInfo
add constraint DF_transDate default(getdate())for transDate

--cardID	卡號	必填,外健,可重複索引
alter table transInfo
add constraint FK_cardID  foreign key (cardID )references cardInfo(cardID )
/*
remark	備註	可選輸入,其他說明
*/
----------------------------插入測試資料-------------------------------------
insert into userInfo
(customerName,PID,telephone,address)
values('張三','370786999952147896','67898978','北京海淀')
insert into cardInfo
(customerID,openMoney,savingType,cardID,curType,openDate,balance,pass,IsReportLoss)
values('123456','2','活期','357612345678',default,default,'5','564789',default)
insert into userInfo
(customerName,PID,telephone)
values('李四','370786999952147896','44443333')
insert into cardInfo
(customerID,openMoney,savingType,cardID,curType,openDate,balance,pass,IsReportLoss)
values('589647','4','定期','357612121134',default,default,'5','564789',default)





相關文章