zoukankan      html  css  js  c++  java
  • (2.1)sql server数据类型、同义词、分区表

    1.数据类型

    (1)常用数据类型 

    1.整数类型

    int

     存储范围是-2,147,483,648到2,147,483,647之间的整数,主键列常设置此类型。

    (每个数值占用 4字节)

    smallint

     存储范围是-32,768 到 32,767 之间的整数,用来存储限定在特定数值范围内的数据。

    (每个数值占用 2 字节)

    tinyint

     存储范围是0到255 之间的整数,用来存储有限数目的数值。

    (每个数值占用 1 字节)

    bigint

     存储范围是-9,223,372,036,854,775,808到 9,223,372,036,854,775,807之间的整数。

    (每个数值占用 8 字节)

    bit

     值只能是0或1,当输入0以外的其他值时,系统均把它们当1看待。常用来表示真假、男女等二值选择。

    2.数值类型

    decimal(p,s)

     p 为精度(有效位),表示可储存数值的最大位数,小数点左右两侧都包括在内,默认最大位为38 位;s为小数位数,标识小数点后  面所能储存的最大位数,默认最小位为0位。如:123.45,则 p=5,s=2(内存大小取决于精度p)

    numeric(p,s)

     numeric 和 decimal 是功能相同的,同是用来保存精度可变的浮点型数据。

    float

     浮点型,它是一种近似数值类型,float(n)可储存1-53的可变精度浮点数值。

    (内存大小取决于精度n)

    money

     货币型,能存储从-9220 亿到 9220 亿之间的数据,精确到小数点后四位。

    (每个数值占用 8 字节)

    3.日期时间

    datetime

     储存有效日期范围是1753/1/1~9999/12/31,可精准到3.33毫秒。(每个数值占用 8 字节)

    smalldatetime

     储存有效日期范围是1900/1/1~2079/6/6,精确到分钟。(每个数值占用 4 字节)

    4.二进制类型

    image

     虽然类型名为image, 但是并不意味着只能保存图片二进制数据,实际上它可以保存任何二进制数据。

    5.字符串类型

    char(m)

     固定长度字符串,长度为 m。

    nchar(m)

     国际化固定长度字符串,长度为 m。

    varchar(m)

     可变长度字符串,最大长度为m,且必须是一个介于 1 和 8,000 之间的数值。

    nvarchar(m)

     国际化可变长度字符串,最大长度为m, 且必须是一个介于 1 和 4,000 之间的数值。

    text

     可变长度字符串,最大长度为 231 - 1个字节。

    ntext

     国际化可变长度字符串,最大长度为 230 - 1个字符。

      国际化就是通用与标准。char、varchar、text储存的字符是基于ASCII编码格式,对于其他编码格式的字符可能会造成存储问题。Unicode字符集(万国码)就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、 nvarchar、ntext存储的正是Unicode编码格式的字符。所以一般来说,如果含有中文字符,用nchar、nvarchar、ntext, 如果只含英文字符,就用char、varchar、text。

      

    (2)新增数据类型:

      ~ XML:专门用来存储xml

      ~varchar(max)与nvarchar(max):加个max是什么意思呢,不是传统意义上的8000,max指示该类型最大存储大小为2^32 - 1,约为2G。该类型用来替代原本的text与ntext类型,text与ntext在未来更高的版本会被抛弃

      ~varbinary(max):与varbinary相同特性,max指示该类型最大存储大小为2^32 - 1,约为2G

    (3)数据存储基本拓展:

      概念:数据以页为单位存储,一个页8KB,去掉固定要用的相关开销,还有8060个字节可以使用。8个页组成一个扩展区;

      分配单元:

      【1】IN_ROW_DATA:存储行内数据

      【2】ROW_OVERFLOW_DATA:当【1】中的行数据超过一个页最大存储空间(即8060B时),存储溢出数据。原行内留下一个24B的指针

      【3】LOB_Data:存储Lob(二进制)对象

    2.同义词

      概念:同义词的概念我是这么理解的,其实就是再起个名字;举个例子,李狗蛋有3个称呼,大名李狗蛋,外号二狗子,小名蛋蛋。

            由此可以看出,大名、外号、小名都代表的是同一个人,外号和小名是基于大名得来的,所以大名就叫做基对象,而小名和外号就叫做同义词。

      特点:

        (1)局部同义词名称唯一

        (2)对同义词做的任何更改其实就是在修改基对象

        (3)不能引用用户定义的聚合函数

      基本形式:

    --基本形式
    create synonym 同义词名
    for 基对象
    --实例演示
    create synonym test102
    for dbo.test101

    3.分区表

      概念:其实就是把表中数据,根据水平或者垂直分割

        (1)水平分割:其实就是列太多,把它分到多个表中,要查的时候就join起来

        (2)垂直分割:其实就是行数据太多,导致单表太大,把它分成多个相同结构的表,分别根据某个逻辑(比如说时间字段)去进行分割

      操作:

           (1). 创建分区函数 

        (2). 创建分区方案

        (3). 对表进行分区

      概念加实操参考:

        (1)基础:http://www.cnblogs.com/gered/p/8074747.html

        (2)深入:http://www.cnblogs.com/gered/p/8856585.html

        (3)探究:http://www.cnblogs.com/CareySon/archive/2011/12/30/2307766.html

  • 相关阅读:
    core.net 创建coreclass 项目出现一些问题
    【BZOJ4144】[AMPPZ2014]Petrol 最短路+离线+最小生成树
    【BZOJ4774/4006】修路/[JLOI2015]管道连接 斯坦纳树
    【BZOJ2595】[Wc2008]游览计划 斯坦纳树
    【BZOJ4149】[AMPPZ2014]Global Warming 单调栈+RMQ+二分
    【BZOJ4764】弹飞大爷 LCT
    【BZOJ3529】[Sdoi2014]数表 莫比乌斯反演+树状数组
    【BZOJ5008】方师傅的房子 三角剖分
    【BZOJ4282】慎二的随机数列 乱搞
    【BZOJ1568】[JSOI2008]Blue Mary开公司 线段树
  • 原文地址:https://www.cnblogs.com/gered/p/9117522.html
Copyright © 2011-2022 走看看