美文网首页
SQL字段类型及部分建表思想

SQL字段类型及部分建表思想

作者: 某某香肠 | 来源:发表于2018-07-15 22:54 被阅读0次

    字段类型

    整形类型

    类型 储存空间 表示范围(无符号) 表示范围(有符号)
    tinyint 1 0~28-1 -27 ~27-1
    smallint 2 0~216-1 -215 ~215-1
    mediumint 3 0~224-1 -223 ~223-1
    int 4 0~232-1 -231 ~231-1
    bigint 8 0~264-1 -263 ~263-1

    建表的时候,如果不指明字段无符号,则默认是有符号的,要想建一个无符号的字段,需要加unsigned修饰。
    另外还有修饰符<M>,表示十进制补0的宽度,和修饰符zerofill配套使用,使用该修饰附后该字段默认是无符号的。

    小数类型

    小数类型有float(浮点),decimal(定点,其精度比浮点高)等等,通常带M,D两个参数,如:
    Float(M,D)
    其中M为精度,代表总位数,而D为标度,代表小数点后面的位数(均为十进制)。
    在float类型中,当M≤24,占4字节,否则占8字节。
    默认是有符号的,想建一个无符号的需要加unsigned修饰。

    字符类型

    char(M)

    定长字符串,其中0<M<255,不论够不够指定长度都会占着M个长度(M为字符数),如果不够M个长度,则用空格在末尾补齐,取出时把右侧空格去掉,其优点是操作效率较高(可以通过行数和其占用长度直接算出偏移量)

    varchar(M)

    变长字符串,其中0<M<65525,存0到M个字符,在存储的时候,在字符前会加上字符的长度,因此空间利用率不能达到100%,另外查询速度没有char快。

    text

    表示比较大的文本级,不能有默认值,搜索速度稍慢

    blob

    用于存储二进制,如图像、音频等信息,主要是防止字符集过滤掉关键字节而设置的类型

    日期和事件类型

    date

    日期类型(YYYY-MM-dd)存储年月日 占用3个字节

    time

    时间类型(hh:mm:ss)存储时分秒 占用3个字节

    datetime

    日期时间类型(YYYY-MM-dd hh:mm:ss)存储年月日时分秒 占用8个字节

    year

    年份类型(YYYY或YY)存储年 占用1个字节 只能表示1901到2255
    以上类型操作时,其值都要加引号

    建表

    create table [tableName](
    [columeName] [columeType] (primary key),
    ...
    [columeName] [columeType](not null default xx)
    )engine [engineName] charset [charsetName];
    通常而言,不常用的信息以及比较占据空间的信息存储到辅表中,以免影响主表的查询效率。

    相关文章

      网友评论

          本文标题:SQL字段类型及部分建表思想

          本文链接:https://www.haomeiwen.com/subject/ssqppftx.html