db>
新建数据库时,字符集影响编码,排序规则(Collation)影响字段的排序
- mysql 默认情况下他的collation是 utf8_general_ci ,不区分大小写 ,在做某些有大小写区分的业务上要加以注意。
- 在web页面编码中起决定作用的是http response报头中的Content-Type中的charset设置,这个设置成哪种编码,浏览器就会按哪种编码来解码。
- 在mysql中存在着各种utf8编码格式,
utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写,utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感,
utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。
table>
数据库字段设计
整型:
TINYINT 0-255
Smallint 65535 万
Medium 千万
INT 亿 默认是11位 就算设置int(2)也是11位
INT(6),6即是其宽度指示器,假如存储152 结果为000152
修饰符规定字段只保存正值,即无符号,而mysql字段默认是有符号的。因为不需要保存数字的正、负符号,可以在储时节约一个"位"的空间(即翻一倍)。从而增大这个字段可以存储的值的范围。
浮点型
Decimal精准度由于float和double
存储上的 decimal>double>float
Decimal(5,2) 意思为 一共五位数 小数点精确到两位 比如132.23 超出则四舍五入。
时间类型
DATE 1000-01-01/9999-12-31
字符串类型
一个英文字符占一个字节
一个中文字符占两个字节
Char/varchar(M) M值长度 0-255之间 比如李文超 gbk6个字节 utf8 9个字节 char(9)就可以
text类型(一般用来保存文章)
tinytext 255
text 65535
mediumtext 亿
longtext 十亿
常用:
varchar(255),char(255),text,tinyint(4),smallint(6),mediumint,int(11)
手机char(11)
姓名:char(20)
价格:DECIMAL(7, 3)
产品序列号:SMALLINT(5) unsigned
文章内容: TEXT
MD5: CHAR(32)
email char(32)
ip: char(15)
time: int(10)