字符集和校对规则

  • 字符集
# 查询当先字符集
mysql> show charset;
utf8
utf8mb4
#通用匹配包含char的字符集
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /data/app/mysql-5.7.28-linux-glibc2.12-x86_64/share/charsets/ |
+--------------------------+---------------------------------------------------------------+
  • utf8 和 utf8mb4 区别?
    例如:
    utf8不完整,emoji表情字符是不支持,utf8mb4是支持的。
    根本原因是,utf8 字符最大长度为3字节,utf8mb4是4字节。

  • 校对规则(排序规则)
    mysql> show collation;
    作用: 影响到了字符串的排序。

数据类型

作用: 约束存储的数据更加有意义,符合对于这个列的定义。

数字类型
字节量 范围

tinyint  #数字类型,最大255
tinyint 1 0~255 -127~128
int  # 数字类型,大于255
int 4 0~2^32-1 -2^31 ~2^31-1

字符串类型

char(10)  
#定长类型的字符串类型。最多存储10个字符。如果存了5个,剩余空间用空格填充。

varchar(10)
#变长类型的字符串类型。最多存储10个字符。如果存了5个,按需分配存储空间,另外需要1-2字节,存储字符长度。

怎么选择:一般情况下 变长字符串就用varchar,固定长度一般采用char类型

enum() : 枚举类型
应用场景: 列中的数据,有限个数的值的时候,并且是有规律。
enum('bj','sh','tj',.....)

时间日期

DATETIME
范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。

TIMESTAMP
1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。
timestamp会受到时区的影响

6.4 二进制
略。

6.5 json类型
略。

约束和其他表属性

Primary key    # 主键约束 ,要求设置为主键的列,储值时,非空且唯一。每张表只有一个主键。
not null       #非空约束,必须录入值
unique key     #唯一约束,不能重复值
unsigned       #数字类型约束,无符号。

default       #设置默认值,一般配合not null 使用
auto_increment  #针对数字列,自动增长,一般配合主键
comment  #列或者表进行注释

原文地址:http://www.cnblogs.com/root6/p/16864958.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性