- SQL基础教程(视频教学版)
- 李小威
- 746字
- 2021-04-04 10:20:29
2.9 疑难解惑
疑问1:删除数据库时需要注意什么?
使用DROP DATABASE命令时要非常谨慎。在执行该命令时,MySQL不会给出任何提醒的信息或确认提示的信息。DROP DATABASE声明删除数据库后,数据库中存储的所有数据表和数据将一同被删除,而且不能恢复。
疑问2:表删除操作须谨慎。
表删除操作将把表的定义和表中的数据一起删除,并且MySQL在执行删除操作时不会有任何的确认提示信息,因此执行删除操时,应当慎重。在删除表前,最好对表中的数据进行备份,这样当操作失误时可以对数据进行恢复,以免造成无法挽回的后果。
同样的,在使用ALTER TABLE进行表的基本修改操作之前,也应该对数据进行完整的备份,因为数据库的改变是无法撤销的。如果添加了一个不需要的字段,还可以将其删除;但是,如果错误删除了一个需要的列,那么该列下面的所有数据都将会丢失。
疑问3:每一个表中都要有一个主键吗?
并不是每一个表中都需要主键。一般多个表之间进行连接操作时需要用到主键,因此并不需要为每个表建立主键,而且有些情况最好不使用主键。
疑问4:并不是每个表都可以任意选择存储引擎。
外键约束(FOREIGN KEY)不能跨引擎使用。MySQL支持多种存储引擎,每一个表都可以指定一个不同的存储引擎,但是要注意:外键约束是用来保证数据引用完整性的,如果表之间需要关联外键,却指定了不同的存储引擎,那么这些表之间是不能创建外键约束的。所以说,存储引擎的选择也不完全是随意的。
疑问5:带AUTO_INCREMENT约束的字段值是从1开始的吗?
在MySQL中,AUTO_INCREMENT默认的初始值是1,每新增一条记录,字段值自动加1。设置自增属性(AUTO_INCREMENT)时,还可以指定第一条插入记录的自增字段的值,这样新插入的记录的自增字段值从设置的初始值开始递增,如在tb_emp8中插入第一条记录,同时指定id值为5,那么以后插入的记录的id值就会从6开始往上增加。添加唯一性的主键约束时,往往需要设置字段自动增加属性。