SQL编程

Posted 张柯宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL编程相关的知识,希望对你有一定的参考价值。

人生中的第一篇博客,从现在开始记录点点滴滴,不再虚度年华。

                      ———BEYOND

 

I.学习sql之前回忆一下,什么是变量?

  • 变量:能存储数据的值。
  • 变量是一块内存空间的表示。
  • 数组一连串空间
  • 变量是存储数据的容器(通俗讲)

II.变量分为局部变量和全局变量

   局部变量的使用是先申明再赋值。

   全局变量由系统定义和维护,可以直接使用,但一般不自定义全局变量。

    1:局部变量:

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

                声明局部变量的语句如下:

                declare @variable name(局部变量名称) DataType(数据类型)

局部变量赋值有两种方法:Set语句或Select语句

如图所示:

 

 

2:全局变量

SqlServer中的所有全局变量都使用两个@符号作为前缀

常用的几个全局变量:(@@error重点)

@@error 上一条SQL错误号
@@identity 最后一次插入的标识值
@@rowcount 受上一个SQL语句影响的行数
@@serviceName 该计算机上的SQL服务名称
@@Version SQLServer的版本信息

 

 

  

 

程序员不能自己定义全局变量,不能给全局变量赋值

Ⅲ:select语句和set语句区别

  Set Select
同时对多个变量赋值 不支持 支持
表达式返回多个值时 出错 将返回的最后一个值赋给变量
表达式未返回值时 变量将赋值为NULL 变量保持原值

 

 

 

 

:被赋值的变量的数据来源于数据表的时候,不要用set,选用select

  如下图所示:

1

2
3
Declare @stuName nvarchar(32)
Select @stuName=studentname from student
Where studentno=23

  

Ⅳ:数据类型转换

  cast()与convert()函数

  基本语法:

  cast(表达式 as  数据类型)

  convert(数据类型[(长度)],表达式[,样式])

  二者在本质上无任何区别

  唯一不同之处是:在将日期时间类型的数据转换为字符串数据时,convert()函数可以通过第三个参数指定转换后字符数据的显示格式不同。

Ⅴ:逻辑控制语句

  1:顺序结构控制语句

    begin 

        语句或语句块

    end

  2:If-else条件语句(重点)

  例如:

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

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

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

     

 

  3:while循环语句

    示例:

     检查学生“oop”课最近一次考试是否有不及格(60分及格)的学生。

     如有,每人加2分,高于95分的学生不再加分,直至所有学生这次考试成绩均及格

       

       

注:在SQL 中,只有while一种循环,没有do-while和for循环

 

  4:case多分支语句

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

  基本语法:

  case

      when  条件1  then  结果1

      when  条件2  then  结果2

      [ else 其他结果]

  end

  示例:

  ABCDE五级打分制显示学生oop课最近一次考试成绩(姓名和等级)

  A级:   90分以上,B级:80-分,C级:   70-分,D级:60-分,E级:60分以下

   

 

批处理

GO指令:GO关键字标志着批处理的结束,它是一条或多条SQL语句的集合 

  作用: 能简化数据库的管理;

       批处理可以提高语句执行的效率;

  提示: GO是SQL Server特有的批处理命令,只有SQL Server的查询编辑器才能识别并处理,编辑其他应用程序时不能使用该命令。 

以上是关于SQL编程的主要内容,如果未能解决你的问题,请参考以下文章

sql sql里面的代码片段

Microsoft SQL Server 代码片段收集

缺少 SQL SERVER 2014 代码片段

sql Oracle代码片段

sql 日期转换代码片段 - Dato,120,konvertere

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?