mysql(1)

mysql(默认数据表MyISAM&InonoDB)

  可以在MySQL的配置文件my.ini里设置,书里写的是 default-table-type。但是在my.ini里没有找到,而是

  # The default storage engine that will be used when create new tables when
  default-storage-engine=INNODB

  MyISAM,成熟、稳定,易于管理。分为三种 MyISAM static、MyISAM Dynamic和MyISAM Compressed

  1. MyISAM static:数据列各自有定义好的“固定长度”,数据存取效率高(在修改很频繁的基础下)
  2. MyISAM Dynamic:数据列没有固定的长度,存储效率高;缺点:在删除的时候会产生大量的 数据碎片
  3. MyISAM Compressed:压缩MyISAM,占用空间少;缺点:数据小变成了只读数据表,不能修改

  InnoDB,MyISAM的进化版,增加了事务、外键约束等功能;缺点:我不知道现在是否还有,毕竟时代在发展

总结:如果对 空间和时间要求高的话,就使用MyISAM;若需要 事务、外键、数据行级锁定机制,就使用InnoDB

  HEAP(临时数据表){hash index 散列索引 ,优点:存取速度快}

  HEAP的限制:不能使用---TEXT、---BOLB、<、>、<=、>=、AUTO_INCREMENT;只能对 not null 进行索引

  书里写的 HEAP 数据表的长度在配置文件里没有找到,config_max_heap_table_size

数据列宽度(INT(4))作用和C语言里转换说明符 %4d 一样,Warning(在执行一些需要借助于临时数据表才能完成的复杂查询时,可能会造成数据的截断)

AUTO_INCREMENT

  1. 每个表只能有一个A_T的数据列
  2. select LAST_INSERT_ID()
  3. 如果增长到最大值的话,不会继续递增,也不会再插入数据
  4. 有A_T,则必须有primary key

BIT&BOOL(二进制)

FLOAT&Doule(REAL)浮点数

  (m,d)m指定的是十进制数的个数,只是起显示效果;d指定的小数点后几位数字的个数(会进行四舍五入)

    插入的数据会进行必要的舍入

DECIMAL(定点数)

  如果四舍五入会产生差错时,使用DECIMAL。DECIMAL是使用字符串的形式来保存数据

DATE、TIME、DATATIME、YEAR、TIMETAMP

  表示日期的数据类型

  TIMETAMP,是在进行数据修改时,会记录最后一次修改的时间

  如果不想保存此次修改的记录时间, update tablename SET col=new value,ts=ts;

  如果想进行日期排版的话,使用DATA_FORMAT()

原文地址:https://www.cnblogs.com/AI-Cobe/p/9308780.html