MySQL 40 道面试题及答案.docx: int(10),char(10),varchar(10)区别;FLOAT 和 DO...

需积分: 0 0 下载量 192 浏览量 更新于2023-11-23 收藏 32KB DOCX 举报
MySQL 40 道面试题及答案.docx是一个包含了40个MySQL面试题及其答案的文件。其中包括了对于int(10)、char(10)和varchar(10)的区别的解释。int(10)中的10表示显示的数据的长度,而不是实际存储数据的大小;而char(10)和varchar(10)中的10表示实际存储数据的大小,即存储多少个字符。char(10)表示存储10个定长的字符,如果不足10个则用空格补齐,占用更多的存储空间;而varchar(10)表示存储10个变长的字符,存储多少个就是多少个,空格也按一个字符存储。 此外,该文件还解释了FLOAT和DOUBLE的区别。FLOAT类型数据可以存储至多8位十进制数,并在内存中占4字节,而DOUBLE类型数据可以存储至多18位十进制数,并在内存中占8字节。 文件还解释了drop、delete和truncate之间的区别。这三个关键字都表示删除,但是有些差别:Delete是属于DML(数据操作语言),可以回滚;Truncate和Drop是属于DDL(数据定义语言),不可回滚。Delete只删除表中的数据,而不删除表结构;Truncate删除表中的所有数据,但是保留表结构;Drop则是从数据库中删除整张表,包括表结构和其中的所有数据。 该文件还讨论了UNION和UNION ALL的区别。使用UNION ALL时会保留重复的记录行,而使用UNION则会合并重复的记录行。 最后,文件也提到了一些数据库优化方面的经验。例如,有外键约束会影响增删改操作的性能,如果应用程序可以保证数据库的完整性,可以考虑去除外键。另外,建议将SQL语句全部大写,特别是列名大写,因为数据库的机制是按照大写进行解析的。