一、数据库基础
1、数据库三范式
数据库三范式是指数据库设计中的三个重要范式,它们被认为是数据库设计的基本规则,能够确保数据的一致性和完整性。这三个范式分别是:
第一范式(1NF):确保每个表中的每个字段都是原子的,即不可再分的。每个字段只能包含一个值,不允许多个值或者集合。这可以避免数据冗余和数据的不一致性。
第二范式(2NF):确保每个表中的非主键字段都完全依赖于主键,而不是依赖于主键的一部分。这意味着每个表应该有一个唯一的主键,并且每个非主键字段必须直接依赖于主键。
第三范式(3NF):确保每个表中的非主键字段都不依赖于其他非主键字段。这意味着每个表应该将所有数据分解成最小的功能单位,避免数据冗余和数据的不一致性。
遵循这三个范式可以帮助设计出高效、稳定和可维护的数据库。
2、MySQL的binlog有有几种录入格式?分别有什么区别
MySQL的二进制日志(binlog)有三种不同的录入格式:
STATEMENT格式:以SQL语句的形式记录对数据库的修改操作。这种格式的binlog只记录执行的SQL语句,不记录每个语句对应的具体数据变化,因此在一些情况下,比如涉及到函数、存储过程或者触发器等复杂操作时,可能会出现数据不一致的情况。
ROW格式:以每行数据的形式记录对数据库的修改操作。这种格式的binlog记录每一行数据变化的详细信息,可以准确地还原每个操作对应的数据变化,但是由于需要记录大量的详细信息,因此会占用更多的磁盘空间。
MIXED格式:结合STATEMENT和ROW两种格式的优点,根据具体的操作类型自动选择记录SQL语句或者记录每行数据的形式。这种格式的binlog可以根据具体情况灵活选择合适的录入格式,既可以减少磁盘空间的占用,又可以保证数据的一致性。
需要注意的是,不同的binlog录入格式会对数据库的性能、数据一致性和磁盘空间占用等方面产生影响,具体选择哪种格式需要根据实际需求进行评估和选择。
3、MySQL有哪些数据类型
MySQL支持多种数据类型,这些数据类型可以分为以下几类:
整数类型:包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。
浮点数类型:包括FLOAT和DOUBLE。
定点数类型:包括DECIMAL。
字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
日期和时间类型:包括DATE、TIME、DATETIME和TIMESTAMP。
枚举类型:ENUM。
集合类型:SET。
空间数据类型:包括GEOMETRY、POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON和GEOMETRYCOLLECTION。
Last updated