sql备忘录

绑定外键

CONSTRAINT `tb_product_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `tb_product_category` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT

语句

绑定主键

PRIMARY KEY (`id`) USING BTREE

索引

B-TREE索引: USING BTREE

数据类型

  1. 数值类型 :

    tinyint -128~127之间的整数

    smallint

    mediumint

    int

    bigint

    浮点类型 float , double

  2. 字符串类型:

    varchar

    char,()中保存一个字节

  3. 日期时间类型

    DATE

    TIME

    DATETIME

    ``TIMESTAMP`。

  4. 文本类型 文本类型包括TEXT和BLOB。在MySQL中,TEXT类型包括TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT,它们的存储方式都是变长存储,可以存储较大的文本数据;而BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB,它们的存储方式也是变长存储,可以存储较大的二进制数据。

  5. 枚举类型和集合类型 枚举类型和集合类型是MySQL中特有的类型。枚举类型存储时会将枚举值转换成整数存储,而集合类型存储时则会将多个枚举值组合成一个集合进行存储

  6. 精确数值:

    1. DECIMAL(M,D) M代表多少为数,D代表小数点后几位

修饰符

unsigned 非负数

时间修饰符:CURRENT_TIMESTAMP(0)当前时间 0 表示小数点后面的位数

DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0)

编码格式

在ASCII编码中,每个字符占用1个字节;

在UTF-8编码中,一个英文字符占用1个字节,一个汉字字符占用3个字节;

在UTF-16编码中,一个英文字符占用2个字节,一个汉字字符占用2个或4个字节;在UTF-32编码中,每个字符都占用4个字节。

字符排序规则

CHARACTER SET = utf8 COLLATE = utf8_general_ci不区分大小写

优化

ROW_FORMAT 是用于指定表中行的存储格式的一种选项

ROW_FORMAT = Dynamic是一种行格式,MySQL会根据行的大小自动选择行的存储方式,可以是COMPACT或者REDUNDANT。对于比较小的行,MySQL会使用更紧凑的存储方式(COMPACT),而对于较大的行,MySQL会使用更宽松的存储方式(REDUNDANT),以节省存储空间。这种自适应的存储方式可以在一定程度上提高表的存储效率和查询性能