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关键字之后。

  • 相关阅读:
    HDU 5059 Help him
    HDU 5058 So easy
    HDU 5056 Boring count
    HDU 5055 Bob and math problem
    HDU 5054 Alice and Bob
    HDU 5019 Revenge of GCD
    HDU 5018 Revenge of Fibonacci
    HDU 1556 Color the ball
    CodeForces 702D Road to Post Office
    CodeForces 702C Cellular Network
  • 原文地址:https://www.cnblogs.com/wdwf/p/3061862.html
Copyright © 2011-2022 走看看