--一、建库、建表、建约束
--1、使用SQL创建表
--客户信息表userinfo
--字段名称 说明 备注
--customerID 顾客编号 自动编号(标识列),从1开始,主键
--用序列sequence实现,用其属性:nextval
--customerName 开户名 必填
--PID 身份证号 必填,智能是18位或15位,唯一约束 check约束len()函数
--telephone 联系电话 必填,11位手机号 check约束,’[0-9]’
--address 居住地址
create table userinfo
(
customerID int identity(1,1),
customerName char(10),
PID char(18) ,
telephone char(11),
address char(30)
)
--银行卡信息表cardinfo
--字段名称 说明
--cardID 卡号 必填,主键,
--银行的卡号规则和电话号码一样,一般前8位代表特殊含义,如某综合某支行等,
--假定该行要求其营业厅的卡号格式为10103576**** ***开始,
--每4位号码后有空格,卡号一般是随机产生。
--curType 货币种类 必填,默认为RMB
--savingTate 存款类型 活期/定活两便/定期
--openDate 开户日期 必填,默认为系统当前日期
--openMoney 开户金额 必填,不低于1元
--balance 余额 必填,不低于1元,否则将销户
--pass 密码 必填,6位数字,开户时默认为6个“6”
--IsReportloss 是否挂失 必填,是/否值,默认为“否”
--customerID 顾客编号 外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号
create table cardinfo
(
cardID char(19) not null,
curType char(10),
savingTate char(10) ,
openDate datetime,
openMoney money,
balance money,
pass char(6),
IsReportloss char(2) ,
customerID int
)
--交易信息表transinfo
--字段名称 说明
--transDate 交易日期 必填,默认为系统当前日期
--cardID 卡号 必填,外键
--transType 交易类型 必填,只能是存入/支取
--transMoney 交易金额 必填,大于0
--remark 备注 可选,其他说明
create table transinfo
(
transDate datetime,
cardID char(19),
transType char(4),
transMoney money,
remark varchar(100)
)
--2、使用SQL语言在每个表上添加约束
--主键约束、外键约束、CHECK约束、默认约束、非空约束
--①
--客户信息表userinfo
--customerID 顾客编号 自动编号(标识列),从1开始,主键
alter table userinfo
add constraint PK_userinfor primary key(customerID)
--customerName 开户名 必填
alter table userinfo
add constraint CK_cn check(customerName is not null)
--PID 身份证号 必填,智能是18位或15位,唯一约束 check约束len()函数
alter table userinfo
add constraint CK_PID check(len(PID)=18 or len(PID)=15 )
alter table userinfo
add constraint CK_pn check(PID is not null)
alter table userinfo
add constraint UK_pid unique(pid)
--telephone 联系电话 必填,11位手机号 check约束,’[0-9]’
alter table userinfo
add
数据库期末作业之银行ATM存取款机系统
最新推荐文章于 2024-07-14 10:22:54 发布