精华内容
下载资源
问答
  • t-sql编程
    千次阅读
    2019-07-11 12:43:12

    一、实验目的
    1.掌握各种运算符和控制语句的使用;
    2.掌握系统函数的使用;
    3.掌握存储过程的实现。
    二、实验学时
    2学时
    三、实验要求
    1.了解T-SQL支持的各种基本数据类型及变量的使用;
    2.了解T-SQL各种运算符、控制语句及函数的功能及使用方法;
    3.掌握存储过程的编写和运行方法;
    4.完成实验报告。
    四、实验内容
    以实验数据库为基础数据,完成以下内容
    1.变量的使用
    (1)创建局部变量@xh(char(9))并使用set将student表中“李勇”的学号字段赋给该变量,然后使用select显示变量的值;
    DECLARE @xh char(9)
    set @xh=
    (SELECT sno
    FROM XSKC.student
    WHERE sname=‘李咏’)
    SELECT @xh AS 学号;
    (2)计算学生信息表student中学生最高年龄和最低年龄之差,并使用select将结果赋值给@cz,并使用print显示变量的值。
    DECLARE @cz int
    SELECT @cz=MAX(sage)-MIN(sage)
    FROM XSKC.student
    print @cz ;
    2.应用内置函数
    (1)求course表中课程号为“03”的课程名称的长度,并在消息提示框中输出结果。结果格式为:“03号课程名称的长度为:**”。
    提示:使用CONVERT函数。
    DECLARE @kclength char(10),@kc char(30)
    set @kclength=
    (SELECT cname
    FROM XSKC.course
    WHERE cno=‘3’ )
    SELECT @kc=‘03号课程名称的长度为:’
    SELECT @kc+STR(LEN(@kclength),1);
    (2)使用字符串串联运算符“+”,将student表中的所有字段串联在一起用一个“学生信息”字段显示出来。
    SELECT sno+’ ‘+sname+’ ‘+str(sage,2)+’ '+sdept as 学生信息
    FROM XSKC.student;
    3. 流程控制语句
    (1)判断student表中是否存在编号为2005150026的学生,如果存在,则显示该学生基本信息;若不存在,则显示“查无此人”。
    IF(SELECT sno FROM XSKC.student WHERE sno=‘2005150026’) = ‘2005150026’
    BEGIN
    SELECT *
    FROM XSKC.student
    WHERE sno=‘2005150026’
    END
    ELSE
    PRINT ‘查无此人’;
    (2)查询学号为“200515002”的学生的平均分是否超过了85分,若超过则输出“XX(学生姓名)考出了高分”,否则输出“XX(学生姓名)考的一般”。
    DECLARE @name nvarchar(10)
    SET @name=
    (SELECT sname
    FROM XSKC.student
    WHERE sno=‘200515002’)
    IF(SELECT AVG(grade) FROM XSKC.sc WHERE sno=‘200515002’) > 85
    BEGIN
    PRINT @name+‘考出了高分’
    END
    ELSE
    PRINT @name+‘考得一般’;
    4. 定义函数
    (1)定义一个函数CHECK_SNO实现如下功能:对于一个给定的sno值,查询该值在sc表中是否存在,若存在则返回0,否则返回-1。
    CREATE FUNCTION CHECK_SNO(@sno char(10))
    RETURNS int AS
    BEGIN
    DECLARE @ret int
    IF (SELECT sno FROM XSKC.sc WHERE sno=@sno) = @sno
    SET @ret=0
    ELSE
    SET @ret=-1
    RETURN @ret
    END;
    (2)写一段T-sql程序调用上述函数。当向sc表插入一行记录时,首先调用函数CHECK_SNO检索该记录的sno值在表student中是否存在对应值,若存在,则将该记录插入记录(‘200515023’,’02’,75)到sc表中。
    DECLARE @sno int
    SELECT @sno=dbo.CHECK_SNO(‘200515023’)
    IF @sno=0
    BEGIN
    INSERT XSKC.sc
    VALUES(‘200515023’,‘02’,75)
    END;
    (3)定义一函数,按系别统计当前所有学生的平均年龄,并调用该函数求出“CS”系学生的平均年龄。
    CREATE FUNCTION AVER_DEPT(@dept char(3))
    RETURNS int AS
    BEGIN
    DECLARE @aver int
    SELECT @aver=
    (SELECT AVG(sage)
    FROM XSKC.student
    WHERE sdept=@dept)
    RETURN @aver
    END
    DECLARE @dept char(3)
    SET @dept=‘CS’
    SELECT dbo.AVER_DEPT(@dept);
    5.存储过程
    (1)创建一个无参存储过程pr_StuScore,查询以下信息:班级、学号、姓名、性别、课程名称、考试成绩。
    CREATE PROCEDURE pr_StuScore
    AS
    BEGIN
    SELECT sdept,XSKC.student.sno,sname,ssex,cname,grade
    FROM XSKC.course,XSKC.sc,XSKC.student
    WHERE XSKC.course.cno=XSKC.sc.cno AND XSKC.sc.sno=XSKC.student.sno
    END;
    (2)创建一个带参数的存储过程pr_StuScoreInfo2,该存储过程根据传入的学生编号和课程名称查询以下信息:班级、学号、姓名、性别、课程名称、考试成绩。
    CREATE PROCEDURE pr_StuScoreInfo2(@sno char(10),@cname char(30) )
    AS
    SELECT sdept,XSKC.student.sno,sname,ssex,cname,grade
    FROM XSKC.course,XSKC.sc,XSKC.student
    WHERE XSKC.course.cno=XSKC.sc.cno AND XSKC.sc.sno=XSKC.student.sno AND XSKC.student.sno=@sno AND cname=@cname

    EXEC pr_StuScoreInfo2 ‘200515002’,‘数据库’;
    (3)创建一个带参数的存储过程pr_xxscore,该存储过程根据传入的学生编号和课程号,并通过变量输出该学生的课程成绩。
    CREATE PROCEDURE pr_xxscore(@sno char(10),@cname char(30),@grade int output)
    AS
    SELECT @grade=grade
    FROM XSKC.course,XSKC.sc
    WHERE XSKC.course.cno=XSKC.sc.cno AND sno = @sno AND cname = @cname

    DECLARE @score int
    exec pr_xxscore ‘200515002’,‘操作系统’,@score output
    SELECT @score;
    (4)创建存储过程,通过给定两个学生的学号,比较两个学生的年龄,若前者比后者高就输出0,否则输出1。(调用时比较200515001号和200515002号的年龄)。

    CREATE PROCEDURE age_compare(@onesno char(9),@twosno char(9),@LEGAL BIT OUTPUT)
    AS
    DECLARE @oneage int,@twoage int
    SELECT @oneage = sage FROM XSKC.student WHERE sno=@onesno
    SELECT @twoage = sage FROM XSKC.student WHERE sno=@twosno
    IF @oneage>@twoage
    SELECT @LEGAL=0
    ELSE
    SELECT @LEGAL=1

    DECLARE @flag int
    EXEC age_compare ‘200515001’,‘200515002’,@flag output
    SELECT @flag;
    (5)编写带参数的存储过程pr_cavg,根据传入的课程名称统计该课程的平均成绩。
    CREATE PROCEDURE pr_cavg(@incname char(10))
    AS
    SELECT AVG(grade)
    FROM XSKC.sc,XSKC.course
    WHERE XSKC.sc.cno=XSKC.course.cno AND cname=@incname

    exec pr_cavg ‘操作系统’;
    (6)创建一存储过程pr_age,用于统计某年龄段所有学生的学号、姓名及所选课程信息。
    CREATE PROCEDURE pr_age(@oneage int,@twoage int)
    AS
    SELECT XSKC.student.sno,sname,XSKC.course.cno,cname
    FROM XSKC.course,XSKC.student,XSKC.sc
    WHERE XSKC.course.cno=XSKC.sc.cno AND XSKC.sc.sno=XSKC.student.sno AND sage BETWEEN @oneage AND @twoage

    EXEC pr_age 20,23;
    (7)创建一个添加学生记录的存储过程stduentadd,用来给student表添加一条记录。(‘200515028’,‘徐小明’,‘男’,24,‘CS’)
    CREATE PROCEDURE stduentadd
    AS
    INSERT
    INTO XSKC.student
    VALUES(‘200515028’,‘徐小明’,‘男’,24,‘CS’)

    EXEC stduentadd;

    更多相关内容
  • 通过数据库的查询和视图实验了解SELECE语句的基本语法,子查询的表示,连接查询的表示,GROUP BY、ORDER BY语句的作用和使用方法,视图的概念和作用,视图的创建、查询和修改。
  • T-SQL编程基础_1

    2018-12-12 14:59:13
    T-SQL编程基础_1
  • T-SQL编程入门经典(涵盖SQL Server 2008&2005)》是学习T-SQL编程的最佳入门指南,涵盖了在SQL Server 2005和2008中使用T-SQL的所有基础知识,并结合实例较深入地探讨了T-SQL最常见的应用。重点介绍了如何使用T-SQL...
  • T-SQL 编程基础pdf

    2018-10-25 15:58:04
    1 标识符、变量、批处理与运算符 2 系统内置函数 3 流程控制语句
  • SQL Server 技术内幕之T-SQL编程原版CHM SQL Server 2005 技术内幕四本中的其一 本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部构造,包含了非常全面的编程参考。它提供了...
  • T-SQL编程

    千次阅读 2019-05-30 19:21:11
    一、T-SQL编程变量声明、为变量赋值、输出 变量必须赋初值,不然为null,与null计算所得的结果还是null 二、T-SQL中的while循环,无for循环 begin......end 相当于C#编程中while循环的大括号 三、T-SQL中if...

     一、T-SQL编程变量声明、为变量赋值、输出

       变量必须赋初值,不然为null,与null计算所得的结果还是null

     二、T-SQL中的while循环,无for循环

            begin......end           相当于C#编程中while循环的大括号

     三、T-SQL中if....else....

    四、计算1-100所有奇数和偶数的和 

    五、T-SQL中的变量 

     @@ERROR:当前一个语句遇到错误,则返回错误号,否则返回0。需要注意的是@ERROR在每一条语句执行后会被立刻重置,因此应该在要验证的语句执行后检查数值或者是将它保存到局部变量中以备将来使用。

    展开全文
  • T-SQL编程教材

    2018-06-24 11:13:54
    数据库T-SQL编程PPT教材,掌握如何定义变量并赋值 掌握如何输出显示数据 掌握IF、WHILE、CASE逻辑控制语句 理解SQL中批处理的概念 T-SQL中的主要数据类型包括: 数字类型:用于存储整数或小数 整数如smallint,int; ...
  • 包含了SQL Server高级查询和T-SQL编程的所有主要知识点,都是平日一点点的积累,非常全面的
  • 文件太大,分4个压缩包上传的T-SQL编程入门经典.part1.rar、T-SQL编程入门经典.part2.rar 、T-SQL编程入门经典.part3.rar 、T-SQL编程入门经典.part4.rar
  • 文件太大,分4个压缩包上传的T-SQL编程入门经典.part1.rar、T-SQL编程入门经典.part2.rar 、T-SQL编程入门经典.part3.rar 、T-SQL编程入门经典.part4.rar
  • T-SQL编程入门经典part1

    2014-04-14 17:46:32
    T-SQL经典教材,非常适合入门,同时适合有一定经验的数据库编程
  • 实验五T-SQL编程 实验目的 (1 )进一步巩固第2章'第4章所学内容 (2 )掌握用户自定义类型的使用 (3 )掌握变量的分类及其使用 (4 )掌握各种控制语句的使用 (5 )掌握系统函数及用户自定义函数的使用 实验内容 在yggl...
  • T-sql编程 Sql程序编写

    2009-01-08 10:55:33
    T-sql编程 Sql程序编写基础进阶 第5_3
  • T-SQL编程入门经典part2

    2014-04-14 18:06:25
    T-Sql经典教材,非常适合初学者,也适合有一定经验的编程人员
  • T-SQL编程入门经典part5

    2014-04-14 18:13:40
    T-Sql经典教材,非常适合初学者,也适合有一定经验的编程人员
  • 数据库原理及应用课件:第10章 T-SQL编程.ppt
  • T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)高清扫描分四卷下载
  • 一共160道题目包括答案,基本上涵盖了所有的SQL Server和T-SQL知识,适合学习,复习,考试等
  • T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)配书资源
  • T-SQL 编程基础

    2015-06-22 11:06:43
    T-SQL 编程基础
  • Microsoft SQL Server 2008技术内幕 T-SQL 查询 一书中,第四章,索引优化章节的示例数据库脚本。
  • SQL Server2000设计与T-SQL编程电子书籍,对学习ms sql 与存储过程代码编写是一本很不错大书
  • SqlServer脚本语言入门(t-sql),包含最基本的建库,建表,建约束等简单语法.还包括事务,存储过程以及触发器等基本语法. 适合初学者编程时使用!
  • T-SQL编程入门详解

    2010-04-28 16:22:31
    主要讲述SQL Server2008中新引入的数据类型filestream,允许在服务器系统中存储或同步
  • T-SQL 编程学习基础资料
  • T-SQL_编程

    2014-03-06 21:09:50
    关于T-SQL的相关知识,适合初学者使用!
  • Transact-SQL编程——用T-SQL生成T-SQL.pdf
  • T-Sql编程交成及案例

    2009-03-16 17:37:03
    T-Sql 编程 触发器 游标 储存过程 函数 T-Sql 编程 触发器 游标 储存过程 函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 128,059
精华内容 51,223
关键字:

t-sql编程