- MySQL 8 DBA基礎教程
- 孫澤軍 劉華貞
- 638字
- 2020-11-23 16:40:53
4.8 經典習題與面試題
1.經典習題
在shop數據庫中創建一個購物車表cart,內容如表4-3所示。
表4-3 cart表結構

按照下列要求進行表操作:
(1)將name字段的數據改為VARCHAR(30),且保留非空約束。
(2)將sum_money字段的位置改到count字段的前面。
(3)將sum_money字段改名為total_money。
(4)在表中增加expiredays字段,數據類型為VARCHAR(4),表示是否已過期。
(5)刪除count字段。
(6)將cart表的存儲引擎更改為MyISAM類型。
(7)將cart表名更改為shoppingCart。
2.面試題及解答
(1)修改數據表的字段名稱之后,會有部分約束條件丟失,原因何在?
在修改數據表的字段名稱時,如果想保持原來的約束條件,一定要把原來的約束條件帶上,否則就會丟失。
(2)為什么自增字段不能設置默認值?
一個表只能有一個自增字段,可以是任何整數類型,自增字段沒有默認值。在沒有設置初值的情況下,自增字段從1開始增加,插入記錄時,不設置自增字段的值。自增字段處插入的值為NULL或者為0時,該字段的值在上一條記錄的基礎上加1。如果插入的記錄中該字段的值為8,且下一條記錄沒有指定值,該字段的值就在此基礎上加1。
(3)如何設置外鍵?
子表的外鍵必須依賴父表的某個字段,因此父表必須先于子表建立,而且父表中的被依賴字段必須是主鍵或者組合主鍵中的一個。如果不滿足這些條件,就不能成功創建子表。
(4)如何刪除父表?
刪除父表是很麻煩的過程,因為子表的外鍵約束限制著父表的刪除。有兩種方法可以解決這個問題。第一種方法,先刪除子表,再刪除父表。這樣做完全可以達到刪除父表的目的,但是必須犧牲子表。第二種方法,先刪除子表的外鍵約束,再刪除父表。
推薦閱讀
- JavaScript前端開發模塊化教程
- 自然語言處理實戰:預訓練模型應用及其產品化
- Mastering Natural Language Processing with Python
- 物聯網系統開發:從0到1構建IoT平臺(第2版)
- Hands-On RESTful Web Services with Go
- 用戶體驗增長:數字化·智能化·綠色化
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- 快速入門與進階:Creo 4·0全實例精講
- 軟件工程基礎與實訓教程
- 貫通Tomcat開發
- LabVIEW數據采集
- 虛擬現實建模與編程(SketchUp+OSG開發技術)
- JavaScript高級程序設計(第4版)
- SAP HANA Cookbook
- 區塊鏈原理、設計與應用