第1關:創建db_ebank數據庫
drop database IF EXISTS db_ebank;/********** Begin **********/
create database db_ebank;
/********** End **********/show databases;
第2關:創建數據表并設置約束
1.任務要求
在 db_ebank 數據庫中創建相應8個數據表,并設置約束實施數據完整性控制,主鍵外鍵建立表間關聯。
2.表結構
tb_personal
tb_company?
tb_customer?
tb_bankoutlets?
tb_machine?
tb_cardInfo?
tb_deposit?
tb_tradeInfo?
這一關主啵敲了一下午 頭歌各種報錯 直接上代碼
頭歌有復制限制的可以去看主啵主頁的置頂文章 解除方法很簡單 只需幾秒鐘
3.代碼
drop database IF EXISTS db_ebank;
CREATE DATABASE `db_ebank` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
use db_ebank;
SET FOREIGN_KEY_CHECKS = 0;/********** Begin **********/DROP TABLE IF EXISTS `tb_bankoutlets`;
create table tb_bankoutlets(bankID int primary key,bankName varchar(50) NOT NULL,address varchar(255) NOT NULL,moneyReserve double,createTime datetime,status enum('1','2','3')
);DROP TABLE IF EXISTS `tb_cardinfo`;
create table tb_cardinfo(cardID char(19)primary key,customerID int NOT NULL,customerType tinyint NOT NULL,curID varchar(10) NOT NULL DEFAULT 'RMB',savingID int NOT NULL,openDate datetime NOT NULL,openMoney decimal(20,2) NOT NULL,balance decimal(20,2) NOT NULL,password char(6) NOT NULL DEFAULT '888888',isReportLoss tinyint NOT NULL DEFAULT 0,isLogout tinyint NOT NULL DEFAULT 0,isFrozen tinyint NOT NULL DEFAULT 0,frozenMoney decimal(20,2),bankID int NOT NULL,type enum('借記卡','信用卡')
);DROP TABLE IF EXISTS `tb_company`;
create table tb_company(companyID int primary key,customerID int NOT NULL,creditCode char(18),legalPerson varchar(50),legalPersonCard char(18),Vip tinyint NOT NULL DEFAULT 0,nature varchar(150),registeredCapital decimal(20,2),registeredDate datetime,address varchar(255) NOT NULL,createDate datetime,customerName varchar(100) NOT NULL,telephone varchar(15) NOT NULL,isLogout tinyint DEFAULT 0,remark varchar(255)
);DROP TABLE IF EXISTS `tb_customer`;
create table tb_customer(customerID int primary key,type enum('1','2') NOT NULL,relationID int NOT NULL
);DROP TABLE IF EXISTS `tb_deposit`;
create table tb_deposit(savingID int primary key,savingName varchar(20) NOT NULL,descript varchar(50)
);DROP TABLE IF EXISTS `tb_machine`;
create table tb_machine(machine char(8) primary key,bankID int
);DROP TABLE IF EXISTS `tb_personal`;
create table tb_personal(personalID int primary key,customerID int NOT NULL,customerName varchar(50)NOT NULL,PID char(18)NOT NULL,Vip tinyint NOT NULL DEFAULT 0,sex tinyint NOT NULL,birthDate datetime NOT NULL,educationalLevel varchar(30),marriage varchar(15),email varchar(50),telephone varchar(11),address varchar(50),isLogout tinyint NOT NULL DEFAULT 0,createDate datetime,remark varchar(255)
);DROP TABLE IF EXISTS `tb_tradeinfo`;
create table tb_tradeinfo(tradeDate datetime NOT NULL,tradeType enum('存入','支出') NOT NULL,cardID char(19) NOT NULL,tradeMoney decimal(20,2) NOT NULL,machine char(8) NOT NULL,remark varchar(255),primary key (tradeDate,cardID)
);alter table tb_company add constraint fk_customerID foreign key(customerID) references tb_customer(customerID);
alter table tb_tradeinfo add constraint fk_cardID foreign key(cardID)references tb_cardinfo(cardID);
alter table tb_tradeinfo add constraint fk_machine foreign key(machine) references tb_machine(machine);
alter table tb_machine add constraint fk_bankID foreign key(bankID) references tb_bankoutlets(bankID);
alter table tb_cardinfo add constraint fk_cardinfo_customerID foreign key (customerID) references tb_customer(customerID);
alter table tb_cardinfo add constraint fk_savingID foreign key(savingID) references tb_deposit(savingID);
alter table tb_cardinfo add constraint fk_cardinfo_bankID foreign key (bankID) references tb_bankoutlets(bankID);/********** End **********/SET FOREIGN_KEY_CHECKS = 1;
show tables;
第3關:tb_personal 表中新增個人賬戶張韻文
1.增刪查改
插入
// 指定字段
INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…);
// 不指定字段,則添加的值的順序應和字段在表中的順序完全一致。
INSERT INTO 表名 VALUES(值11,值2,…);
刪除
DELETE FROM 表名 [WHERE 條件表達式]; ? ?// where可以讓刪除更細粒化
查看
SELECT 字段名1,字段名2,… FROM 表名;
修改(更新)
UPDATE 表名 SET 字段名1=值1,[字段名2=值2,…] [ WHERE 條件表達式 ];
2.代碼
use db_ebank;/********** Begin **********/
insert into tb_personal values (13,57896561, '張韻文','350781199403072206', 0,1, '1994-03-07 06:29:39', '小學', '未婚', '17632541845@qq.com', '17632541845', '四川省成都市武侯區', 0, '2023-01-13 03:35:30', NULL);
/********** End **********/select * from tb_personal where customerName = '張韻文';
第4關:tb_company 表中新增企業賬戶好又來生物有限公司
use db_ebank;/********** Begin **********/
insert into tb_company values(10,90123655, '9123456151014123', '趙其', '635254215648427785', 0,'生物/醫學', 10000000.00, '2021-01-27', '河北石家莊', '2022-02-15', '好友來生物有限公司', '18896854523', 0, NULL);
/********** End **********/select * from tb_company where customerName = '好友來生物有限公司';
第5關:在 tb_cardInfo 表中對應新增兩個新賬戶的開卡記錄
use db_ebank;/********** Begin **********/
insert into tb_cardinfo values ('6227 2666 6767 9884', 57896561, 1, 'RMB', 2, '2008-08-16', 10, 10000, '050050', 0, 0, 0, 0, 1, '儲蓄卡');
insert into tb_cardinfo values ('6227 2666 6767 9501', 90123655, 1, 'RMB', 3, '2022-02-15', 10000, 200000,'888888', 0, 0, 0, 0, 14, '儲蓄卡');
/********** End **********/select * from tb_cardinfo where cardID in ('6227 2666 6767 9884','6227 2666 6767 9501');
第6關:張韻文取款2000元,tb_trdeInfo 表中新增存取儲蓄業務記錄,并且張韻文用戶銀行卡對應減少2000
use db_ebank;/********** Begin **********/
insert into tb_tradeinfo(tradeType,cardID,tradeMoney,machine,remark)values('支出','6227 2666 6767 9884','2000.00','22021435',NULL);
update tb_cardinfo set balance='6000.00' where cardID='6227 2666 6767 9884';
/********** End **********/select tradeType,cardID,tradeMoney,machine,remark from tb_tradeinfo where cardID = '6227 2666 6767 9884';
select * from tb_cardinfo where cardID = '6227 2666 6767 9884';
第7關:好又來生物有限公司要注銷其在怡貝銀行賬戶,tb_company 表中刪除該企業賬戶記錄
這里需要在第2行加一句delete代碼 加了之后就不會報錯
use db_ebank;
DELETE FROM tb_company WHERE companyID=10;
INSERT INTO `tb_company` VALUES (10,90123655, '9123456151014123', '趙其', '635254215648427785',0, '生物/醫學', 10000000.00, '2021-01-27', '河北石家莊', '2022-02-15', '好友來生物有限公司', '18896854523', 0, NULL);
/********** Begin **********/
delete from tb_company where tb_company.companyID=10;
/********** End **********/
select * from tb_company;
第8關:備份并導出db_ebank數據庫
1.數據庫的導入導出
導出
mysqldump -u用戶名 -p密碼 數據庫名 [表名] > 導出文件名
導入
mysql -u用戶名 -p密碼 數據庫名 < 導出文件名
在實訓開始前需要點擊測評按鈕初始化數據庫,然后在命令行完成數據庫的備份和導出,最后點擊測評。
2.代碼
第9關:刪除db_ebank數據庫
/********** Begin **********/
drop database db_ebank;
/********** End **********/
show databases;
第10關:恢復導入db_ebank數據庫
實訓開始之前先重置命令行(右上角“工具”按鈕中)
然后完成這三行代碼即可
?/data/workspace/myshixun/step1/common/db_bank.sql