• T-SQL语法基础


    一、T-SQL语言的分类

      DDL-数据定义语言

        create-创建

        alter-修改

        drop-删除(针对对象)

      DML-数据操作语言

        Insert-插入

        update-更新

        delete-删除(针对对象的内容)

      DQL-数据查询语言

        select-查询

      DCL-数据控制语言

        revoke-撤销

        deny-拒绝

        grant-同意、授权

    二、语法元素

      批处理元素

        go-语法结束标志,执行前面的语句或一个完成的处理过程

        exec-调用执行存储过程

      注释

        行注释:--

        块注释:/*  */

    三、数据类型

      整数型

        Bigint:8个字节,范围:-263~263-1,精度:19

        Integer:4个字节,范围:-231~231-1,精度:10

        Smallint:2个字节,范围:-215~215-1,精度:5

        Tinyint:1个字节,范围0~255,精度:3

      精确数值型

        Numeric(5,3) -共五位数,其中三位是小数

        Decimal(15,5)-共15位数,其中五位是小数(默认精度为18)

        Decimal(p,s)-p为精度,s为小数位数

        精度为1-9,长度为5个字节

        精度为10-19,长度为9个字节

        精度为20-28,长度为13个字节

        精度为29-38,长度为17个字节

        注:Numeric与Decimal在是同义词,可互换使用,建议使用Decimal

      近似数值型

        real等价于float(24)

        float[(n)]其中n为存储float数值尾数的尾数(以科学记数法表示),因此可以确定精度和存储大小。如果指定了n,则它必须是介于1和53之间的某个值。n的默认值为53。

    n 值精度存储大小
    1-24 7 位数 4 个字节
    25-53 15 位数

    8 字节

       货币型

        Money 范围:-263~263-1,精确小数后4位,占8个字节

        Smallmoney 范围:-231-231-1,精确小数后4位,占4个字节

      位型

        bit 表示0或1

        SQL Server 数据库引擎 可优化 bit 列的存储。 如果表中的 bit 列为 8 列或更少,则这些列作为 1 个字节存储。 如果 bit 列为 9 到 16 列,则这些列作为 2 个字节存储,以此类推。

        字符串值 TRUE 和 FALSE 可转换为 bit 值:TRUE 转换为 1,FALSE 转换为 0。

        转换为 bit 会将任何非零值升为 1。

      日期时间型

        date 范围:0001-01-01 到 9999-12-31 字符长度:10位 存储大小:固定3个字节

        datetime 日期范围:1753 年 1 月 1 日到 9999 年 12 月 31 日 时间范围:00:00:00 到 23:59:59.997 字符长度:最低 19 位到最高 23 位 存储大小:8 字节

        smalldatetime 日期范围:1900-01-01 到 2079-06-06 时间范围:00:00:00 到 23:59:59(2017-07-07 23:59:59 将舍入为2017-07-08 00:00:00) 字符长度:最高19位 存储大小:固定4个字节 精度:一分钟

        time 范围:00:00:00.0000000 到 23:59:59.9999999 存储大小:固定5个字节 精度:100纳秒 字符长度:最小 8 位 (hh:mm:ss),最大 16 位 (hh:mm:ss.nnnnnnn)

      字符型

        char 固定长度(以空格填补多余长度)

        varchar 可变长度

        Nchar “Nuicode”固定长度

        Nvarchar “Nuicode”可变长度

        “Nuicode”国际标准码:双字节模式 如:一个汉字=两个字节

      文本型

        text 一个字符占用一个字节,数据的最大长度为231-1(2,147,483,647)个字符

        Ntext 一个字符占用两个字节,数据的最大长度为230-1(1,073,741,823)个字符

      使用数据类型的指导原则

        1.如果列的长度可变,使用某个可变数据类型

        2.要为以后数据的拓展预留空间

        3.精确数值型,建议使用decimal

        4.如果存储量超过了8000字节,使用text.如果存储量小于8000字节,使用char,可能时,最好使用varchar,原因在于它比text和image有更强的功能

        5.对于货币类型来说,使用money数据类型

        6.不要把float和real数据类型作为主键,原因在于这些数据类型的值是不精确的,它们不适于在比较中使用

    四、标识符

      标准标识符

        标准标识符可以包含1到128位字符,包括字母,符号(_、@或#)及数字。标准标识符中不允许有空格。

      限定标识符([ ]/””)

        当对象名字包含空格时

        当保留关键字被用作对象名或对象部分的名字时

      标识符的命名规则

        名字尽量短

        尽量使用有意义的名字

        使用简单的清晰的命名习惯

        使用能区分出对象类型的标识符,尤其是视图和存储过程的名字

        保持对象名和用户名的唯一性

      特殊标识符

        # 局部临时变量

        ## 临时变量

        @ 局部变量

        @@ 全局变量

    五、变量

      变量是可以赋值的SQL语句元素。

      在T-sql中,你可以使用局部变量。

      用户可以使用decare语句来定义一个局部变量,通过使用set和select语句为这个局部变量赋值,局部变量名前必须带有@.如果一个变量前有两个@@符号,那么它将被作为函数处理。

      例:定义一个字符型变量,赋值为"customer",并显示变量内容

      declare @tempName varchar(20)

      set @tempName='customer'

      select @tempName

    六、运算符

      概述

        运算符是进行数学计算、字符操作及字段、常量和变量比较的符号。

      运算符的种类

        算述运算符:+,-,*,/,%

        比较运算符:=,>,<,>=,<=,<>   

        字符运算符:+

        逻辑运算符:and,or,not用于连接where 子句中的查询条件

      运算符的优先级

    运算符 优先级
    +(正)-(负)~(按位取反) 1
    *、/ 2
    +(加),-(减) 3
    =,>,<,>=,<=,<> 4
    Not 5
    And 6
    all,between,in,like,or 7
    =(赋值) 8
  • 相关阅读:
    【模板整合计划】高阶数据结构
    【模板整合计划】高阶数据结构—线段树
    主席树【权值线段树】(转)
    Flask系列(二) 模板 templates
    用java实现Shazam 译文
    [转] 研究云计算与海量数据处理方向建议看的论文列表
    程序员应知 如何分析海量数据
    大数据技术大会
    android监控网络状态
    HP(惠普)大中华区总裁孙振耀退休感言
  • 原文地址:https://www.cnblogs.com/li-learning/p/T_SQL_Grammar.html
Copyright © 2020-2023  润新知