一、操作员信息表,表名为userInfo ( 操作员编号:userID, 数据类型为uniqueidentifier,主键,默认值为NEWID(), 操作员类型: userType ,数据类型为VARCHAR(20),非空,取值只能为:ATM或营业员两种 )
时间: 2024-04-05 10:31:16 浏览: 135
好的,你的问题是关于操作员信息表的设计。你已经指定了表名为userInfo,字段包括操作员编号(userID)和操作员类型(userType),其中userID的数据类型为uniqueidentifier,主键,且默认值为NEWID(),userType的数据类型为VARCHAR(20),非空,取值只能为ATM或营业员两种。这是正确的吗?还有其他要求吗?
相关问题
使用代码编写一、操作员信息表,表名为userInfo ( 操作员编号:userID, 数据类型为uniqueidentifier,主键,默认值为NEWID(), 操作员类型: userType ,数据类型为VARCHAR(20),非空,取值只能为:ATM或营业员两种 ) 二、客户信息表,表名为customerInfo ( 顾客编号:customerID, 数据类型为INT,非空,主键,自动编号(标识列),从1开始,增量为1 顾客姓名:customerName ,数据类型为VARCHAR(20),非空 身份证号:PID, 数据类型为CHAR(18),非空,唯一约束,身份证号只能是15位或18位 联系电话:telephone,数据类型为 CHAR(13),非空,只能是13位,固定电话格式为xxxx-xxxxxxxx 130-1234-5678 客户地址:customerAddress,数据类型为 VARCHAR(50),允许空 )
以下是SQL Server语法的代码,用于创建操作员信息表和客户信息表:
-- 创建操作员信息表
CREATE TABLE userInfo (
userID uniqueidentifier DEFAULT NEWID() PRIMARY KEY,
userType VARCHAR(20) NOT NULL CHECK (userType IN ('ATM', '营业员'))
);
-- 创建客户信息表
CREATE TABLE customerInfo (
customerID INT IDENTITY(1,1) PRIMARY KEY,
customerName VARCHAR(20) NOT NULL,
PID CHAR(18) NOT NULL UNIQUE CHECK (LEN(PID) IN (15, 18)),
telephone CHAR(13) NOT NULL CHECK (LEN(telephone) = 13),
customerAddress VARCHAR(50)
);
注意:以上代码只是示例,具体情况需要根据具体需求进行修改。
生成代码三、银行卡信息表,表名为cardInfo ( 银行卡号:cardID,数据类型为CHAR(19),非空。6216 6653 xxxx xxxx 货币类型:curType,数据类型为 CHAR(5),非空,默认值为RMB 存款种类:savingType,数据类型为CHAR(8),非空,存款种类取值只能为活期/定活两便/定期三种 开户日期:openDate,数据类型为DATETIME,非空,默认为系统当前日期 开户金额:openMoney,数据类型为MONEY,非空,开户金额不低于1元 银行卡余额:balance,数据类型为 MONEY,非空。 银行卡密码:pass,数据类型为CHAR(6),只能是6位,非空,默认值为’888888’ 银行卡是否挂失:IsReportLoss,数据类型为BIT, 必填,取值只能为true或false 顾客编号:customerID,数据类型为INT,非空,外键,表示该卡对应的顾客编号,一位顾客可办理多张卡 是否VIP:IsVIP,数据类型为BIT, 必填,取值只能为true或false,默认值为false 银行卡号和存款种类共同构成主键:Primary key(cardID,savingType) ) 四、交易信息表,表名为transInfo ( 交易编号:transID,数据类型为INT,主键,自动编号(标识列),从1开始,增量为1 操作员编号:userID,数据类型为uniqueidentifier,非空,外键 操作员类型: userType ,数据类型为VARCHAR(20),非空,取值只能为:ATM或营业员两种 交易时间:transDate,数据类型为DATETIME,非空,默认为系统当前日期 交易类型:transType,数据类型为VARCHAR(20),非空,取值只能为存入或支取 银行卡号:cardID,数据类型为CHAR(19),非空。 交易金额:transMoney,数据类型为 MONEY,非空,交易金额必须大于0 交易号:curTransID,数据类型为VARCHAR(500),允许空,转帐操作对应的交易号 备注:remark,数据类型为VARCHAR(50),允许空 )
以下是根据您提供的需求生成的银行卡信息表和交易信息表的SQL语句:
银行卡信息表:
```sql
CREATE TABLE cardInfo (
cardID CHAR(19) NOT NULL,
curType CHAR(5) NOT NULL DEFAULT 'RMB',
savingType CHAR(8) NOT NULL,
openDate DATETIME NOT NULL DEFAULT GETDATE(),
openMoney MONEY NOT NULL CHECK (openMoney >= 1),
balance MONEY NOT NULL,
pass CHAR(6) NOT NULL DEFAULT '888888',
IsReportLoss BIT NOT NULL,
customerID INT NOT NULL,
IsVIP BIT NOT NULL DEFAULT 0,
PRIMARY KEY (cardID, savingType),
FOREIGN KEY (customerID) REFERENCES customerInfo (customerID)
);
```
交易信息表:
```sql
CREATE TABLE transInfo (
transID INT IDENTITY(1,1) PRIMARY KEY,
userID UNIQUEIDENTIFIER NOT NULL,
userType VARCHAR(20) NOT NULL CHECK (userType IN ('ATM', '营业员')),
transDate DATETIME NOT NULL DEFAULT GETDATE(),
transType VARCHAR(20) NOT NULL CHECK (transType IN ('存入', '支取')),
cardID CHAR(19) NOT NULL,
transMoney MONEY NOT NULL CHECK (transMoney > 0),
curTransID VARCHAR(500),
remark VARCHAR(50),
FOREIGN KEY (userID) REFERENCES userInfo (userID),
FOREIGN KEY (cardID, savingType) REFERENCES cardInfo (cardID, savingType)
);
```
阅读全文