一、批处理

1、批处理时从客户机传递到服务器上的一组完整的数据和SQL指令。

   在一个批处理中可包含一条或多条SQL指令。

2、批处理是以GO关键字结束的。go并不是批处理命令,值用于标示批处理的结束。

3、批处理的示例

select 学生编号,姓名,年龄,性别from student

      where 性别=''

      update student

      set 年龄=年龄+1

      where 姓名='小超'

      select 学生编号,姓名,年龄,性别from student

      where 性别=''

      go

4、某些特殊的命令是不能同其他命令出现在一个批处理文件中的。

   create  datebasetableview

二、变量

1、变量是一个容器,由变量名、变量地址和变量值构成。

2SQL变量包括两种:

全局变量:应用于RDBMS的管理工作。

局部变量:应用于一个批处理操作中。

3、定义局部变量

局部变量名使用@开头。

    declare  @变量名  数据类型

    declare  @变量名  数据类型,@变量名  数据类型,......

4、为变量赋值

使用select语句为变量赋值

select  @变量名=变量值

select  @a=20

select @变量名=变量值@变量名=变量值......

select @a=20,@b=30,@c=@a+@b

declare @a varchar(20)

            select @a=姓名 from student

            where 学费=23250

            print @a

           

将学费最高的同学的姓名赋给变量@a

declare @a varchar(20),@b int

set @b=(select top 1 学费from student order by 学费desc )

select @a=姓名from student 

where 学费=@b

print @a

使用set语句为变量赋值

set  @变量名=变量值

         set  @变量名=查询结果

示例declare @a varchar(20),@b varchar(20),@c varchar(20)

set @a='hello'

set @b=(select 姓名from student where  学费=23250)

set @c='你该缴费了'

print @a

print @b

print @c

5、变量的引用

利用select命令引用变量

select  @变量名 字段别名

declare @a int

set @a=123456

select @a '本月工资'

利用print命令打印变量值

print @变量名

利用表达式引用变量

where  学费=@a

输出***是年龄最大的同学

***是年龄最小的同学

declare @a int,@b int,@maxname varchar(20),@minname varchar(20)

select @a=max(年龄) from student

select @b=min(年龄) from student

select @maxname=姓名from student where 年龄=@a

select @minname=姓名from student where 年龄=@b

print @maxname+'是年龄最大的同学'

print @minname+'是年龄最小的同学'

declare @a varchar(20)

       set @a=(select 姓名from student where 学生编号=(select 学生编号from res where 哲学=(select   

           max(哲学) from res)))

      print @a+'的哲学成绩最高'

if (select avg(声乐) from res)>=80

  print '你们的平均成绩及格'

      else

  print '你们的平均成绩不及格一群笨蛋'

if exists(select 姓名from student where 姓名='马超')

         print '查有此人'

         else

            print '查无此人'

如果学校的平均学费高于9000,输出学校平均学费,输出本校名师,教师姓   名,教师职称

       如果学校的平均学费低于9000,输出本校价格优惠。

如果声乐课的平均成绩高于60,输出平均成绩及格,以及每个学生的声乐课成绩,和声乐课不及格的同学。

如果声乐课的平均成绩低于60,输出平均成绩不及格。输出声乐课成绩不及格而需要重新补考的学生姓名和声乐课成绩。

 

 

 

 

范例:

alter database cx

add file(name=cxa,filename='c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\cxa.ndf',

size=10,maxsize=200)

add file(name=cxb,filename='c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\cxb.ndf',

size=10,maxsize=200,filegrowthe=10%)

                                   

                                     更新数据

use test

insert into table_3

values 

(2008001 ,'','',23,'','辽宁','音乐','大专',8000)

create table tab1

(编号 int )

insert into tab1

values

(2008001)

select * from table_2

create table table_3

(学生编号 int,

 姓名 varchar(16),

 性别 char(2),

 年龄 tinyint,

 民族 varchar(12),

 籍贯 varchar(50),

 专业 varchar(20),

 学历 varchar(6),

 学费 int)

select * from table_3

insert into table_3

values

(2008001,'张三','',28,'汉族','北京','计算机','本科',8000)

                                              扩充数据库

alter database cx1

modify file (name=cx1_log,

size=20,maxsize=200,filegrowth=20%)

                                        创建表

create database test

on (name=test,filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test.mdf',

size=10,maxsize=100,filegrowth=5)

alter database test

add filegroup stu

use test

create table ss

(学生编号 int identity not null primary key,

姓名 varchar(16),

性别 char(2),

年龄 tinyint,

民族 varchar(12),

籍贯 varchar(50),

专业 varchar(20),

学历 varchar(6),

学费 int)

sp_help ss

sp_spaceused ss

insert into ss

values (2008001,'张三','',28,'汉族','北京','计算机','本科',8000)

insert into ss

values (2008005,'张三','',34,'','河北','音乐','大专',20000)

update ss

set 性别=''

where 学生编号=2008005

use test

select *from ss

select distinct 专业,学费 from ss

                                 创建表

create table stu

(学生编号 int,姓名 varchar(16),性别 char(2),

 年龄 tinyint,民族 varchar(16),籍贯 varchar(16),

 学历 varchar(20),

 专业 varchar(20),入学时间 datetime,学费 int, 教师编号 int)