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

    T-SQL编程与高级查询

    一、相关回顾

      (1)建库的语法:

            CREATE  DATABASE  <数据库名>

      (2)建表的语法:

            CREATE  TABLE  <表名> 字段名   字段数据类型  ……)

      (3)T-SQL中是怎样添加注释的:

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

      (4)T-SQL中定义变量用哪个关键字:

                declare

      (5)T-SQL中的全局变量和和局部变量的标识分别是:

                全局变量@@,局部变量@

      (6)T-SQL中用什么表示一个代码块:

                begin开始,end结束

    二、T-SQL编程与高级查询

      (1)SQL批处理是一个或多个 Transact-SQL 语句的集合,由客户端一次性发送到SQL Server实例以完成执行。它表示用户提交给数据库引擎的工作单元。         同时,服务器将批处理语句编译成一个可执行单元,此单元称为执行计划。

      (2)GO是SQL Server中批处理的分隔符

      (3)在SQL里面我们用什么输出呢?

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

          2、select:

                1、以结果集形式输出;             2、可同时输出多个;             3、输出的结果可以被java等应用程序直接得到;

      (4)变量的分类:

              1、局部变量:

                    <1>局部变量必须以标记@作为前缀 ,如@age                 <2>局部变量的使用也是先声明,再赋值                 <3>局部变量赋值用set或select

                    DECLARE   @变量名  数据类型

                    例如:DECLARE @name varchar(8)                    DECLARE @seat int

              2、全局变量:

                     <1>局部变量必须以标记@作为前缀 ,如@age                  <2>全局变量必须以标记@ @作为前缀,如@@version                  <3>全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值

                      赋值 SET @ 变量名 =值 或SELECT  @变量名 = 值

                      SET @name=‘张三’SELECT @name=UserName  FROM UserInfo WHERE UserId=1      

      (5)全局变量都使用两个@标志作为前缀

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

      (6)IF-ELSE语句:

        SQL中的IF-ELSE语句     IF (条件)         BEGIN         语句1         语句2         ……      END     ELSE       BEGIN           语句1;           语句2;           ……        END

      (7)WHILE循环语句:

        SQL中的WHILE语句     WHILE (条件)         BEGIN             语句1             语句2             ……           REAK       END

      (8)CASE-END多分支语句:

        CASE         WHEN 条件1 THEN  结果1        WHEN 条件2 THEN  结果2         ……        ELSE 其他结果     END

    三、小结:

      (1)GO 的作用是什么?

          整体提交

      (2)流程控制语句有哪些?

          IF   WHILE

      (3)子查询:

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

             例如:SELECT * FROM stuInfo               WHERE stuAge>( SELECT stuAge FROM                                stuInfo where stuName='李斯文')             GO

        子查询的优点:一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换            子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据            表连接更适合于查看多表的数据

      (4)数据库的存在检测:

              IF EXISTS(SELECT * FROM                  sysDatabases WHERE name=’stuDB’)              DROP DATABASE stuDB           CREATE DATABASE stuDB           …….—建库代码略

      (5)EXISTS子查询的语法:IF EXISTS (子查询)语句

          备注:1、如果子查询的结果非空,即记录条数1条以上,则EXISTS (子查询)将返回真(true),否则返回假(false)          2、EXISTS也可以作为WHERE 语句的子查询,但一般都能用IN子查询替换

      (6)合并多个表中的数据的方法有那些?

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

      (7)EXISTS子句有什么作用?

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

      (8)IN子查询有什么作用?

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

      (9)变量赋值使用SET语句或SELECT语句;输出结果print语句和SELECT语句,print语句输出方式是文本形式,select是网格形式

      (40)简单描述一下子查询可以如何划分?

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

  • 相关阅读:
    MonoRail学习Component
    Eclipse中用户库的使用
    ASP.Net2.0中自定义控件在page中的注册
    WF学习Console Workflow Application
    Which Style of Workflow When?[转]
    使用UserControl时,在Page中定义方式
    参数类型异常
    GridView使用一些记录
    在使用Mybatis进行测试时出现报错:Caused by: java.lang.ClassNotFoundException: Cannot find class: Student
    递归反向输出字符串
  • 原文地址:https://www.cnblogs.com/yangshuaigg/p/3075487.html
Copyright © 2011-2022 走看看