Mysql模拟银行数据库系统
时间: 2023-07-27 09:09:04 浏览: 51
好的,下面我来为你模拟一个简单的银行数据库系统。
首先,我们需要创建一个数据库,我们可以把它命名为 bank。
```
CREATE DATABASE bank;
```
接着,我们需要创建一些表来存储数据。我们可以创建以下几个表:
1.用户表(users)
2.账户表(accounts)
3.交易记录表(transactions)
用户表(users)应该包含以下列:
- id:用户ID(自增长整数)
- name:姓名(字符串)
- email:电子邮件地址(字符串)
- password:密码(字符串)
创建用户表的 SQL 命令如下:
```
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
```
账户表(accounts)应该包含以下列:
- id:账户ID(自增长整数)
- user_id:用户ID(整数)
- account_no:账户号码(字符串)
- balance:账户余额(浮点数)
创建账户表的 SQL 命令如下:
```
CREATE TABLE accounts (
id INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
account_no VARCHAR(255) NOT NULL,
balance FLOAT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
```
交易记录表(transactions)应该包含以下列:
- id:交易记录ID(自增长整数)
- account_id:账户ID(整数)
- type:交易类型(字符串,可以是 “deposit” 或 “withdraw”)
- amount:交易金额(浮点数)
- date:交易日期(日期时间类型)
创建交易记录表的 SQL 命令如下:
```
CREATE TABLE transactions (
id INT NOT NULL AUTO_INCREMENT,
account_id INT NOT NULL,
type VARCHAR(255) NOT NULL,
amount FLOAT NOT NULL,
date DATETIME NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (account_id) REFERENCES accounts(id)
);
```
现在,我们已经创建了三个表,并且它们之间有一些关联。接下来,我们可以插入一些示例数据来测试我们的数据库系统。
插入用户数据:
```
INSERT INTO users (name, email, password) VALUES
('张三', 'zhangsan@example.com', '123456'),
('李四', 'lisi@example.com', '123456'),
('王五', 'wangwu@example.com', '123456');
```
插入账户数据:
```
INSERT INTO accounts (user_id, account_no, balance) VALUES
(1, '1234567890', 1000.0),
(2, '2345678901', 2000.0),
(3, '3456789012', 3000.0);
```
插入交易记录数据:
```
INSERT INTO transactions (account_id, type, amount, date) VALUES
(1, 'deposit', 500.0, NOW()),
(1, 'withdraw', 200.0, NOW()),
(2, 'deposit', 1000.0, NOW()),
(3, 'withdraw', 500.0, NOW()),
(3, 'deposit', 2000.0, NOW());
```
现在,我们可以通过查询来获取数据。例如,我们可以使用以下命令获取账户余额:
```
SELECT balance FROM accounts WHERE account_no = '1234567890';
```
我们也可以使用以下命令获取某个用户的所有账户:
```
SELECT * FROM accounts WHERE user_id = 1;
```
还可以使用以下命令获取某个账户的所有交易记录:
```
SELECT * FROM transactions WHERE account_id = 1;
```
这些只是一些简单的示例,你可以根据自己的需要来扩展和优化这个数据库系统。