三、创建系统数据表
3.1创建表空间和用户
使用system用户连接数据库后,创建表空间space_zqp,指定数据文件为
D:\\Bank.dbf,代码如下图:
图3.1表空间和用户
3.2创建用户信息表并添加约束
用户信息表保存了用户的基本信息,该表的创建语句如下, CREATE TABLE userInfo (
customerID NUMBER(4) NOT NULL, customerName VARCHAR2(20) NOT NULL,
PID VARCHAR2(18) NOT NULL, telephone VARCHAR2(13) NOT NULL, address VARCHAR2(50) )
PARTITION BY HASH(PID) (
PARTITION pid1, PARTITION pid2, PARTITION pid3, );
ALTER TABLE userInfo
ADD CONSTRAINT PK_customerID PRIMARY KEY(customerID) ADD CONSTRAINT UK_PID UNIQUE(PID)
ADD CONSTRAINT CK_PID CHECK(LENGTH(PID)=18 OR LENGTH(PID)=15) ADD CONSTRAINT CK_telephone CHECK( telephone
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]'OR LENGTH(telephone)=13);
------------------创建可以自动生成自增主列的序列 customerid_seq CREATE SEQUENCE customerid_seq START WITH 1
INCREMENT BY 1 NOCACHE
如上述语句所示,在userInfo表中包含用户编号(customerid)、开户名(customername)、身份证号(PID)、联系电话(telephone)、家庭住址(address)。其中,customerid为主键,自增(从1开始);PID只能是18位或15位,并且是唯一的;telephone必须是xxxx-xxxxxxxx的格式或13位的手机号码。
图3.2用户信息表
3.3创建银行卡信息表
银行卡信息表(cardinfo)中包含了卡号(cardid),货币种类(curType),存款类型(savingtype),开户日期(opendate),开户金额(openmoney),余额(balance),密码(pass),是否挂失(isREPORTLOSS)和用户编号(customerID)的信息。其中,cardID为主键,必须为1010 3756 xxxx xxxx的格式;CURTYPE默认为RMB,openmoney必须不能低于一元;balance也必须不能低于一元;pass
默认为88888888;ISREPORTLOSS的值必须是“是/否”中之一,默认为否;customerID为外键,引用userInfo表中的customerID列。
图3.3
3.4创建交易信息表
交易信息表中包含了五个字段,分别为transdate(交易日期),cardID(卡号)、TRANSTYPE(交易类型),transmoney(交易金额)和remark(备注)。其中,transdate默认为系统当前日期;cardid位外键,引用cardinfo表中的cardid列,可重复;transtype只能是“存入/取出”之一;transmoney必须大于0.
图3.4交易信息表
数据库oracle银行管理系统



