校对集(collate)
1。定义:数据库数据进行比较的比较方式、
2.比较的方式
_bin:使用二进制进行比较,区分大小写
_ci:不区分大小写(case insensitive)
_cs:大小写敏感,区分大小写(case sensitive)
3.默认的utf-8,gbk是不区分大小写的
4.校对集操作
-- 查看校对集
show collation;
-- 校对集更改
alter datebase name charset utf8 collate utf8_bin;
集合(set)
create table name(
字段名 set('a','b','c')
)charset utf8;
存储引擎
1.定义:存储和保存数据的方式
2.方式(都是免费)
innodb创建一个结构文件,数据和索引都放在ibdate1;
myisam创建三个文件,结构、数据和索引
3.区别:
myisam的插入和查询数据的效率比innodb高
innodb的更新和删除数据的效率比myisam高
innodb支持事务安全,myisam不支持
数据类型
整型
int类型
1.tinyint和int用的比较多
2.无符号字段后面加unsigned
alter table name add 字段名 int unsigned;
显示宽度(0填充)
1.用处:保证前端数据的显示不会改变原来的css结构。比如说月份,日期,时间。
2.0填充只能用于无符号类型
alter table name add 字段名 tinyint<2> zerofill;
小数型
-- M为整数位最大65,D为小数位最大30
alter table name add 字段名 decimal(M,D);
字符串型
char(255) varchar(65535) text set enum
1.选择:
char与varchar:
所有的字符串都要在255内
字符串固定选用char(md5,身份证,手机号 )
字符串不固定选用varchar(邮箱,姓名)
char的执行效率比varchar高,varchar比char节省空间
当字符串超过255的时候就不用varchar而用text
Δ注意
1.在mysql中,任意一条记录(所有字段的集合)的长度不能超过65535个字节。
所以varchar能够存储的数据的真实长度会变化很大
GBK:varchar能够存储多少个字符(65535 – 2) / 2 = 32766.5
utf8:varchar能够存储多少个字符(65535 – 2) / 3 = 21844.3
2.在mysql中,如果所有的字段里,没有全部不允许为null,那么需要一个字节来保存null
3.text不占存储长度空间,但是text本身需要占据10个字节来保存字段名。
其他
1.group by分组之后,会将数据进行合并,从而象征性的保留每组的第一条数据