From 650da181c0b311a5ad540d9cfc1cbb9ed5c8c21a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=BA=E6=99=8B=E5=8D=93?= <2322990491@qq.com> Date: Wed, 7 Sep 2022 10:12:02 +0800 Subject: [PATCH] 0 --- .../\345\273\272\345\272\223.txt" | 133 ++++++++++++++++++ ...17\344\270\216\351\200\273\350\276\221.md" | 25 ++++ 2 files changed, 158 insertions(+) create mode 100644 "44 \350\264\272\346\231\213\345\215\223/\344\275\234\344\270\232/\345\273\272\345\272\223.txt" create mode 100644 "44 \350\264\272\346\231\213\345\215\223/\347\254\224\350\256\260/\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221.md" diff --git "a/44 \350\264\272\346\231\213\345\215\223/\344\275\234\344\270\232/\345\273\272\345\272\223.txt" "b/44 \350\264\272\346\231\213\345\215\223/\344\275\234\344\270\232/\345\273\272\345\272\223.txt" new file mode 100644 index 0000000..95f1a64 --- /dev/null +++ "b/44 \350\264\272\346\231\213\345\215\223/\344\275\234\344\270\232/\345\273\272\345\272\223.txt" @@ -0,0 +1,133 @@ +create database BankTest; +go +use banktest; +go +--账户信息表:存储个人信息 +create table AccountInfo +( + AccountId int primary key identity(1,1), --账户编号 + AccountCode varchar(20) not null, --身份证号码 + AccountPhone varchar(20) not null, --电话号码 + RealName varchar(20) not null, --真实姓名 + OpenTime smalldatetime not null, --开户时间 +) +--银行卡表:存储银行卡信息 +create table BankCard +( + CardNo varchar(30) primary key, --银行卡卡号 + AccountId int not null, --账户编号(与账户信息表形成主外键关系) + CardPwd varchar(30) not null, --银行卡密码 + CardMoney money not null, --银行卡余额 + CardState int not null,--1:正常,2:挂失,3:冻结,4:注销 + CardTime smalldatetime default(getdate()) --开卡时间 +) +--交易信息表(存储存钱和取钱的记录) +create table CardExchange +( + ExchangeId int primary key identity(1,1), --交易自动编号 + CardNo varchar(30) not null, --银行卡号(与银行卡表形成主外键关系) + MoneyInBank money not null, --存钱金额 + MoneyOutBank money not null, --取钱金额 + ExchangeTime smalldatetime not null, --交易时间 +) +--转账信息表(存储转账信息记录) +create table CardTransfer +( + TransferId int primary key identity(1,1),--转账自动编号 + CardNoOut varchar(30) not null, --转出银行卡号(与银行卡表形成主外键关系) + CardNoIn varchar(30) not null, --转入银行卡号(与银行卡表形成主外键关系) + TransferMoney money not null,--交易金额 + TransferTime smalldatetime not null, --交易时间 +) +--状态信息变化表(存储银行卡状态变化的记录,状态有1:正常,2:挂失,3:冻结,4:注销) +create table CardStateChange +( + StateId int primary key identity(1,1),--状态信息自动编号 + CardNo varchar(30) not null, --银行卡号(与银行卡表形成主外键关系) + OldState int not null, --银行卡原始状态 + NewState int not null, --银行卡新状态 + StateWhy varchar(200) not null, --状态变化原因 + StateTime smalldatetime not null, --记录产生时间 +) + + + +--为刘备,关羽,张飞三个人进行开户开卡的操作 +--刘备身份证:420107198905064135 +--关羽身份证:420107199507104133 +--张飞身份证:420107199602034138 +insert into AccountInfo(AccountCode,AccountPhone,RealName,OpenTime) +values('420107198905064135','13554785425','刘备',GETDATE()) +insert into BankCard(CardNo,AccountId,CardPwd,CardMoney,CardState) +values('6225125478544587',1,'123456',0,1) + +insert into AccountInfo(AccountCode,AccountPhone,RealName,OpenTime) +values('420107199507104133','13454788854','关羽',GETDATE()) +insert into BankCard(CardNo,AccountId,CardPwd,CardMoney,CardState) +values('6225547858741263',2,'123456',0,1) + +insert into AccountInfo(AccountCode,AccountPhone,RealName,OpenTime) +values('420107199602034138','13456896321','张飞',GETDATE()) +insert into BankCard(CardNo,AccountId,CardPwd,CardMoney,CardState) +values('6225547854125656',3,'123456',0,1) + +select * from AccountInfo +select * from BankCard + + + +--进行存钱操作,刘备存钱2000元,关羽存钱:8000元,张飞存钱:500000元 +select * from AccountInfo +update BankCard set CardMoney = CardMoney + 2000 where CardNo = '6225125478544587' +insert into CardExchange(CardNo,MoneyInBank,MoneyOutBank,ExchangeTime) +values('6225125478544587',2000,0,GETDATE()) + +update BankCard set CardMoney = CardMoney + 8000 where CardNo = '6225547858741263' + +insert into CardExchange(CardNo,MoneyInBank,MoneyOutBank,ExchangeTime) +values('6225547858741263',8000,0,GETDATE()) + +update BankCard set CardMoney = CardMoney + 500000 where CardNo = '6225547854125656' +insert into CardExchange(CardNo,MoneyInBank,MoneyOutBank,ExchangeTime) +values('6225547854125656',500000,0,GETDATE()) + +--转账:刘备给张飞转账1000元 +update BankCard set CardMoney = CardMoney -1000 where CardNo = '6225125478544587' +update BankCard set CardMoney = CardMoney + 1000 where CardNo = '6225547854125656' + +insert into CardTransfer(CardNoOut,CardNoIn,TransferMoney,TransferTime) +values('6225125478544587','6225547854125656',1000,GETDATE()) + + + +select * from AccountInfo --个人信息 +select * from BankCard --银行卡信息 +select * from CardStateChange --银行卡状态更改表 +select * from CardTransfer --转账表 +select * from CardExchange --交易记录 + +--1. 为赵云此人进行开户开卡操作,赵云身份证:420107199904054233 +insert into AccountInfo(AccountCode,AccountPhone,RealName,OpenTime) +values('420107199904054233','13559509629','赵云',GETDATE()) +insert into BankCard(CardNo,AccountId,CardPwd,CardMoney,CardState) +values('6225125478544599',4,'123456',0,1) + +--2. 需要求出张飞的银行卡卡号和余额,张飞身份证:420107199602034138 (1.使用连接查询,2.使用变量) +declare @a varchar (20) = 420107199602034138 +select RealName ,CardNo , CardMoney from BankCard +inner join AccountInfo on AccountInfo.AccountId = BankCard.AccountId +where AccountCode = @a + +--3.某用户银行卡号为“6225547854125656”,该用户执行取钱操作,取钱5000元,余额充足则进行取钱操作,并提示"取钱成功",否则提示“余额不足”。 +declare @money money +select @money = CardMoney from BankCard where CardNo = 6225547854125656 +print @money +if @money >5000 +begin + print '取钱成功' + end +else +if @money <5000 +begin + print '余额不足' + end \ No newline at end of file diff --git "a/44 \350\264\272\346\231\213\345\215\223/\347\254\224\350\256\260/\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221.md" "b/44 \350\264\272\346\231\213\345\215\223/\347\254\224\350\256\260/\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221.md" new file mode 100644 index 0000000..b54d7c0 --- /dev/null +++ "b/44 \350\264\272\346\231\213\345\215\223/\347\254\224\350\256\260/\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221.md" @@ -0,0 +1,25 @@ +| --变量:局部变量,全局变量 | | | +| ------------------------- | ------------------------------------------------------------ | -------------------------------------------------------- | +| | [2](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_2) | --局部变量:@ | +| | [3](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_3) | --全局变量:@@ | +| | [4](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_4) | | +| | [5](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_5) | --选择结构:单分支:if 双分支:if-else, 嵌套if | +| | [6](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_6) | --if 条件 begin 语句 end | +| | [7](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_7) | | +| | [8](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_8) | --循环: while break(跳出循环)、continue(跳出当前循环) | +| | [9](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_9) | --Oracle: LOOP while...LOOP, FOR..LOOP | +| | [10](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_10) | --mysql: repeat | +| | [11](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_11) | --逻辑控制 | +| | [12](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_12) | | +| | [13](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_13) | --逻辑控制 case when | +| | [14](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_14) | --java: switch: case default | +| | [15](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_15) | | +| | [16](https://gitee.com/grade21_class_3/advanced-sql/pulls/71/files#09263d1be6aac12ecd46287739815ced2561a028_0_16) | {while:可以通过break和continue控制循环语句中的执行。} | + +## SET与SELECT区别 + +| 使用场景 | SET | SELECT | +| ------------------ | ---------------- | -------------------------- | +| 同时对多个变量赋值 | 不支持 | 支持 | +| 表达式返回多个值时 | 出错 | 将返回的最后一个值赋给变量 | +| 表达式未返回值时 | 变量被赋予NULL值 | 变量保持原值 | \ No newline at end of file -- Gitee