zoukankan      html  css  js  c++  java
  • 我的第一篇论文

    变量:变量是可以存储数据值的对象,可以用局部变量向SQL语句传递

    局部变量:局部变量的名称必须以标记@最为前缀

    declare @variablea_name DataType

    其中,variable_name为局部变量的名称,DataType为数据类型

    变量的赋值有两个方法:SET或SELECT

    set @variable_name =value

    select @variable_name=value

    问题1:

    根据学号查找‘李文才’的信息以及与‘李文才’的学号响铃的学生的信息

    /*--查找李文才的信息--*/

    declare @name varchar(8)    --学生姓名

    set @name='李文才'          --使用Set赋值

    select StudentNo,StudentName,BornDate,Address From Student

    where StudentName=@name

    /*--查找与李文才相邻的学生的信息--*/

    declare @StudentNo int    --学号

    select @StudentNo=StudentNo From Student    --使用select赋值

    where StudentName=@name

    Select StudentNo,StudentName,BornDate,Address From Student

    where (StudentNo=@StudentNo+1) or (StudentNo=@Student-1

    全局变量:

    @@error               最后一个T-SQL错误的错误号

    @@identty       最后一次插入的标识值

    @@rowcount     可以常见的,同时连接的最大数目

    @@servername    本地服务器的名称

    @@version         SQL Server的版本信息

    Print 局部变量或字符串

    Select 局部变量 AS 自定义列名

    数据类型的转换

    CAST()和CONVERT()函数

    与C#语言相似,在T-SQL语言中,数据类型的转换也分为隐式转换和显示转换

    Cast(表达式 AS 数据类型)

    Convert(数据类型【(长度)】,表达式【,样式】)

    逻辑控制语句

    Begin-End语句

    (Begin-End语句将多个T-SQL语句定义成一个语句块,把每个语句块视为一个单元)

    Begin

      语句或语句块

    End

    if-else条件语句

    if(条件)

    语句或语句块1

    else

    语句或语句块2

    (如果有多条语句,则需要与Begin-End结合使用,表示一个完整的语句块)

    if(条件)

    Begin

    语句1

    语句2

    .......

    end

    else

    ......

    问题2:

    统计并显示2013-08-09 oop考试平均分

    如果平均分在70分以上,显示考试成绩优秀,并显示前三名学生的考试信息

    如果在以下,显示考试成绩较差,并显示后三名学生的考试信息

    )

    declare @subid int

    select @subid=SubjectId from Subject

    where subjectname='oop'

    declare @avg int

    --定义一个变量,保存平均分

    --如何求2013-08-09   oop  平均分

    select @avg=AVG(StudentResult) from result

    where examdate>='2013-08-09' and  examdate<'2013-08-10'

    and subjectid=@subid

    --判定@avg和的关系

    if(@avg>=70)

    begin

      --01.打印成绩优秀

      print '成绩优秀'

      --02.显示前3名学生成绩信息

      select top 3 studentno,studentresult from result

      where examdate>='2013-08-09' and examdate<'2013-08-10'

      and subjectid=@subid

      order by studentresult desc

    end

    else

    begin

    --打印成绩良好

    print '良好'

    --显示后3名学生成绩

    select top 3 studentno,studentresult from result

    where examdate>='2013-08-09' and examdate<'2013-08-10'

    and subjectid=@subid

    order by studentresult asc

    End

    While循环语句

    (在SQL 中,只有while一种循环,没有do-whilefor循环)

    while(条件)

    begin

    语句或语句块

    【break|continue】

    end

    问题3:

    求1到100之间的偶数和

    declare @sum int

    set @sum=0

    declare @num int

    set @num=1

    while(@num<=100)

    begin

      if(@num%2=0)

      begin

        set @sum+=@num

      end

       set @num+=1

    end

    print @sum

    问题4:

    (检查学生“oop”课最近一次考试是否有不及格(60分及格)的学生,如有,每人加2分,高于95分的学生不再加分,直至所有学生这次考试成绩均及格)

    declare @subid int

    select @subid=subjectid from subject

    where subjectname='oop'

    declare @mydate datetime

    select @mydate=max(examdate) from result

    where subjectid=@subid

    declare @num int

    select @num=count(1) from result

    where subjectid=@subid

    and examdate=@mydate

    and studentresult<70

    while(@num>0) 

    begin

      update result set studentresult+=2

      where studentresult<95

      and subjectid=@subid

      and examdate=@mydate

    select @num=count(1) from result

    where subjectid=@subid

    and examdate=@mydate

    and studentresult<70

    print @num

    end

    select * from result

    order by subjectid,examdate

    case多分支语句

    case-end语句计算一组条件表达式,并返回其中一个符合条件的结果

    case

    when 条件一 then 结果一

    when 条件二 then 结果二

    when 条件三 then 结果三

    ......

    end

    问题五:(采用美国的A到E五级打分制来显示学生'oop'课程最近一次考试成绩)

    A:   90分以上

    B级:80-分

    C:   70-分

    D级:60-分

    E级:60分以下

    declare @subid int

    declare @maxdate datetime

    select @subid=subjectid

    from subject

    where subjectname='oop'

    select @maxdate=max(examdate)

    from result

    where subjectid=@subid

    select studentname,等级=

    case

       when studentresult>=90 then 'A'

       when studentresult>=80 then 'B'

       when studentresult>=70 then 'C'

       when studentresult>=60 then 'D'

       else 'E'

    end

    from student,result

    where student.StudentNo=result.StudentNo

    and subjectid=@subid

    and examdate=@maxdate

  • 相关阅读:
    php 中ASCII编码的使用
    BASE64
    微信公众平台--6.JS-SDK 微信内网页开发工具包
    python3中zipfile模块的常用方法
    python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
    python3开发进阶-Django框架的起飞加速一(ORM)
    python3开发进阶-Django框架起飞前的准备
    python3开发进阶-Web框架的前奏
    前端基础-jQuery的最常用的的方法each、data、
    前端基础-jQuery的动画效果
  • 原文地址:https://www.cnblogs.com/superws/p/5251291.html
Copyright © 2011-2022 走看看