zoukankan      html  css  js  c++  java
  • SQL SERVER 数据库设计与实现 3

                  第三章(T_SQL编程与高级查询)

    T_SQL的简介

      一、概念:

        微软对SQL的扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素,使其功能更加强大。

      二、T_SQL的分类

        1、变量声明    局部变量@    全局变量@@

        2、数据定义语言(DDL)    用来建立数据库及数据库对象    create开头

        3、数据控制语言(DCL)    用来控制数据库组件的存取、许可、权限等命令

        4、数据操作语言(DML)    用来操作数据库中数据的命令    eg:select、update

        5、流程控制语言(FCL)    用于控制应用程序流程的语句    eg:if、   case

    T_SQL中的注释

      一、概念:

        注释是程序代码中不执行的文本字符串

      二、两种方式

        1、嵌入行内的注释语句

          --:该符号将注释语句与语句分开,也可以使某一行数据无效

        2、块注释语句

          以/*开始,*/结束

    T_SQL中的批处理

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

    变量 

      一、局部变量:
        局部变量必须以标记@作为前缀 ,如@age
        局部变量的使用也是先声明,再赋值
        局部变量赋值用set或select
       1、声明T_SQL局部变量
          declare  @变量名 变量数据类型 
                                                  示例  declare @count int,@count2 int
                                                        declare @count1 int
       2、为T_SQL变量赋值
           set select  
                 示例: set @count = 1    赋值只能一种
                     select @count = 1   赋值一般配合查询
                     select @name = StuName from student where StuNo = 'S25301'
       3、局部变量的作用域
          变量的作用域就是可以引用该变量的T_SQL语句的范围。变量的作用域从声明变量的地方开始到声明变量好的批处理或存储过程的结尾
       4、局部变量的应用
          作为计数器计算循环执行的次数或控制循环执行的次数
          保存数据值以供控制流语句测试
          保存存储过程要返回的数据值或函数返回值
      二、全局变量:  
         局部变量必须以标记@作为前缀 ,如@age
         全局变量必须以标记@ @作为前缀,如@@version
         全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
     
         全局变量都使用两个@标志作为前缀

    变量

    含义

    @@ERROR

    最后一个T-SQL错误的错误号

    @@IDENTITY

    最后一次插入的标识值

    @@LANGUAGE

    当前使用的语言的名称

    @@MAX_CONNECTIONS

    可以创建的同时连接的最大数目

    @@ROWCOUNT 

    受上一个SQL语句影响的行数

    @@SERVERNAME

    本地服务器的名称

    @@TRANSCOUNT 

    当前连接打开的事务数

    @@VERSION 

    SQL Server的版本信息

    输出语句 
       print 字符串 变量  函数  字符串表达式
    T_SQL的流程控制
      一、 if-else
          if(判断条件)
             begin
                            语句1
                            语句2
             end
             else
             begin
                  语句1
                           语句2
             end
      二、case语句
          -- 简单格式
           select pcid,
             case PCUse
                when 0 then '空闲'
                when 1 then '忙碌'
                      end as 'pcuse'
                  ,pcnote from pcinfo
         -- 搜索格式
           select pcid,
                       case
                 when PCUse = 0 then '空闲'
                      when PCUse = 1 then '忙碌'
             end as 'pcuse'
          ,pcnote from PCInfo
      三、while语句
        while (循环成立的条件)
            语句xxx
            [break]
            [continue]
    子查询
        一、子查询在WHERE语句中的一般用法:

            SELECT … FROM 表1 WHERE 字段1 >(子查询)

          外面的查询称为父查询,括号中嵌入的查询称为子查询
         UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句
         将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个
      二、使用子查询替换表连接    
          一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换
          子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据
          表连接更适合于查看多表的数据
    EXISTS(存在)子查询 

        IF EXISTS (子查询)

           语句

        如果子查询的结果非空,即记录条数1条以上,则EXISTS (子查询)将返回真(true),否则返回假(false)
        EXISTS也可以作为WHERE 语句的子查询,但一般都能用IN子查询替换
        not  exists  不存在
    in和not in查询
        eg:select * from  表名1  where  stuclass(列名)  in(select 表2的列  from  表名2) 
  • 相关阅读:
    sklearn中决策树算法DesiciontTreeClassifier()调用以及sklearn自带的数据包sklearn.datasets.load_iris()的应用
    python 中feedParser
    Python中解码decode()与编码encode()与错误处理UnicodeDecodeError: 'gbk' codec can't decode byte 0xab
    Python中的排序方法sort(),sorted(),argsort()等
    Python 关于数组矩阵变换函数numpy.nonzero(),numpy.multiply()用法
    Python中where()函数的用法
    矩阵乘法np.dot()及np.multiply()以及*
    Python打开文件open()的注意事项
    给 Chrome浏览器 添加 Javascript小书签,查看当前页面全部加载的javascript文件及代码片段
    pycharm快捷键及中文说明【使用翻译工具一条一条翻译】
  • 原文地址:https://www.cnblogs.com/yuxiaoyanran/p/3061894.html
Copyright © 2011-2022 走看看