⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 03.txt

📁 包含了几个由sql server2005开发的典型程序
💻 TXT
字号:
【例3-1】下面的语句创建了int类型的局部变量,其名字为@var,
由于没有为该变量赋值,则该变量的初始值为NULL。

DECLARE @var int

【例3-2】下面的语句创建了三个局部变量,名称分别为@var1,@var2,@var3,
并用SET语句分别为三个变量赋值。

DECLARE   @var1 nvarchar(10),@var2 nchar(5),@var3 int
SET  @var1='red'
SET  @var2='yellow'
SET  @var3=10

【例3-3】下面的语句创建变量并赋值,然后用SELECT语句返回该变量的值。

DECLARE @xuehao int
SET @xuehao=5
SELECT @xuehao

【例3-4】该例中,将选课表中学号为'20050201'的学生的分数赋值给变量@fenshu,
并将该变量的值显示在结果窗口中。

DECLARE @fenshu int
SELECT @fenshu=分数
FROM 选课表
WHERE 学号='20050201'
SELECT @fenshu AS 分数

【例3-5】@@CONNECTIONS的使用。返回连接次数。

SELECT @@CONNECTIONS AS '连接次数'

【例3-6】@@DATEFIRST的使用。将星期五设为每周的第一天,假设今天是星期三,
则今天是该周的第6天

SET DATEFIRST 5
SELECT @@DATEFIRST AS '第一天', DATEPART(dw, GETDATE()) AS '今天'

【例3-7】将“选课表”中各个成绩乘以0.8后输出。
SELECT 学号,课程号,分数*0.8
FROM 选课表

【例3-8】创建两个变量,对其赋值,并输出两个变量的&(位与)、|(位或)和^(位异或)的结果。
DECLARE @var1 int,@var2 int
SET @var1=22
SET @var2=147
select @var1&@var2,@var1|@var2,@var1^@var2

【例3-9】将“实例数据库”中 “学生表”的出生日期在1985年9月1号后的学生显示出来。
USE 实例数据库
SELECT 学号,姓名,出生日期
FROM 学生表
WHERE 出生日期>'1985-09-01'
GO

【例3-10】IF语句的使用。
DECLARE  @pingyu char(10)
IF (SELECT MIN(分数) FROM 选课表)>=60
SELECT @pingyu='全部及格'
ELSE
SELECT @pingyu='存在不及格'
PRINT @pingyu

【例3-11】简单的CASE语句的使用。
DECLARE @var1  varchar(1)
SET @var1='B'
DECLARE @var2 varchar(10)
SET @var2=
CASE @var1
WHEN 'R' THEN '红色'
WHEN 'B' THEN '蓝色'
WHEN 'G' THEN '绿色'
ELSE '错误'
END
PRINT @var2

【例3-12】根据输入的学生成绩的值,对该生做出一个具体的评语。
DECLARE @chengji float,@pingyu varchar(40)
SET @chengji=80
SET @pingyu=
CASE 
    WHEN @chengji>100 or @chengji<0 then '您输入的成绩超出~的范围'
    WHEN @chengji>=60 or @chengji<70 then '及格'
    WHEN @chengji>=70 or @chengji<85 then '良好'
    WHEN @chengji>=85 or @chengji<=100 then '优秀'
    ELSE '不及格'
END
PRINT '该生的成绩评语是:'+@pingyu

【例3-13】利用GOTO语句计算0~100之间所有数的和。
DECLARE @x int,@sum int
SET @x=0
SET @sum=0
xh:SET @x=@x+1
SET @sum=@sum+@x
if @x<100 
GOTO xh
PRINT '1~100所有数的和是:'+ltrim(str(@sum))

【例3-14】利用WHILE语句计算0~100之间所有数的和。
DECLARE @x int,@sum int
SET @x=0
SET @sum=0
WHILE @x<100
BEGIN
SET @x=@x+1
SET @sum=@sum+@x
END
PRINT '1~100所有数的和是:'+ ltrim(str(@sum))

【例3-15】求1~100之间的所有数之和,但是如果和大于1000,立刻跳出循环,输出结果。
DECLARE @x int,@sum int
SET @x=0
SET @sum=0
WHILE @x<100
BEGIN
SET @x=@x+1
SET @sum=@sum+@x
if @sum>1000
BREAK
END
PRINT '结果是:'+ltrim(str(@sum))

【例3-16】计算1~100所有偶数之和,并输出结果。
DECLARE @x int,@sum int
SET @x=0
SET @sum=0
WHILE @x<100
BEGIN
SET @x=@x+1
if @x%2=1
CONTINUE
SET @sum=@sum+@x
END
PRINT '1~100所有偶数之和是:'+ltrim(str(@sum))

【例3-17】WAITFOR语句的使用。
WAITFOR DELAY '0:0:10'        /*等待10秒
WAITFOR TIME '12:00:00'       /*等到12点

【例3-18】AVG函数的使用。以下语句统计所有学生成绩的平均值。
USE 实例数据库
SELECT AVG(分数) as 平均成绩
FROM 选课表
GO

【例3-19】MAX函数的使用。以下语句返回选课表中学生成绩的最高分数。
USE 实例数据库
SELECT MAX(分数) as 最高成绩
FROM 选课表
GO

【例3-20】COUNT函数的使用。以下语句返回学生表中的记录个数。
USE 实例数据库
SELECT COUNT(学号) as 总人数
FROM 选课表
GO

【例3-21】ABS函数的使用。
SELECT ABS(-8.5)

【例3-22】CEILING函数的使用。
SELECT CEILING(25.3), CEILING(-25.3), CEILING(0)


【例3-23】RAND函数的使用。
SELECT FLOOR(RAND()*10),FLOOR(RAND(5)*10)

【例3-24】ASCII函数的用法。
SELECT ASCII('ABC')

【例3-25】CHAR函数的用法。
SELECT CHAR(65)

【例3-26】LEFT函数的用法。
SELECT LEFT('CHINA',2)

【例3-27】REPLACE函数的用法。
SELECT REPLACE('CHINA','A','ESE') 

【例3-28】REPLACATE函数的用法。
SELECT REPLICATE('*',5)+'AA'+REPLICATE('*',5)

【例3-29】DATEADD函数的使用。对“实例数据库”中的“学生表”的“入学日期”一列加上30天后显示。
USE 实例数据库
SELECT DATEADD(DAY,30,入学日期)
FROM 学生表
GO
【例3-30】DATEDIFF函数的使用。计算“入学日期”和当前日期之间经过了多少天。
USE 实例数据库;
SELECT DATEDIFF(day, 入学日期, GETDATE()) AS 入学天数
FROM 学生表
GO

【例3-31】GETDATE的用法。
SELECT GETDATE();


【例3-32】YEAR、MONTH和DAY函数的用法。
SELECT STR(YEAR('03/12/2007'))+'年'+ STR(MONTH('03/12/2007'))+'月'+ STR(DAY('03/12/2007'))+'日'

【例3-33】创建一个内联表值函数xscj,返回指定学生的成绩。
ALTER FUNCTION [dbo].[xscj](@xh varchar(12))
RETURNS TABLE 
AS
RETURN 
(
	SELECT 选课表.学号,课程表.课程名,选课表.分数
         FROM 选课表
        INNER JOIN 课程表 ON (课程表.课程号=选课表.课程号)
	   WHERE [学号]=@xh
)

【例3-34】创建一个标量函数,该函数返回两个参数中的最大值。
CREATE FUNCTION max2(@par1 real,@par2 real)
RETURNS real 
AS
BEGIN
      DECLARE @par real
      IF  @par1>@par2
        SET @par=@par1
      ELSE
       SET  @par=@par2
     RETURN(@par)
   END

【例3-35】在“实例数据库中”创建函数“chengjibiao”。该函数以学号为实参,通过调用该函数显示该生的各门功课的成绩。
CREATE FUNCTION chengjibiao
(
	  @xuehao varchar(12)
)
RETURNS @chengji TABLE 
(
       xuehao nchar(12),
      xingming nchar(20),
       kecheng  nchar(20),
       fenshu tinyint
)
AS
BEGIN
	   INSERT @chengji 
       SELECT 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数
       FROM 学生表
INNER JOIN 选课表 ON (学生表.学号=选课表.学号)
INNER JOIN 课程表 ON (课程表.课程号=选课表.课程号)
WHERE   学生表.学号=@xuehao
		 RETURN 
END

【例3-36】使用PRINT 调用max2函数。
PRINT dbo.max2(12,38.6)

【例3-37】使用SELECT 调用max2函数。
SELECT dbo.max2(59.7,8)

【例3-38】使用EXEC语句调用max2函数。
USE 实例数据库
DECLARE @par real
EXEC @par=dbo.max2 59.6,8
SELECT @par
GO


【例3-39】使用EXEC语句调用max2函数,参数的标识次序与函数定义中的参数标识次序不同。
USE 实例数据库
DECLARE @par real
EXEC @par=dbo.max2 @par2=8,@par1=59.6
SELECT @par
GO

【例3-40】调用xscj,返回指定学生的各科成绩。
SELECT *
FROM xscj('20050101')




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -