zoukankan      html  css  js  c++  java
  • T_SQL 语句编程与高级查询

    T-SQL为SQL 第四代编程语言它附加了第二代编程语言的特性,比如 流程控制(if-else while) 错误处理  存储过程  事物  触发器

    一、T-SQL语句分类

    1、数据定义语言(DDL)用来建立数据库及数据库对象 如:create打头

    2、数据控制语句(DCL)用来控制数据库的一些权限

    3、数据操作语句(DML) 操作数据的命令 如:select update  等

    4、流程控制语句(FCL) 如:if、while 等

    二、 SQL 注释和比较运算符

    比较运算符:<、>、<>、>=、!>、!<、<=>、=

    -- 单行注释   /* */  多行注释

    三、批处理

    10条插入语句   不加go批处理关键字的话   sql引擎 会一条一条处理(会影响效率)   

                      加go批处理关键字的话     sql引擎 会一次性处理(提高处理效率)

    四、变量

    1、全局变量

    全局变量不是由用户的程序定义的,是在服务器级定义的

    用户只能使用预先定义的全局变量

    引用时必须以@@打头

    如:

              @@ERROR         最后一个T-SQL错误的错误号
              @@IDENTITY         最后一次插入的标识值
              @@LANGUAGE         当前使用的语言的名称
              @@MAX_CONNECTIONS 可以创建的同时连接的最大数目
              @@ROWCOUNT  受上一个SQL语句影响的行数
              @@SERVERNAME         本地服务器的名称
              @@TRANSCOUNT  当前连接打开的事务数
              @@VERSION  SQL Server的版本信息

    2、局部变量

    声明:declare @变量名 数据类型[....n]

    赋值:set @变量名 = 值 或者 select @变量名 = 值

    作用域:从声明开始到遇见go或存储过程的结尾

    五、输出语句

    select

    1、以结果集形式输出

    2、可以同时输出多个

    3、易被java等应用程序直接得到

    print

    1、  以文本形式输出
    2、输出一个字符串,如果有多个变量或常量要输出,用+连接;
    3、如果类型不一致,用convert函数转换;
    4、输出的结果不易被java等应用程序直接得到

    六、流程控制语句

    1、if...else语句

    语法:

    if(条件表达式)

    begin

      语句或语句块

    end

    else

    begin

      语句或语句块

    end

    注:可以进行多重嵌套

    2、case  语句
              CASE
                  WHEN 条件1 THEN  结果1
                  WHEN 条件2 THEN  结果2
                  …… 
              ELSE 其他结果
              END

    搜索case格式

    case

    when 布尔表达式 then 结果表达式一

    [....n]

    [else 结果表达式n]

    end

    注:有限结果集适合使用case

    3、while 语句

    while 布尔表达式

    begin

      语句或语句块

      [break]

      语句或语句块

      [continue]

      语句或语句块

    end

        注:BREAK表示退出循环,如果有多条语句,才需要BEGIN-END语句块 
      

    七.子查询

    1.什么是子查询
            采用子查询实现
               (1).子查询在WHERE语句中的一般用法:
               (2).SELECT … FROM 表1 WHERE 字段1 >(子查询)
               (3). 外面的查询称为父查询,括号中嵌入的查询称为子查询
               (4).UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句
               (5).将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个   

    2.使用子查询替换表连接      

        采用子查询       

          (1).一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换         

         (2).子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据        

         (3).表连接更适合于查看多表的数据      

     3.  我们曾学习过的查询,合并多个表中的数据的方法有那些?        

           (1).联合(Union)-合并多个数据表中的行        

           (2).子查询-将一个查询包含到另一个查询中

           (3).联接-合并多个数据表中的列

    4. EXISTS子句有什么作用?     

     通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查。

    联合(Union)-合并多个数据表中的行 子查询-将一个查询包含到另一个查询中 联接-合并多个数据表中的列 EXISTS子句:

    通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查。

    5.IN子查询:

    IN子查询后面可跟随返回多条记录的子查询,用于检测某列的值是否在某个范围。 

    6.子查询划分:

    使用比较运算符的子查询 IN和NOT  IN子查询 EXISTS和NOT  EXISTS子查询。 子查询若按所处位置划分,可以为子查询在WHERE关键字之后,子查询在FROM关键字之后、子查询在SELECT关键字之后。

  • 相关阅读:
    18.10.29 考试总结
    【BZOJ】2730: [HNOI2012]矿场搭建
    BZOJ [ZJOI2007]仓库建设
    18.10.24 考试总结
    ZOJ 3740 Water Level
    洛谷 P2474 [SCOI2008]天平
    洛谷 P4180 【模板】严格次小生成树[BJWC2010]
    CF961E Tufurama
    18.10.22 考试总结
    18.10.19 考试总结
  • 原文地址:https://www.cnblogs.com/wdwf/p/3061862.html
Copyright © 2011-2022 走看看