SQL SERVER T-SQL编程与高级查询

 <1>.T-SQL语句的分类
        1.变量声明:局部变量@和全局变量@@
        2.数据定义语言(DDL):用来建立数据库及数据库对象,绝大部分以create开头,如create table等
        3.数据控制语言(DCL):用来控制数据库组件的存取许可,授权等命令。
        4.数据操作语言(DML):用来操作数据库中数据的命令。如select ,update等。
        5.流程控制语言(FCL):用于控制应用程序流程的语句,如if,case等。
 <2>.批处理语句
        1.SQL批处理是一个或多个 Transact-SQL 语句的集合,由客户端一次性发送到SQL Server实以          完成执行。它表示用户提交给数据库引擎的工作单元。 同时,服务器将批处理语句编译成一个可执行单元,此单元称为执行计划。
        2.GO是SQL Server中批处理的分隔符;
        3. GO 的作用是什么?
           整体提交   

<3>. 输出
        1.在c语言中,我们用printf() 方法输出。
        2.在C#中我们用Console.WriteLine()输出。
        3.在SQL里面我们用什么输出呢?
           print: 
            (1)  以文本形式输出 
           (2)输出一个字符串,如果有多个变量或常量要输出,用+连接;
           (3)如果类型不一致,用convert函数转换;
           (4)输出的结果不易被java等应用程序直接得到
           select: 
           (1)以结果集形式输出;
           (2)可同时输出多个;
           (3)输出的结果可以被java等应用程序直接得到;

<4>.变量
        局部变量:
          局部变量必须以标记@作为前缀 ,如@age
          局部变量的使用也是先声明,再赋值
          局部变量赋值用set或select
        全局变量:
          局部变量必须以标记@作为前缀 ,如@@age
          全局变量必须以标记@ @作为前缀,如@@version
          全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
        全局变量(全局变量都使用两个@标志作为前缀)
          变量                 含义
          @@ERROR         最后一个T-SQL错误的错误号
          @@IDENTITY         最后一次插入的标识值
          @@LANGUAGE         当前使用的语言的名称
          @@MAX_CONNECTIONS 可以创建的同时连接的最大数目
          @@ROWCOUNT  受上一个SQL语句影响的行数
          @@SERVERNAME         本地服务器的名称
          @@TRANSCOUNT  当前连接打开的事务数
          @@VERSION  SQL Server的版本信息

<5>.逻辑控制语句(IF-ELSE语句)
          SQL中的IF-ELSE语句  
           IF (条件)
           BEGIN   
           语句1  
           语句2   
           ……
           END
           ELSE
           BEGIN
           语句1;
           语句2;   
           ……
           END
    注释: ELSE是可选部分,如果有多条语句,才需要BEGIN-END语句块
      逻辑控制语句(WHILE循环语句)
          SQL中的WHILE语句
          WHILE (条件)
          BEGIN
          语句1
          语句2
          ……
          BREAK
          END
     注释BREAK表示退出循环,如果有多条语句,才需要BEGIN-END语句块
      逻辑控制语句(CASE-END多分支语句)
          CASE
              WHEN 条件1 THEN  结果1
              WHEN 条件2 THEN  结果2
              …… 
          ELSE 其他结果
          END
      流程控制语句有哪些?
        IF   WHILE

<6>.什么是子查询
        采用子查询实现
           (1).子查询在WHERE语句中的一般用法:
           (2).SELECT … FROM 表1 WHERE 字段1 >(子查询)
           (3). 外面的查询称为父查询,括号中嵌入的查询称为子查询
           (4).UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句 
           (5).将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个     
<7>.使用子查询替换表连接
         采用子查询
           (1).一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换
           (2).子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据
           (3).表连接更适合于查看多表的数据
         我们曾学习过的查询,合并多个表中的数据的方法有那些?
           (1).联合(Union)-合并多个数据表中的行
           (2).子查询-将一个查询包含到另一个查询中

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

<8>. EXISTS子句有什么作用?
           通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查。
<9>.IN子查询有什么作用?
           IN子查询后面可跟随返回多条记录的子查询,用于检测某列的值是否在某个范围。
<10>.变量的赋值有哪两种方式?输出结果有哪两种方式,有什么区别?
          变量赋值使用SET语句或SELECT语句;输出结果print语句和SELECT语句,print语句输出方式是文本形式,select是网格形式。
<11>.T-SQL语句用什么来表示语句块?
           语句块使用BEGIN…END
<12>.简单描述一下子查询可以如何划分?
           使用比较运算符的子查询、IN和NOT  IN子查询、EXISTS和NOT  EXISTS子查询。子查询若按所处位置划分,可以为子查询在WHERE关键字之后,子查询在FROM关键字之后、子查询在SELECT关键字之后

posted @ 2013-05-03 18:51  十年尘梦  阅读(398)  评论(0编辑  收藏  举报