diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.8.29\345\273\272\345\272\223\345\273\272\350\241\250\347\273\203\344\271\240.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.08.29\345\273\272\345\272\223\345\273\272\350\241\250\347\273\203\344\271\240.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.8.29\345\273\272\345\272\223\345\273\272\350\241\250\347\273\203\344\271\240.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.08.29\345\273\272\345\272\223\345\273\272\350\241\250\347\273\203\344\271\240.md" diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.8.30\346\235\241\344\273\266\346\237\245\350\257\242\344\275\234\344\270\232.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.08.30\346\235\241\344\273\266\346\237\245\350\257\242\344\275\234\344\270\232.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.8.30\346\235\241\344\273\266\346\237\245\350\257\242\344\275\234\344\270\232.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.08.30\346\235\241\344\273\266\346\237\245\350\257\242\344\275\234\344\270\232.md" diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.15\350\247\206\345\233\276\347\273\203\344\271\240.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.15\350\247\206\345\233\276\347\273\203\344\271\240.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.15\350\247\206\345\233\276\347\273\203\344\271\240.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.15\350\247\206\345\233\276\347\273\203\344\271\240.md" diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.20\346\270\270\346\240\207\347\273\203\344\271\240.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.20\346\270\270\346\240\207\347\273\203\344\271\240.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.20\346\270\270\346\240\207\347\273\203\344\271\240.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.20\346\270\270\346\240\207\347\273\203\344\271\240.md" diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.21\345\207\275\346\225\260\344\275\234\344\270\232.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.21\345\207\275\346\225\260\344\275\234\344\270\232.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.21\345\207\275\346\225\260\344\275\234\344\270\232.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.21\345\207\275\346\225\260\344\275\234\344\270\232.md" diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.26 \345\255\230\345\202\250\350\277\207\347\250\213\347\273\203\344\271\240.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.26 \345\255\230\345\202\250\350\277\207\347\250\213\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..bf3a4acda73e329247b55666bcc3d8e7fa1adc26 --- /dev/null +++ "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.26 \345\255\230\345\202\250\350\277\207\347\250\213\347\273\203\344\271\240.md" @@ -0,0 +1,105 @@ +select * from AccountInfo --个人信息 +select * from BankCard --银行卡信息 +select * from CardStateChange --银行卡状态更改表 +select * from CardTransfer --转账表 +select * from CardExchange --交易记录 + +--1. 定义存储过程实现查询出账户余额最低的银行卡账户信息,显示银行卡号,姓名,账户余额 + +```sql +go +create proc proc_min +as +select top 1 cardno,RealName,CardMoney from AccountInfo a join BankCard b on a.AccountId=b.AccountId order by CardMoney +go + +exec proc_min +``` + +--2. 模拟银行卡存钱操作,传入银行卡号,存钱金额,实现存钱操作 + +```sql +go +create proc proc_inbank +@no varchar(20),@money money +as +update BankCard set CardMoney=CardMoney+@money where CardNo=@no +insert CardExchange values(@no,@money,0,GETDATE()) +go + +exec proc_inbank '6225125478544587',500 +``` + +--3. 模拟银行卡取钱操作,传入银行卡号,取钱金额,实现取钱操作,取钱成功,返回1,取钱失败返回-1 + +```sql +go +create proc proc_outbank +@no varchar(20),@money money +as +declare @moneys money +select @moneys=CardMoney from BankCard where CardNo=@no +if(@money> @moneys) +begin +return -1 +end +else +begin +update BankCard set CardMoney=CardMoney-@money where CardNo=@no +insert CardExchange values(@no,0,@money,GETDATE()) +return 1 +end +go + +declare @i int +exec @i= proc_outbank '6225125478544587',500 +print @i +``` + +--4. **查询出某时间段的银行存取款信息以及存款总金额**,取款总金额, +--传入开始时间,结束时间,显示存取款交易信息的同时,返回存款总金额,取款总金额。 + +```sql +go +create proc proc_moneyinbank +@bgindate date,@enddate date,@inbank money output,@outbank money output +as +select * from CardExchange where ExchangeTime between @bgindate and @enddate +select @inbank=sum(MoneyInBank),@outbank=sum(MoneyOutBank) from CardExchange where ExchangeTime between @bgindate and @enddate +go + +declare @inbank money ,@outbank money ,@x varchar(20) +exec proc_moneyinbank '2022-09-01','2022-09-30',@inbank output,@outbank output +print '存款金额'+cast(@inbank as varchar(20))+'取款金额'+cast(@outbank as varchar(20)) +--5. **密码升级**,传入用户名和密码,如果用户名密码正确,并且密码长度<8,自动升级成8位密码 +go +create proc proc_pass +@no varchar(20),@pass varchar(20) +as +declare @i varchar(20) +select @i=a.AccountId from AccountInfo a join BankCard b on a.AccountId=b.AccountId where AccountCode=@no and CardPwd=@pass +if @i=null + begin + raiserror('账号或密码错误',16,1) + end +else + begin + if len(@pass)<8 + begin + declare @xx varchar(20) + select @xx=floor(rand()*10) + while len(@pass)<8 + begin + set @pass=@pass+@xx + end + update BankCard set CardPwd=@pass where AccountId=@i + end + end + +go + + +exec proc_pass '420107198905064135','123456' +``` + +--(提示:随机生成 0-9 的整数: float(rand()*10)) rand():随机生成0.0-1.0的小数 float:向下取整) \ No newline at end of file diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.27\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.27\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..bacb6fac6250682258970bee8c7d13dd34fc9c0c --- /dev/null +++ "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.27\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" @@ -0,0 +1,109 @@ +```sql +--部门 +create table Department +( + DepartmentId varchar(10) primary key , --主键,自动增长 + DepartmentName nvarchar(50), --部门名称 +) +--人员信息 +create table People +( + PeopleId int primary key identity(1,1), --主键,自动增长 + DepartmentId varchar(10), --部门编号,外键,与部门表关联 + PeopleName nvarchar(20), --人员姓名 + PeopleSex nvarchar(2), --人员性别 + PeopleSalary money, --薪水 +) +insert into Department(DepartmentId,DepartmentName) +values('001','总经办') +insert into Department(DepartmentId,DepartmentName) +values('002','市场部') +insert into Department(DepartmentId,DepartmentName) +values('003','人事部') +insert into Department(DepartmentId,DepartmentName) +values('004','财务部') + +insert into People(DepartmentId,PeopleName,PeopleSex,PeopleSalary) +values('001','刘备','男',8000) +insert into People(DepartmentId,PeopleName,PeopleSex,PeopleSalary) +values('001','关羽','男',5000) +insert into People(DepartmentId,PeopleName,PeopleSex,PeopleSalary) +values('002','张飞','男',3000) + +select * from Department +select * from People + +--1.创建触发器,往部门表插入一条数据('005','软件部'),输出新插入部门的id和部门名称。 +go +create trigger tri_printInfo +on department after insert +as +begin + declare @id varchar(5),@department varchar(10) + select @id = (select DepartmentId from inserted), @department =(select Departmentname from inserted) + print @id + char(9) + @department +end +go +insert into Department values ('005','软件部') + +--(1)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 +go +create trigger tri_select +on people after insert +as +begin + declare @id int + if not exists (select * from inserted where DepartmentId in (select DepartmentId from Department)) + begin + insert into Department values((select Departmentid from inserted),'新部门') + end +end +insert into people values('007','郁金香','男',8000) +--(2)触发器实现,删除一个部门的时候将部门下所有员工全部删除。 +go +create trigger t2 +on Department after delete +as +begin +delete People where DepartmentId = (select DepartmentId from deleted) +end +go +delete Department where DepartmentId ='005' +--(3)创建一个触发器,删除一个部门的时候判断该部门下是否有员工,有则不删除,没有则删除。 +go +create trigger t3 +on Department instead of delete +as +begin +if (select count(*) from People where DepartmentId = (select DepartmentId from deleted)) = 0 +begin + delete Department where DepartmentId =(select DepartmentId from deleted) +end +end +go +delete Department where DepartmentId ='006' +insert into Department values('006','新新部门') +--(4)修改一个部门编号之后,将该部门下所有员工的部门编号同步进行修改 +go +create trigger t4 +on Department instead of update +as +begin + +update People set DepartmentId = (select DepartmentId from inserted) +where DepartmentId = (select DepartmentId from Department where DepartmentName = '新部门') + +update Department set DepartmentId =(select DepartmentId from inserted) +where DepartmentName = '新部门' + +end +go +update Department set DepartmentId ='007' where DepartmentName = '新部门' +select * from Department +select * from People +drop trigger t1 +drop trigger t2 +drop trigger t3 +drop trigger t4 +``` + diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.6\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221\346\216\247\345\210\266.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.6\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221\346\216\247\345\210\266.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.6\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221\346\216\247\345\210\266.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.6\345\217\230\351\207\217\344\270\216\351\200\273\350\276\221\346\216\247\345\210\266.md" diff --git "a/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.7\345\255\220\346\237\245\350\257\242.md" "b/08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.7\345\255\220\346\237\245\350\257\242.md" similarity index 100% rename from "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.9.7\345\255\220\346\237\245\350\257\242.md" rename to "08\351\273\204\346\245\267\351\222\212/\344\275\234\344\270\232/2022.09.7\345\255\220\346\237\245\350\257\242.md"