利用sql建立帐户信息数据库,并定义以下基本表: 帐户(编号,姓名,余额,建立日期,储蓄所编号) 储蓄所(编号,名称,地址,人数,所属城市) 借贷(帐户,借贷类型,金额,日期) 1定义主码、外码、和人数、余额的取值范围。 2 在三个表中输入若干记录
时间: 2024-06-09 10:07:45 浏览: 5
以下是针对题目要求所建立的帐户信息数据库的SQL代码:
```
-- 创建储蓄所表
CREATE TABLE `储蓄所` (
`编号` int(11) NOT NULL AUTO_INCREMENT,
`名称` varchar(50) NOT NULL,
`地址` varchar(100) NOT NULL,
`人数` int(11) NOT NULL,
`所属城市` varchar(50) NOT NULL,
PRIMARY KEY (`编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建帐户表
CREATE TABLE `帐户` (
`编号` int(11) NOT NULL AUTO_INCREMENT,
`姓名` varchar(50) NOT NULL,
`余额` decimal(10,2) NOT NULL,
`建立日期` date NOT NULL,
`储蓄所编号` int(11) NOT NULL,
PRIMARY KEY (`编号`),
CONSTRAINT `fk_储蓄所` FOREIGN KEY (`储蓄所编号`) REFERENCES `储蓄所` (`编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建借贷表
CREATE TABLE `借贷` (
`帐户` int(11) NOT NULL,
`借贷类型` varchar(50) NOT NULL,
`金额` decimal(10,2) NOT NULL,
`日期` date NOT NULL,
PRIMARY KEY (`帐户`,`借贷类型`),
CONSTRAINT `fk_帐户` FOREIGN KEY (`帐户`) REFERENCES `帐户` (`编号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 定义人数、余额的取值范围
ALTER TABLE `储蓄所` MODIFY `人数` int(11) NOT NULL CHECK (`人数`>=0);
ALTER TABLE `帐户` MODIFY `余额` decimal(10,2) NOT NULL CHECK (`余额`>=0);
```
接下来是三个表的样例记录:
```
-- 储蓄所表样例记录
INSERT INTO `储蓄所` (`编号`, `名称`, `地址`, `人数`, `所属城市`) VALUES
(1, '中国银行北京分行', '北京市朝阳区建国路18号', 500, '北京'),
(2, '中国银行上海分行', '上海市黄浦区中山南路23号', 380, '上海'),
(3, '中国银行广州分行', '广州市越秀区广东路191号', 250, '广州');
-- 帐户表样例记录
INSERT INTO `帐户` (`编号`, `姓名`, `余额`, `建立日期`, `储蓄所编号`) VALUES
(1, '张三', 10000.00, '2022-01-01', 1),
(2, '李四', 5000.00, '2022-02-01', 2),
(3, '王五', 8000.00, '2022-03-01', 3),
(4, '赵六', 12000.00, '2022-04-01', 1),
(5, '小明', 3000.00, '2022-05-01', 2),
(6, '小红', 6000.00, '2022-06-01', 3);
-- 借贷表样例记录
INSERT INTO `借贷` (`帐户`, `借贷类型`, `金额`, `日期`) VALUES
(1, '借款', 5000.00, '2022-01-10'),
(1, '还款', 3000.00, '2022-02-01'),
(2, '借款', 2000.00, '2022-02-15'),
(3, '借款', 10000.00, '2022-03-05'),
(4, '还款', 8000.00, '2022-04-20'),
(5, '借款', 500.00, '2022-05-05'),
(6, '还款', 3000.00, '2022-06-15');
```
以上是一个简单的帐户信息数据库的建立和样例记录的插入。注意,这里只是示范,实际应用中还需要更详细地设计表结构和添加各种约束和索引。