• SQL编程篇 (二) 定义与流程控制


    分类:

    sql编程:标准的sql 编程 * 纯sql

    在标准的编程中又分为 sqlserver-->T-sql oracle-->pl-sql(扩展)

    变量:
    在使用变量之前先定义 声明变量

    sql 格式: declare 变量名 数据类型
    变量的分类:
    局部变量 全部变量
    局部变量:由程序员定义在一个程序内部使用的
    所有的局部变量名都必须以@符最为前缀
    //例子
    declare @num nvarchar(5)

    一个 declare 可以定义多个变量 用,隔开
    2.为变量赋值=变量值
    a.set 变量名
    这次赋值的方式一次只能给一个值赋值

    +:如果运算的对象都是文本进行连接运算 如果有任何一
    个为数值默认进行相加运算
    例:
    print '姓名'+@name
    类型转换:
    convert(目标类型,转换的数据)
    例:
    print '年龄'+convert(nvarchar,@age)
    case(转换的数据 as 目标类型)
    例:
    print '年龄'+cast(@age as varchar)
    //注意:print 只能一项项的输出 而select能输出多个值
    注意//可以用中间值替换法来解决替换问题
    例子:
    declare @a int, @b int,@c int
    set @a=4
    set @b=3
    set @c=6
    select @a,@b,@c
    set @a=@c
    set @b=@a
    select @a,@b
    //可以将所有的set 替换成select 输出的结果依旧是和set一样
    select赋的值经常来源于一个操作
    必须保证查询的结果是单个值
    例:
    declare @sex varchar(2),@name varchar(3)
    select @sex=sex,@name=name from students
    where id=13
    print '客户性别'+@sex
    print '客户名称'+@name

    嵌套子查询:
    例:查出某个成绩的平均分
    1.首先窗机一 avg 个as 平均成绩表
    2.再查询分数 就首先要筛选出id出来 在信息的表的总表中查出id
    3.找出id之前通过名字找到id 并且查出考试日期
    4.查询最后一次的考试日子 查出他的最大值就是他最近的日期
    5.并且查出id并且得到最近的日期

    三:
    if else 语句 条件可以加()也可以不加
    sql中的代码语句块:
    begin:
    ...
    ...
    end 相当于c#{}
    没有switch语句
    case

    when 条件一 then 结果一 //表达式 并非语句 表示:值
    when 条件二 then 结果二


    3、循环体 条件

    begin

    循环体

    end


    按照条件的依次顺序依次匹配,从多个值中选择一个值作为整个表达式的结果


    //一般是和游标结合在一起使用


    全局变量:能访问它的值但是不能修改 所有程序公用的变量

    常用的全局变量:
    所有的变量名都是以@@ 作为前缀
    1.@@ERROR:存储最近一次T-SQL语句执行后的错误号
    我们可以通过@@error 中的值判断刚刚执行的T-SQL 是否执行成功
    如果执行成功呢则改变量的值是0 否则>0
    2.@@IDENTITY:存储的最近一次insert语句执行的后产生的标识值
    3.@@ROWCOUNT:存储最近一次T-sql执行后影响的行数
    4.@@servername:获取数据库服务器名称
    5.@@version:获取当前数据库的版本号

    例:1

    declare @name int
    set @name=12
    case

    when @name>10 then ''
    when @name>23 then

    end

    例:2
    declare @id int
    select @id=id from students where name='yuyu'
    if(@id=10)
    print '查询成功'
    else
    print '查询失败'


    例: 1-100之和


    declare @i int
    declare @b int
    set @b=1
    set @i=0
    while @i<=100
    begin

    set @b=@b+@i
    set @i=@i+1

    end
    print @b

  • 相关阅读:
    C# 特性(Attribute)学习
    ASP.NET Request.MapPath() 与 Server.MapPath()
    Asp.net对http request 处理的全过程!
    保存网址
    寻找silverlight高手帮忙解决问题,谢谢,
    基于.Net Framework的N层分布式应用开发
    VB.NET 代码转为C#
    刚刚开通博客噢 。欢迎大家光临啊
    配置本地服务器的几种方式
    前端必备工具 (记录)
  • 原文地址:https://www.cnblogs.com/liyiyong/p/5341667.html
Copyright © 2020-2023  润新知