<table>
<tbody>
<tr>
<td width = 140px align = center><b>課題<br>名稱</b></td>
<td >第2章 數據庫和表的基本操作</td>
<td> <div style = "vertical-align:top;text-align:center">計劃<br>學時</div></td>
<td ><div style = "vertical-align:top;text-align:center">7 課時</div></td>
</tr>
<tr>
<td width = 140px align = center><b>內容<br>分析</b></td>
<td colspan=3>在軟件開發中,必不可少會使用到數據庫和數據表。學會數據庫和數據表的基本操作,可以輕松實現數據的管理。本章將針對數據庫和數據表的基本操作進行詳細地講解。</td>
</tr>
<tr>
<td width = 140px align = center ><b>教學目標<br>基本要求</b></td>
<td colspan = 3>
1、 掌握數據庫的基本操作,會對數據庫進行增刪改查操作<br>
2、 掌握數據表的基本操作,會對數據表進行增刪改查操作<br>
3、 了解數據類型,學會SQL語句中不同類型數據的表示方式<br>
4、 掌握表的約束,學會使用不同的約束來操作表<br>
5、 掌握索引的作用,會創建和刪除索引
</td>
</tr>
<tr>
<td width = 140px align = center><b>教學重點</b></td>
<td colspan = 3>
1、 數據庫的基本操作<br>
2、 數據類型<br>
3、 數據表的基本操作<br>
4、 表的約束<br>
5、 索引
</td>
</tr>
<tr>
<td width = 140px align = center><b>難點及措施</b></td>
<td colspan = 3>
1、 表的約束<br>
2、 索引
</td>
<tr>
<td width = 140px align = center><b>教學方式</b></td>
<td colspan = 3>
講師課堂教學要以PPT講授為主,并結合多媒體進行教學
</td>
</tr>
<tr>
<td width = 140px align = center><b>教學過程</b></td>
<td colspan = 3>
<div style = "vertical-align:top;text-align:center"><h4><b>第一課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(數據庫基礎知識)</b></h5></div>
<div style = vertical-align:top;text-align:left><h5><b>一、創設情境,講解數據庫基礎知識</b></h5></div>
<div style= color:black>(1)老師提出需求,引出數據庫基礎知識</div>
<div style = color:blue> MySQL安裝完成后,要想將數據存儲到數據庫的表中,首先得創建一個數據庫。數據庫的基本操作包括創建數據庫、修改數據庫和刪除數據庫。</div>
<div style= color:black>(2)明確學習目標</div>
<div style = color:blue> 要求學生學會創建數據庫、刪除數據庫以及修改數據庫的編碼。</div>
<div style = vertical-align:top;text-align:left><h5><b>二、進行重點知識的講解</b></h5></div>
<div style= color:black>(1)如何創建一個數據庫?</div>
<div style = color:blue> 教師首先講解創建數據庫的語法格式,并對語法格式中各個字段所表示的意義進行介紹。然后使用“CREATE DATABASE itcast;”語句,向學生演示創建itcast數據庫的過程,當看到執行結果Query OK, 1 row affected (0.08 sec)時,說明數據庫創建成功。</div>
<div style= color:black>(2)如何查看數據庫?</div>
<div style = color:blue> 為了驗證數據庫系統中是否創建了名稱為itcast的數據庫,需要查看數據庫。查看數據庫分為查看所有數據庫和查看某個數據庫。教師可以通過操作向學生演示。(可參見教材例2-2、例2-3)<br>
<br>
* SHOW DATABASES;用于查看所有數據庫<br>
* SHOW CREATE DATABASE itcast;用于查看剛創建的itcast數據庫</div>
<div style=color:black>(3)如何修改數據庫的編碼?</div>
<div style = color:blue> 教師首先帶領學生回憶,在安裝數據庫時,已經選擇了數據庫的編碼方式,那么可不可以修改數據庫的編碼呢?數據庫的編碼是可以修改的, 通過ALTER DATABASE語句可以實現數據庫編碼的修改。然后講解ALTER DATABASE語句的語法格式,最后教師通過演示將itcast數據庫的編碼修改為gbk編碼方式,修改完畢,使用SHOW CREATE DATABASE語句查看修改后的數據庫編碼,驗證是否修改成功。(可參見教材例2-4)</div>
<div style= color:black>(4)如何刪除數據庫?</div>
<div style = color:blue> </div>
<div style = vertical-align:top;text-align:left><h5><b>三、歸納總結,隨堂練習,布置作業</b></h5></div>
<div style=color:black>(1)對課堂上講解的知識點進行總結,使用博學谷系統中的隨堂練習題鞏固本節課的知識點。</div>
<div style=color:black>(2)讓學生課下動手體驗,創建一個數據庫、修改數據庫字符編碼并刪除這個數據庫。</div>
<div style = "vertical-align:top;text-align:center"><h4><b>第二課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(數據類型)</b></h5></div>
<div style = vertical-align:top;text-align:left><h5><b>一、回顧上節課內容,繼續講解數據類型</b></h5></div>
<div style = color:black>(1)對上節課留的作業進行答疑。</div>
<div style = color:black>(2)回顧總結上節課的內容,引出本節課主題</div>
<div style = color:blue> 上節課講解了如何管理MySQL中的數據庫,在使用數據庫存儲數據時,不同的數據類型決定了存儲數據方式的不同。為此,MySQL數據庫提供了多種數據類型,本節課將重點講解MySQL中的數據類型。</div>
<div style = color:black>(3)明確學習目標</div>
<div style = color:blue> 使學生掌握各種數據類型所占字節數、取值范圍和應用范圍。</div>
<div style = vertical-align:top;text-align:left><h5><b>二、進入重點知識點的講解</b></h5></div>
<div style = color:black>(1)整數類型</div>
<div style = color:blue> 在MySQL數據庫中,存儲整數數值是最常見的。教師首先向學生介紹MySQL中的5種整數類型,分別是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。然后通過一張表格,畫出這五種整數類型所占的字節數和取值范圍(參見教材表2-1)。最后教師教學生如何通過字節數計算取值范圍,即2的字節數次方減1,這樣可以方便學生記憶數據類型的取值范圍。</div>
<div style = color:black>(2)浮點數類型和定點數類型</div>
<div style = color:blue> 教師首先舉個例子,比如商品價格一般都是9.9、199.9等。那么數據庫中如何存儲小數呢?然后教師進行講解MySQL數據庫中,存儲的小數使用浮點數和定點數。浮點數類型有兩種,單精度浮點數類型(FLOAT)和雙精度浮點類型(DOUBLE)。定點數類型有DECIMAL類型。最后教師可以通過一張表格,畫出這三種類型所占的字節數和取值范圍(參見教材表2-2)。</div>
<div style = color:black>(3)日期與時間類型</div>
<div style = color:blue> 教師首先舉個例子,比如要存儲用戶的登錄時間、會員生日等日期時間類的數據,要用YEAR、DATE、TIME、DATETIME和TIMESTAMP類型數據。然后,通過表格列舉出這些日期和時間數據類型所對應的字節數、取值范圍、日期格式以及零值(參見教材表2-3)。由于日期時間類型數據比較復雜,有不同的表示格式,需要分別進行詳細講解。最后,講解開發中常用的獲取當前系統日期的方法CURRENT_DATE和NOW(),獲取當前系統時間的方法CURRENT_TIME和NOW()。</div>
<div style = color:black>(4)字符串與二進制類型</div>
<div style = color:blue> 教師首先舉個例子,比如淘寶的數據庫就要存儲很多圖片,優酷的數據庫里就要存儲很多視頻數據。為了存儲字符串、圖片和聲音等數據,MySQL提供了字符串和二進制類型。然后通過一張表列舉字符串和二進制類型(參見教材表2-4)。不同數據類型具有不同的特點,所以要針對這些類型分別進行詳細講解:<br>
* CHAR和VARCHAR表示字符串數據,VARCHAR存儲可變長度的字符 <br>
* BINARY和VARBINARY類型表示二進制數據<br>
* TEXT類型用于表示大文本數據,其類型分為四種<br>
* BLOB類型表示數據量很大的二進制數據,例如圖片、PDF文檔等<br>
* ENUM類型稱為枚舉類型<br>
* SET類型用于表示字符串對象,它的值可以有零個或多個<br>
* BIT類型用于表示二進制數據
</div>
<div style = vertical-align:top;text-align:left><h5><b>三、歸納總結,布置作業</b></h5></div>
<div style = color:black>(1)對課堂上講解的知識點進行總結,使用博學谷系統中的隨堂練習題鞏固本節課的知識點。</div>
<div style = color:black>(2)使用測試題給學生布置作業。</div>
<div style = "vertical-align:top;text-align:center"><h4><b>第三課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(數據表的基本操作)</b></h5></div>
<div style = vertical-align:top;text-align:left><h5><b>一、回顧上節課內容,繼續講解數據表</b></h5></div>
<div style = color:black>(1)對上節課留的作業進行答疑。</div>
<div style = color:black>(2)回顧總結上節課的內容,引出本節課主題 </div>
<div style = color:blue> 上節課講解了數據類型,數據是存儲在數據表中的,所以想要存儲數據,就要先學會數據表的管理。本節將詳細講解數據表的基本操作。</div>
<div style = color:black>(3)明確學習目標 </div>
<div style = color:blue> 使學生學會創建、查看、修改以及刪除數據表</div>
<div style = vertical-align:top;text-align:left><h5><b>二、進入重點知識點的講解</b></h5></div>
<div style = color:black>(1)如何創建數據表?</div>
<div style = color:blue> 教師首先創建一張表,結果拋出“No database selected”錯誤。讓學生記住,在創建表之前一定要指定數據庫,語句為“USE 數據庫名”。然后講解創建數據表的語法格式。最后教師向學生演示創建一個用于存儲學生成績的表(可參見教材例2-6)的過程。</div>
<div style = color:black> (2)如何查看表? </div>
<div style = color:blue> 創建完表后,即可以查看表的結構,查看表結構有以下兩種方式:
<br> * 使用SHOW CREATE TABLE語句:查看表的定義語句和字符編碼
<br> * 使用DESCRIBE語句:查看表的字段名、字段類型等
<br>對于這兩種方式的講解,需要通過查看剛創建的表來演示,讓學生直觀感受兩種查看方法的不同。(可參見教材例2-7、2-8)
</div>
<div style = color:black> (3)如何修改表? </div>
<div style = color:blue> 教師首先讓學生討論,創建完一個表后,在以后的使用中,我們可以修改表的哪些部分。教師總結學生的討論結果,能夠修改的有:表名、字段名、字段的數據類型、添加字段、刪除字段、修改字段的排位。然后教師向學生介紹修改表結構的ALTER TABLE語句,并依次通過案例(參見教材例2-9~2-15)演示如何修改這些部分,演示完后讓學生整理出修改表名、表字段等SQL語句,這樣既方便下課后學生進行練習、又加深了學生對修改表使用的SQL語句的印象。</div>
<div style = color:black> (4)如何刪除表? </div>
<div style = color:blue> 刪除不需要的數據表比較簡單,使用DROP TABLE語句即可。教師演示刪除一個數據表(可參見教材例2-16)。</div>
<div style = vertical-align:top;text-align:left><h5><b>三、歸納總結,布置作業</b></h5></div>
<div style = color:black>(1)對課堂上講解的知識點進行總結,使用博學谷系統中的隨堂練習題鞏固本節課的知識點。</div>
<div style = color:black> (2)讓學生課下動手體驗,創建數據表、修改數據表,最后刪除數據表。 </div>
<div style = "vertical-align:top;text-align:center"><h4><b>第四課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(表的約束)</b></h5></div>
<div style = vertical-align:top;text-align:left><h5><b>一、回顧上節課內容,繼續講解數據表</b></h5></div>
<div style = color:black>(1)對上節課留的作業進行答疑。</div>
<div style = color:black>(2)進入本節課主題,講解表的約束</div>
<div style = color:blue> 為了防止數據表中插入錯誤的數據,在MySQL中,定義了一些維護數據庫完整性的規則,即表的約束。</div>
<div style = color:black>(3)明確學習目標</div>
<div style = color:blue> 使學生掌握主鍵約束、非空約束、唯一約束和默認約束的使用</div>
<div style = vertical-align:top;text-align:left><h5><b>二、進入重點知識點的講解</b></h5></div>
<div style = color:black>(1)如何使用主鍵約束?</div>
<div style = color:blue> 教師首先舉一個例子,每個人都有一個身份證號,身份證號就可以唯一標識一個人,不會像名字可以重復,身高體重可以相同。在數據表中也需要有一個唯一標識,就是主鍵。設置主鍵可以快速查找表中的某條信息。<br>
然后講解,主鍵約束分為兩種 <br>
單字段主鍵:由一個字段構成的主鍵
<br> 多字段主鍵:多個字段組合而成的主鍵
<br>教師創建一個表,演示如何創建單字段主鍵和多字段主鍵(可參見教材
例2-17和例2-18)。最后需要強調一點:每個數據表中最多只能有一個主鍵約束,定義為PRIMARY KEY的字段不能有重復值且不能為NULL值。
</div>
<div style = color:black>(2)如何使用非空約束?</div>
<div style = color:blue> 教師首先舉一個例子,在設計用戶登錄的數據庫時,用戶名密碼就不能為空。然后講解非空約束就可以控制字段的值不能為NULL。然后通過將表中的某字段設置為非空約束(可參見教材例2-19),向學生演示非空約束的定義。</div>
<div style = color:black>(3)如何使用唯一約束?</div>
<div style = color:blue> 教師首先舉一個例子,我們在注冊用戶時,如果新注冊的用戶名與已存在的用戶名相同,就不會讓新用戶使用這個名字,這在數據表中也可以進行限制。然后教師講解唯一約束用于保證數據表中字段值的唯一性。最后通過將表中某字段設置為唯一約束(可參見教材例2-20),向學生演示唯一約束的定義。</div>
<div style = color:black>(4)如何使用默認約束?</div>
<div style = color:blue> 教師首先舉一個例子,開發中經常要記錄用戶登錄的時間,那么又不想每次都獲取系統當前時間,此時就可以設置一個默認時間值,當用戶登錄時系統會自動為該字段添加系統當前時間值。那么如何設置字段的默認值呢?教師通過為表中某個字段設置默認約束(可參見教材例2-21),向學生演示默認約束的定義。</div>
<div style = color:black>(5)如何設置表的字段值自動增加??</div>
<div style = color:blue> 在數據表中,若想為表中插入的新記錄自動生成唯一的ID,可以使用AUTO_INCREMENT約束來實現,需要注意的是AUTO_INCREMENT約束的字段只能是任何整數類型。然后教師創建一個表,演示為表中的某字段設置為AUTO_INCREMENT約束字段(可參見教材例2-22)。</div>
<div style = vertical-align:top;text-align:left><h5><b>三、歸納總結,布置作業</b></h5></div>
<div style = color:black> (1)對課堂上講解的知識點進行總結,使用博學谷系統中的隨堂練習題鞏固本節課的知識點。</div>
<div style = color:black>(2)讓學生課下動手體驗,為表中字段添加主鍵約束、非空約束、唯一約束、默認約束以及如何讓字段值自動增加的約束設置。</div>
<div style = "vertical-align:top;text-align:center"><h4><b>第五課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(索引)</b></h5></div>
<div style = vertical-align:top;text-align:left><h5><b>一、回顧上節課內容,繼續講解數據表</b></h5></div>
<div style = color:black> (1)對上節課留的作業進行答疑。</div>
<div style = color:black>(2)教師首先通過現實生活中的例子,引出索引的概念</div>
<div style = color:blue> 在數據庫操作中,經常需要查找特定的數據,例如,當執行“select * from student where id=10000”語句時,MySQL數據庫必須從第1條記錄開始遍歷,直到找到id為10000的數據,這樣的效率顯然非常低。為此,MySQL允許建立索引來加快數據表的查詢和排序。本節將針對數據庫的索引進行詳細講解。</div>
<div style = color:black>(3) 明確學習目標</div>
<div style = color:blue> 使學生掌握索引的概念,會創建和刪除索引</div>
<div style = vertical-align:top;text-align:left><h5><b>二、進入重點知識點的講解</b></h5></div>
<div style = color:black>(1)什么是索引?</div>
<div style = color:blue> 教師首先舉一個例子,大家試想,新華字典如果沒有音序表,查一個字要多慢。索引就相當于音序表,它是對數據庫表中一列或多列的值進行排序后的一種結構,其作用就是提高表中數據的查詢速度。然后教師講解索引的6種分類:普通索引、唯一性索引、全文索引、單列索引、多列索引,空間索引。</div>
<div style = color:black>(2)如何創建索引?</div>
<div style = color:blue> 索引可以在創建表的過程中創建,也可以在已存在的表中創建索引。教師通過三種創建索引的方式進行講解,向同學演示6類索引的三種創建方式。(可參見教材例2-23~例2-40),加深學生的理解。</div>
<div style = color:black>(3)如何刪除索引?</div>
<div style = color:blue> 首先講解,為什么要刪除索引。由于表中數據的更新,索引會隨之變化并且索引會占用一定的磁盤空間。因此,為了避免影響數據庫性能,應該及時刪除不再使用的索引。然后想學生介紹兩種刪除索引的方法:
<br>  * 使用ALTER TABLE刪除索引
<br>  * 使用DROP INDEX刪除索引
教師向學生演示使用以上兩種方式刪除索引的操作過程。
</div>
<div style = vertical-align:top;text-align:left><h5><b>三、歸納總結,布置作業</b></h5></div>
<div style = color:black>(1)對課堂上講解的知識點進行總結,使用博學谷系統中的隨堂練習題鞏固本節課的知識點。</div>
<div style = color:black>(2)讓學生課下動手體驗,練習創建索引的三種方式。</div>
<div style = "vertical-align:top;text-align:center"><h4><b>第六課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(上機練習)</b></h5></div>
<div style = color:blue>上機練習主要針對本章中需要重點掌握的知識點,以及在程序中容易出錯的內容進行練習,通過上機練習可以考察同學對知識點的掌握情況,對代碼的熟練程度。</div>
<div style = vertical-align:top;text-align:left><h5><b>上機一:(考察知識點為創建和查看數據庫、創建數據表、設置表的字段值自動增加)</b></h5></div>
<div style = color:black>請按照以下要求創建數據表tb_student</div>
<div style = color:black>要求如下:</div>
1) 數據表tb_student創建在itcast數據庫中<br>
2) 設計數據表的字段結構,字段有id、name(姓名)、age(年齡)、Enrolment date(入學時間)等,請選擇適合的 數據類型。<br>
3) 字段id為int型,為主鍵,可自動增加。
<div style = "vertical-align:top;text-align:center"><h4><b>第七課時</b></h4></div>
<div style = "vertical-align:top;text-align:center"><h5><b>(上機練習)</b></h5></div>
<div style = vertical-align:top;text-align:left><h5><b>上機一:(考察知識點為修改數據表、非空約束、默認約束、索引)</b></h5></div>
<div style = color:black> 請按照以下要求操作數據表tb_student。</div>
<div style = color:black>要求如下:</div>
1) 查看itcast數據庫中的數據表tb_student。<br>
2) 向表中增加字段class(班級)。<br>
3) 為name字段添加非空約束。<br>
4) 在id字段上建立索引<br>
5) 給Enrolment date字段添加默認約束,默認值為當前系統時間
要求如下:
1) 查看itcast數據庫中的數據表tb_student。
2) 向表中增加字段class(班級)。
3) 為name字段添加非空約束。
4) 在id字段上建立索引
5) 給Enrolment date字段添加默認約束,默認值為當前系統時間
</td>
</tr>
<tr>
<td width = 140px align = center><b>
思考題和習題</b>
</td>
<td colspan = 3>
</td>
</tr>
<tr>
<td width = 140px align = center><b>
教學后記
</b>
</td>
<td colspan = 3></td>
</tr>
</tbody>
</table>
? ? ? ?
? ? ?
? ?