![MySQL 8 DBA基础教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/469/34752469/b_34752469.jpg)
上QQ阅读APP看书,第一时间看更新
5.5 经典习题与面试题
1.经典习题
在shop数据库中创建一个购物车表cart,内容如表5-3所示。
表5-3 cart表的结构
![](https://epubservercos.yuewen.com/034E57/18562448901474706/epubprivate/OEBPS/Images/Figure-T176_95491.jpg?sign=1738956881-weQo1O73NEDChyHtya6UjnmhivFFDHCa-0-9832b4fed21e4723cdc16c5e344d71c5)
按照下列要求进行表操作:
(1)随意添加2条完整数据记录,插入到表中。
(2)在第2条数据之前插入一条数据,数据的保质期字段为空。
(3)删除添加的第一条数据。
(4)更新之前插入的保质期字段为空的数据,将其保质期设置为“过期”。
(5)删除保质期为“过期”的所有数据。
2.面试题及解答
(1)插入记录时,哪种情况下不需要在INSERT语句中指定字段名?
在INSERT语句中指定字段名是为了指明将数据插入哪个字段中。如果INSERT语句为表中的所有字段赋值,就可以不指明字段名,数据库系统会按顺序将数据一次性插入所有字段中。有些表的字段特别多,有些字段不需要赋值,这样就必须指出为哪些字段赋值。
(2)如何为自增字段(AUTO_INCREMENT)赋值?
在INSERT语句中可以直接为自增字段赋值。但是,大部分的自增字段需要数据库系统为其自动生成一个值,这样可以保证这个值的唯一性。用户可以通过两种方式让数据库系统自动为自增字段赋值:第一种方法是在INSERT语句中不为该字段赋值;第二种方法是在INSERT语句中将该字段赋值为NULL。而且,其值是上条记录中该字段的取值加1。
(3)如何进行联表删除?
如果某个学生退表了,就必须从学生表中删除这个学生的信息,同时,必须从数据库中删除所有与该同学相关的图书信息、成绩信息等,这就必须进行联表删除。在学生表删除这个学生的信息时,要同时删除所有其他表中该同学的信息,这个可以通过外键来实现,其他表中的信息与学生表中的信息都是通过学号来联系的,根据学号查询存在该同学信息的表,删除相应的数据。联表删除可以保证数据库中数据的一致性。