1.日期与时间:
mysql5.02之后的版本会对插入的数据的日期进行检查。是否通过有sql_mode变量设置的值查看,通过show variables;查看系统变量。
2.特殊的时间日期格式:TIMESTAMP
这个数据字段会在其他字段被修改时自动刷新,保留最后一次修改的日期。
3.字符串:(char varchar xxxtext)
char(20):一个char字段的时候,不管字符串的长度是多少每个字符串的长度都是占用20个字节。字符串的前导空格被删除,若字符串不足20字符,在字符串后添加空格补足。在查询显示的时候去掉末尾的空格,这个机制唯一缺点就是不保存末尾确实有空格的字符串。
4.在mysql5.0.3版本之后在myisam数据表中varchar数据列的最大字节数为65535,varchar存入的前导空格和后置空格都不会在被忽略了。
5.show collation;查看系统的字符集以及每个字符集对应的排序方式。
6.二进制数据类型:
blob是对二进制的数据进行存储的,比如图像文件等。在读取存储在mysql的二进制数据只能每条数据整个读取,不能读取一部分数据,二进制数据列和其他短小的数据列一起存储(char、int)会影响数据库的响应速度。bit(3)表示这个数据列存储三位二进制位。如果插入的数据上溢或下溢比如-1、99。那么所有位都会被置为1.-1和99查询出来就是111.
7.选项和属性:
mysql数据库不允许使用函数设置默认值:default random();这是不允许的。也不允许为数据列定义数据合法性校验规则。
8.mysql对数据列的大小写不区分但是对数据库和数据表的大小写具有区分。
9.1:1关系:
一个数据表中的一条数据对应着第二个数据表中的一条数据,第二个数据表中的一条数据也对应第一个数据表中的一条数据。通常这种情况,两个表都可以合并为一个数据表,比如员工表一部分信息不需要保密,一部分需要保密就可以采用1:1的关系。但是有一种解决方法:mysql能给数据表中每一数据列设置不同的访问权限,这样就不需要将一个表拆分为两个表就能保证安全了。但是才分成两个数据表的好处就是对于频繁查询的数据列归并到一个数据表,就能提升mysql的查询速度。缺点:有多余的空间开销。