SQL Server 2008 数据库_实验四_SQL DDL 操作

版权声明:如需转载,请注明出处 https://blog.csdn.net/qq_36260974/article/details/85385652

SQL DDL 操作、

什么是SQL DDL 操作?
  DDL是SQL定义语言,它主要包括三个关键字:create ,alter , drop(数据库关键字不分大小写 ),主要操作对象 有数据库、表、索引、视图等。
  
语句说明:

创建数据库   create database
修改数据库   alter database
删除数据库   drop database
创建表     create table
修改表     alter table
删除表     drop table
创建索引    create index
删除索引    drop index

实验的目的

  • 掌握使用游标的基本步骤。
  • 熟悉卷游标的使用
  • 学习用游标解决实际问题
  • 了解SQL的流程控制

实验内容与要求

1、在实验1、2创建的S、SC、C、T四个基本表的基础上,编写以下游标:
实现一个游标,顺序读取并打印所有学生的 学号、课程号、成绩信息,读取过程中删除S5的选课记录,并将为空的成绩修改为60分。
提示:编写过程中,可需参阅联机丛书获取下列内容的具体用法
(1)声明变量可用declare,为变量赋值用set
(2)需要判断可用if语句,如if内需执行多条语句,可用begin 和 end 来限定if的作用范围
(3)可通过while循环来依次读取所有记录,读取状态可用@@FETCH_STATUS获取
(4)如游标已创建,但执行过程中出错。导致重新执行时提示游标已存在,可用cursor_status来检查是否存在该游标,如存在,则先deallocate
2、实现一个卷游标,逆序打印所有学生的 学号、课程号、成绩信息

实验主要步骤

在实验1、2创建的S、SC、C、T四个基本表的基础上,编写以下游标:
实现一个游标,顺序读取并打印所有学生的 学号、课程号、成绩信息,读取过程中删除S5的选课记录,并将为空的成绩修改为60分

实现一个游标,顺序读取并打印所有学生的 学号、课程号、成绩信息
在这里插入图片描述
源码:

--定义游标
declare @s# char(6),@c# char(6),@score int   --定义变量
declare scuur cursor for select * from sc;   --声明游标
open scuur
fetch next from scuur
into @s#,@c#,@score
while @@FETCH_STATUS = 0
	begin
		if(@score is null)
			begin
				print'学号:'+@s# +'课程号:'+@c#+'成绩:'+'--'
			end
		else
			--begin
				print'学号:'+@s#+'课程号:'+@c#+'成绩:'+ cast(@score as char(5))-- 类型转化
				fetch next from scuur
				into @s#,@c#,@score
			--end
	end

close scuur
deallocate scuur

读取过程中删除S5的选课记录,并将为空的成绩修改为60分
在这里插入图片描述
源码:

declare @s# char(6),@c# char(6),@score int   --定义变量
declare scuur cursor for select * from sc;   --声明游标
open scuur
fetch next from scuur
into @s#,@c#,@score
while @@FETCH_STATUS=0
	begin
		if(@score is null)
			begin
				set @score = 60
				print'学号:'+@s# +'课程号:'+@c#+'成绩:'+cast(@score as char(5))
			end
		else
			begin
				print'学号:'+@s#+'课程号:'+@c#+'成绩:'+cast(@score as char(5))-- 类型转化
				fetch next from scuur
				into @s#,@c#,@score
			end
	end
close scuur
deallocate scuur

实现一个卷游标,逆序打印所有学生的 学号、课程号、成绩信息
在这里插入图片描述
源码:

--实现一个卷游标,逆序打印所有学生的学号、课程号、成绩信息
--卷游标
declare scuur scroll cursor for select * from sc order by sc.s# desc --卷游标的申明scroll
open scuur
fetch next from scuur --利用游标提取数据
while @@FETCH_STATUS=0--返回下一条的数据
	begin
		fetch next from scuur 
	end
--倒过来读取数据
close scuur
deallocate scuur

重点语法介绍:

  • 在T-SQL中,Begin表示语句块的开始;End表示语句块的结束。Begin和End类似于C语言中表示语句块的左花括号{ 和右花括号 }

  • 游标的基本操作:
    –定义游标命令
    declare demo1 cursor for select * from c for read only;
    –打开游标命令
    open demo1 ;
    –执行游标命令
    fetch next from demo1;
    –关闭游标命令
    close demo1;
    –删除游标命令
    deallocate demo1;

  • 游标也可以看作是一个表中的记录指针,该指针与某个查询结果相联系。在某一时刻,该指针只指向一条记录,即游标是通过移动指向记录的指针来处理数据的。当用户在SQL Server Management Studio中浏览记录时,总有一条记录的前面有一个黑色的三角标识,该标识就好像是一个记录指针。

如有错误,欢迎指正!

猜你喜欢

转载自blog.csdn.net/qq_36260974/article/details/85385652