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

    一、相关回顾

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

  • 相关阅读:
    redhat 找不到eth0等网卡设备
    oracle12.2 windows 安装卸载重新学习
    Ubuntu官方推荐U盘镜像写入工具(转载别人的)
    linux sh 脚本获取命令结果变变量然后post
    img图片过长自动截取隐藏
    python 数字类型
    Pycharm 常用快捷键 转自 暮良文王
    #python输入输出
    勤学如春起之苗,不见其增日有所长。缀学如磨刀之石,不见其损日有所亏
    感冒了,好难受
  • 原文地址:https://www.cnblogs.com/dclcc/p/3063326.html
Copyright © 2011-2022 走看看