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中浏览记录时,总有一条记录的前面有一个黑色的三角标识,该标识就好像是一个记录指针。
如有错误,欢迎指正!