zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/li-learning/p/T_SQL_Grammar.html
Copyright © 2011-2022 走看看