diff --git "a/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/.keep" "b/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232.sql" "b/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232.sql" new file mode 100644 index 0000000000000000000000000000000000000000..ee80ec88b25ee61e94241c8ef19060920d5291e0 --- /dev/null +++ "b/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232.sql" @@ -0,0 +1,56 @@ +--例3:使用游标实现加薪操作 +--创建游标 +declare cur_id cursor scroll for select PeopleId from People +--打开游标 +open cur_id +--提取数据 +declare @id int, @money money = 1000 +fetch first from cur_id into @id +while (@@fetch_status = 0) + begin + update People set PeopleSalary += @money where PeopleId = @id + fetch next from cur_id into @id + end +--关闭游标 +close cur_id +select * from People +go + +--例4:使用游标删除不达标员工 +select * from People +--创建 +declare cur_id cursor scroll for select PeopleId,PeopleSalary from People +--打开 +open cur_id +--提取 +declare @id int, @money money +fetch first from cur_id into @id,@money +while(@@FETCH_STATUS = 0) + begin + if(@money < 10000) + begin + delete People where PeopleId = @id + fetch next from cur_id into @id,@money + end + else + fetch next from cur_id into @id,@money + end +close cur_id +select * from People +go +--使用游标 实现:如果A表与B表中ID字段值相同,那么将B表中的省份,城市 修改成与A表中的城市一致(连表) + +declare cur_id cursor scroll for select A.* from A inner join B on A.id = B.id +deallocate cur_id +open cur_id +declare @id int , @id1 int,@Province varchar(10),@City varchar(10) +fetch first from cur_id into @id,@Province,@City +while(@@FETCH_STATUS = 0) + begin + update B set B.Province = @Province , B.City = @City where B.id = @id + fetch next from cur_id into @id,@Province,@City + end + +close cur_id +select * from A +select * from B \ No newline at end of file diff --git "a/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\344\271\235\346\254\241\347\254\224\350\256\260.md" "b/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\344\271\235\346\254\241\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..f63bd86deac98d308096402e566fbf9cfd4200cc --- /dev/null +++ "b/20\347\216\213\344\270\226\350\264\242/2022-9-30\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\344\271\235\346\254\241\347\254\224\350\256\260.md" @@ -0,0 +1,56 @@ +-例3:使用游标实现加薪操作 +--创建游标 +declare cur_id cursor scroll for select PeopleId from People +--打开游标 +open cur_id +--提取数据 +declare @id int, @money money = 1000 +fetch first from cur_id into @id +while (@@fetch_status = 0) + begin + update People set PeopleSalary += @money where PeopleId = @id + fetch next from cur_id into @id + end +--关闭游标 +close cur_id +select * from People +go + +--例4:使用游标删除不达标员工 +select * from People +--创建 +declare cur_id cursor scroll for select PeopleId,PeopleSalary from People +--打开 +open cur_id +--提取 +declare @id int, @money money +fetch first from cur_id into @id,@money +while(@@FETCH_STATUS = 0) + begin + if(@money < 10000) + begin + delete People where PeopleId = @id + fetch next from cur_id into @id,@money + end + else + fetch next from cur_id into @id,@money + end +close cur_id +select * from People +go +--使用游标 实现:如果A表与B表中ID字段值相同,那么将B表中的省份,城市 修改成与A表中的城市一致(连表) + +declare cur_id cursor scroll for select A.* from A inner join B on A.id = B.id +deallocate cur_id +open cur_id +declare @id int , @id1 int,@Province varchar(10),@City varchar(10) +fetch first from cur_id into @id,@Province,@City +while(@@FETCH_STATUS = 0) + begin + update B set B.Province = @Province , B.City = @City where B.id = @id + fetch next from cur_id into @id,@Province,@City + end + +close cur_id +select * from A +select * from B \ No newline at end of file