zoukankan      html  css  js  c++  java
  • mysql 性别存储

    大家在设计数据库时,碰到 性别、状态等 这些 值比较固定的列时,数据类型 是如何定义?

    通常都是采用 :

    1 create table `XXX`
    2 (
    3 ........
    4 sex int(1) not null comment '0:男 1:女',
    5 status int(1) not null comment '0:开启 1:关闭'
    6 )

    这种设计吗 ?

    还是?

    1 create table `XXX`
    2 (
    3 ........
    4 sex enum('男','女'not null ,
    5 status enum('开启','关闭')  not null
    6 )

     设置成枚举类型 ,也有它的道理,参考:

    MySQL性能优化的最佳20+条经验  第九条 。

    转自:http://www.oschina.net/question/99114_21864

    其中comment表示注释:参考:http://bbs.csdn.net/topics/330026710

    另一篇文章用的是enum类型

    MySQL的各种复杂字段解析-enum,char,decimal

     

    1.MySQL中ENUM类型的使用之性别男女设定默认为男:

     SQL语句为:

    mysql> create table student (id int(11) primary key auto_increment,name varchar(
    10) NOT NULL,sex enum('男','女','保密')default '保密')ENGINE=InnoDB;

    写入:

    mysql>insert into student (name,sex) value ('张三','')

    注:enum中如果默认是'保密',则括号里也要有'保密'这项。

      phpmyadmin操作如下图:

     

     

    2.decimal:定点小数

    decimal(p,s);

    例如:decimal(2,1),有效长度为2,小数位占1位。
    此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数

    3.varchar和char:

    varchar:字符串型,不定长,溢出则截取掉,不足则不补满。如:varchar name(10);

    char:字符串型,定长,溢出则截取掉,不足则补满。如:char password(32),多用于密码md5值长度固定为32位。

  • 相关阅读:
    C# String.Compare 方法测试
    C#checked 与 unchecked
    C#枚举类型
    C#结构体
    C越界和溢出的区别
    python/matlab : 将txt文件中的数据读为numpy数组
    matlab程序里调用python文件
    Python
    Pycharm调试及快捷键技巧
    Pycharm远程连接服务器debug时报错
  • 原文地址:https://www.cnblogs.com/youxin/p/3333056.html
Copyright © 2011-2022 走看看