zoukankan      html  css  js  c++  java
  • TSQL编程与高级查询

    3.1   T-SQL  简介

      T-SQL(Transact-SQL)是Microsoft公司在关系型数据库管理系统 SQL Server中的SQL--3标准的实行,是微软对SQL的扩展,具有SQL的主要特点,同时增加了变量,运算符、函数、流程控制和释放等语言元素,使用其功能更加强大。

      T-SQL对SQL Server 十分重要,SQL Server 中使用图形界面能够完成的所有功能,都可以利用T-SQL 来实现。使用T-SQL操作时,与SQL server通用的所以应用程序都通过向服务器发送T-SQL语句来进行,而与应用程序的界面无关。

      在第一章中,我们学习了使用SQL语句实现数据库,其中包括了建库、建表建约束和SQL server安全管理中创建登陆账号、数据库用户、授权等,其实这些语句都属于T-SQL语句。在使用T-SQL语句删除数据库、删除表时,我们还可以使用了IF语句先判断数据库、表是否存在。这里的IF语句也将是本章要介绍的一个知识点。

      T-SQL语句的分类如下所示。

      1.变量声明。T-SQL语句中可以使用两种类型的变量,局部变量和全局变量。

      2.数据定义语言(Date Definition Language,DDL),用来建立数据库及数据库对象,绝大部分以CREATE开头,如CREATE TABLE等。

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

      4.数据库操作语言 (Data Control Languaage,DML),用来操作数据库中数据的命令,如SELECT、UPDATE等。

      5.流程控制语言 (Flow Control Language,FCL),用于控制应用程序流程语句,如IF、CASE等。

    3-2 T-SQL中的注释

      注释时程序代码中不执行的文本字符串。在程序中加入注释说明,使程序容易维护。注释中的所有内容不会被执行,因此可以在注释中编写有关程序内容的说明,使程序变得易读。

      在SQL SERVER中有两种编写注释的方式。

      1.嵌行类的注释语句

      a.可以用两个连字符(--)b./*..........*/

    3-3  T-SQL中的批处理

      批处理是指包含一条或多条T-SQL语句的语句组,这组语句从应用程序一次性地发送到 SQL Server服务器执行。SQL Server服务器批处理语句编译成一个科执行单元,这种单元称为执行单元。

    批处理实例:

    INSERT INTO CcardInfo values('023-001','123456',50,2013-05-10,10:00:00)
    select * from cardInfo
    go

    3.4 局部变量

      1.声明 T-SQL局部变量

    语法:

    DECLARE{@变量名 数据类型 [,...n]}

    实例:

    DECLARE @mycounter int

    2. 为T-SQL局部变量赋值
      第一次声明变量时,其值设置为NULL。若要为局部变量赋值,有两种方法:使用set语句和使用select语句。

    语法:

    set @变量名 =--实例
    
     /*声明三个局部变量:@name、@row_count、@year*/
    declare @name ncarchar(20),@row_count int,@year int
    
    /*使用set语句为局部变量赋值*/ set @name="张三" --将查询语句返回的值赋值给row_count
    set @row_count=(select count(*) from cardInfo) --调用系统函数,将YEAR()函数返回的值赋值给@year
    set @year=year(GETDATE()) -- @row_count 变量自增 SET @row_count=row_count +1

    3.6 T-SQL的流程控制:
      T-SQL 提供称为控制流的特殊关键字,用于控制T-SQL语句、语句块和存储过程的执行流。

      1.if......else语句的语句法形式为:

    if(条件语句)
        语句或语句块
    else
        语句或语句块
    
    
    --实例
    
    if(条件语句)
        begin
            ....语句
          end
    else
        begin
            ...语句
        end


    2. WHILE语句:

      while 语句通过布尔表达式来设置一个条件,当这个条件成立时,重复执行一个语句或语句块,重复执行部分为循环体。

      while语句的语法:

    while 布尔表达式
        {语句或语句块 }
            [break]
        {语句或语句块 }
            [continue]
        {语句或语句块 }

      3.使用子查询

      子查询是嵌套在select、insert、update、和delect语句或其他子查询中的查询,例如包含在select语句的where 子句和having子句中的select语句。子查询也称为内部查询或内部选择,而包含子查询的语句也称为外部查询或外部选择。

      子查询可以把一个复杂的查询分解成一些系列的逻辑步骤。当一个查询依赖于另一个查询时,子查询会很有用。常用的子查询有:

      a.使用比较运算符(=、<>、>、>=、<、!>、!<或<=)的子查询

      b,in和not in 子查询

      c.exists和not exists 子查询

    3.7.1 使用比较运算符的子查询

      由一个比较运算符(=、<>、>、>=、<、!>、!<或<=)引用的子查询就称为使用比较运算符的子查询。

      使用运算符的实例:

    declare @cardid int
    select @cardid=cardid from cardinfo where cardnumber='023-002'
    select * from recordinfo
            where datediff(month,endtime,GETDATE())=0 ANO cardid=@cardid
    go

    3.7.2 EXISTS和NOT EXISTS子查询
      使用 EXISTS 关键字引入一个子查询时,就相当于进行一次存在测试。外部查询的where子句测试子查询返回的行是否存在。

      使用EXISTS 引入的子查询的语句:

    WHERE[NOT] EXISTS(子查询)

      

  • 相关阅读:
    C++右值引用的参考
    U3D 文档 GPU INSTANCING
    UNITY statistic中的 SetPass和Batches
    时间复杂度
    转,数组遍历的三种方式
    bug纪录:PhotonServer-14052: 17:14:09.033
    关于.net standard 与 .net core, net framework
    【转】未能加载文件或程序集或它的某一个依赖项,系统找不到指定的文件
    C# 计时函数精度测试
    一张图看懂dex
  • 原文地址:https://www.cnblogs.com/pengjun110/p/3073439.html
Copyright © 2011-2022 走看看