版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
模塊3創(chuàng)建與優(yōu)化MySQL數(shù)據(jù)表結(jié)構(gòu)課程名稱MySQL數(shù)據(jù)庫應(yīng)用、設(shè)計與管理任務(wù)驅(qū)動教程章名創(chuàng)建與優(yōu)化MySQL數(shù)據(jù)表結(jié)構(gòu)教學(xué)內(nèi)容創(chuàng)建與優(yōu)化MySQL數(shù)據(jù)表結(jié)構(gòu)課時8項目性質(zhì)□演性 驗性 □計性 √合性授課班級授課日期授課地點教學(xué)目標(biāo)了解網(wǎng)上商城數(shù)據(jù)庫應(yīng)用掌握MySQL的數(shù)據(jù)類型及選用掌握數(shù)據(jù)表結(jié)構(gòu)的分析與確定掌握數(shù)據(jù)表的創(chuàng)建掌握查看MySQL數(shù)據(jù)庫中的數(shù)據(jù)表及其結(jié)構(gòu)數(shù)據(jù)的方法掌握修改MySQL數(shù)據(jù)表的結(jié)構(gòu)的方法掌握刪除沒有被關(guān)聯(lián)的數(shù)據(jù)表的方法教學(xué)內(nèi)容體驗網(wǎng)上商城數(shù)據(jù)庫應(yīng)用MySQL的數(shù)據(jù)類型及選用分析并確定數(shù)據(jù)表的結(jié)構(gòu)創(chuàng)建數(shù)據(jù)表查看MySQL數(shù)據(jù)庫中的數(shù)據(jù)表及其結(jié)構(gòu)數(shù)據(jù)修改MySQL數(shù)據(jù)表的結(jié)構(gòu)刪除沒有被關(guān)聯(lián)的數(shù)據(jù)表教學(xué)重點優(yōu)化數(shù)據(jù)表結(jié)構(gòu)教學(xué)難點MySQL的數(shù)據(jù)類型、優(yōu)化數(shù)據(jù)表結(jié)構(gòu)教學(xué)準(zhǔn)備裝有MySQL、NavicatforMySQL等軟件的計算機教學(xué)課件PPT教材:《MySQL數(shù)據(jù)庫應(yīng)用、設(shè)計與管理任務(wù)驅(qū)動教程(微課版)》作業(yè)設(shè)計教學(xué)過程教學(xué)環(huán)節(jié)教學(xué)內(nèi)容與過程(教學(xué)內(nèi)容、教學(xué)方法、組織形式、教學(xué)手段)課前組織做好上課前的各項準(zhǔn)備工作(打開計算機、打開課件、打開軟件、打開授課計劃、教案等),吸引學(xué)生注意力。課程說明【課前說明】從網(wǎng)上商城數(shù)據(jù)庫的應(yīng)用引入本模塊學(xué)習(xí)內(nèi)容?!灸康摹渴箤W(xué)生從了解本節(jié)課的學(xué)習(xí)目標(biāo)、學(xué)習(xí)重點、考評方式等方面明確課程學(xué)習(xí)的要求和目標(biāo)。課程內(nèi)容描述3.1體驗網(wǎng)上商城數(shù)據(jù)庫應(yīng)用【任務(wù)3-1】通過網(wǎng)上商城實例體驗數(shù)據(jù)庫的應(yīng)用【任務(wù)描述】首先通過京東網(wǎng)上商城實例體驗數(shù)據(jù)庫的應(yīng)用,對數(shù)據(jù)庫應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫和數(shù)據(jù)表有一個直觀認(rèn)識。與京東網(wǎng)上商城數(shù)據(jù)庫應(yīng)用的相關(guān)內(nèi)容如表所示,所涉及的數(shù)據(jù)表事先都已設(shè)計完成,可直接通過應(yīng)用程序?qū)?shù)據(jù)表中的數(shù)據(jù)進行存取操作。體驗京東網(wǎng)上商城數(shù)據(jù)庫應(yīng)用涉及的相關(guān)項數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫主要數(shù)據(jù)表典型用戶典型操作京東網(wǎng)上商城應(yīng)用系統(tǒng)網(wǎng)上商城
數(shù)據(jù)庫商品類型、商品信息、供應(yīng)商、客戶、支付方式、提貨方式、購物車、訂單信息等客戶、職員用戶注冊、用戶登錄、密碼修改、商品查詢、商品選購、下單、訂單查詢等【任務(wù)實施】1.查詢商品與瀏覽商品列表啟動瀏覽器,在地址欄中輸入京東網(wǎng)上商城的網(wǎng)址“https://”,按【Enter】鍵進入京東網(wǎng)上商城的首頁,首頁的左上角顯示了京東網(wǎng)上商城的“全部商品分類”。這些商品分類數(shù)據(jù)源自后臺數(shù)據(jù)庫的“商品類型”數(shù)據(jù)表,此任務(wù)中“商品類型”數(shù)據(jù)表的示例數(shù)據(jù)如表所示?!吧唐奉愋汀睌?shù)據(jù)表的示例數(shù)據(jù)類型編號類型名稱父類編號類型編號類型名稱父類編號類型編號類型名稱父類編號t01家用電器t00t03電腦產(chǎn)品t00t0304游戲設(shè)備t03t0101電視機t01t0301電腦整機t03t0305網(wǎng)絡(luò)產(chǎn)品t03t0102空調(diào)t01t030101筆記本t0301t04辦公用品t00t0103洗衣機t01t030102游戲本t0301t05化妝洗護t00t0104冰箱t01t030103平板電腦t0301t06服飾鞋帽t00t0105廚衛(wèi)電器t01t030104臺式機t0301t07皮具箱包t00t0106生活電器t01t0302電腦配件t03t08汽車用品t00t02數(shù)碼產(chǎn)品t00t030201顯示器t0302t09母嬰玩具t00t0201通信設(shè)備t02t030202CPUt0302t10食品飲料t00t020101手機t0201t030203主板t0302t11醫(yī)藥保健t00t020102手機配件t0201t030204顯卡t0302t12禮品鮮花t00t020103對講機t0201t030205硬盤t0302t13圖書音像t00t020104固定電話t0201t030206內(nèi)存t0302t1301圖書t13t0202攝影機t02t0303外設(shè)產(chǎn)品t03t1302音像t13t0203攝像機t02t030301鼠標(biāo)t0303t1303電子書刊t13t0204數(shù)碼配件t02t030302鍵盤t0303t14家裝廚具t00t0205影音娛樂t02t030303U盤t0303t15珠寶首飾t00t0206智能設(shè)備t02t030304移動硬盤t0303t16體育用品t00在京東網(wǎng)上商城首頁的“搜索”文本框中輸入“手機華為”,按【Enter】鍵,顯示出來的部分手機信息如圖所示。搜索“手機華為”顯示出來的部分手機信息這些商品信息源自后臺數(shù)據(jù)庫的“商品信息”數(shù)據(jù)表,此任務(wù)中“商品信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示。“商品信息”數(shù)據(jù)表的示例數(shù)據(jù)序號商品編號商品名稱商品類型價格(元)品牌1100009177424華為Mate305G手機4499.00華為(HUAWEI)2100004559325華為榮耀20S手機1899.00華為(HUAWEI)3100006232551OPPOReno3雙模5G手機2999.00OPPO4100011351676小米10Pro雙模5G手機4999.00小米(MI)5100005724680戴爾G3筆記本電腦6099.00戴爾(DELL)6100003688077聯(lián)想拯救者Y7000P筆記本電腦8499.00聯(lián)想(Lenovo)7100005603836惠普暗影精靈GTX筆記本電腦6299.00惠普(HP)8100005638619華為榮耀MagicMallDB筆記本電腦3599.00華為(HUAWEI)9100004541926TCL65T680電視機4199.00TCL10100000615806長虹55D7P電視機2699.00長虹(CHANGHONG)11100004372958創(chuàng)維50V20電視機1599.00創(chuàng)維(Skyworth)12100013232838海爾LU58J51電視機3999.00海爾(Haier)13100005624340海信HZ55E5D電視機3299.00海信(Hisense)14100014512520格力KFR-72LW/NhAb3BG空調(diào)7998.00格力(GREE)15100013973228美的KFR-35GW/N8MJA3空調(diào)1999.00美的(Midea)在京東網(wǎng)上商城首頁的“全部商品分類”列表中單擊【圖書】超鏈接,打開“圖書”頁面,然后在“搜索”文本框中輸入圖書名稱關(guān)鍵字“MySQL”,按【Enter】鍵,顯示出來的部分圖書信息如圖所示。搜索“MySQL”顯示出來的部分圖書信息這些圖書信息源自后臺數(shù)據(jù)庫的圖書信息數(shù)據(jù)表,此任務(wù)中“圖書信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示?!皥D書信息”數(shù)據(jù)表的示例數(shù)據(jù)序號商品編號圖書名稱商品類型價格(元)出版社112631631HTML5+CSS3網(wǎng)頁設(shè)計與制作實戰(zhàn)圖書47.10人民郵電出版社212303883MySQL數(shù)據(jù)庫技術(shù)與項目應(yīng)用教程圖書35.50人民郵電出版社312634931Python數(shù)據(jù)分析基礎(chǔ)教程圖書39.30人民郵電出版社412528944PPT設(shè)計從入門到精通圖書79.00人民郵電出版社512563157給Python點顏色青少年學(xué)編程圖書59.80人民郵電出版社612520987樂學(xué)Python編程-做個游戲很簡單圖書69.80清華大學(xué)出版社712366901教學(xué)設(shè)計、實施的診斷與優(yōu)化圖書48.80電子工業(yè)出版社812325352Python程序設(shè)計圖書39.60高等教育出版社911537993實用工具軟件任務(wù)驅(qū)動式教程圖書29.80高等教育出版社1012482554Python數(shù)據(jù)分析基礎(chǔ)教程圖書35.50電子工業(yè)出版社1112728744財經(jīng)應(yīng)用文寫作圖書41.70人民郵電出版社序號ISBN作者版次開本出版日期19787115518002顏珍平,陳承歡4162019/11/129787115474100李錫輝,王櫻1162018/2/139787115511577鄭丹青1162020/3/149787115454614張曉景1162019/1/159787115512321佘友軍1162019/9/169787302519867王振世1162019/4/179787121341427陳承歡1162018/5/189787040493726黃銳軍1162018/3/199787040393293陳承歡2162014/8/1109787121339387王斌會1162017/2/1119787115473523陳承歡2162019【思考】這里查詢的商品數(shù)據(jù)、圖書數(shù)據(jù)是如何從后臺數(shù)據(jù)庫中獲取的?2.通過“高級搜索”方式搜索所需圖書啟動瀏覽器,在地址欄中輸入京東網(wǎng)上商城高級搜索的網(wǎng)址“https:///bookadv.html”,按【Enter】鍵,顯示“高級搜索”網(wǎng)頁,在中部的“書名”文本框中輸入“網(wǎng)頁設(shè)計與制作實戰(zhàn)”,在“作者”文本框中輸入“陳承歡”,在“出版社”文本框中輸入“人民郵電出版社”,搜索條件的設(shè)置如圖所示。搜索條件的設(shè)置單擊【搜索】按鈕,高級搜索的結(jié)果如圖所示。高級搜索的結(jié)果3.查看商品詳情在上圖所示的高級搜索結(jié)果中選擇京東自營的圖書《HTML5+CSS3網(wǎng)頁設(shè)計與制作實戰(zhàn)》,并單擊圖書圖片或圖書名稱,打開該圖書的詳情頁面,該圖書的“商品介紹”如圖所示。圖書《HTML5+CSS3網(wǎng)頁設(shè)計與制作實戰(zhàn)》詳情頁面中的“商品介紹”商品詳情頁面所顯示的圖書信息源自相同的數(shù)據(jù)源,即后臺數(shù)據(jù)庫的“圖書信息”數(shù)據(jù)表?!舅伎肌窟@里查詢的圖書詳細(xì)數(shù)據(jù)是如何從后臺數(shù)據(jù)庫中獲取的?這里所看到的搜索條件輸入頁面和查詢結(jié)果頁面等都屬于B/S模式的數(shù)據(jù)庫應(yīng)用程序的一部分。購物網(wǎng)站為用戶提供了友好界面,為用戶搜索所需商品提供了方便。搜索結(jié)果中包含了書名、價格、經(jīng)銷商等信息,該網(wǎng)頁顯示出來的這些數(shù)據(jù)源自哪里呢?又是如何得到的呢?應(yīng)用程序?qū)嶋H上只是一個數(shù)據(jù)處理者,它所處理的數(shù)據(jù)必然是從某個數(shù)據(jù)源中取得的,這個數(shù)據(jù)源就是數(shù)據(jù)庫。數(shù)據(jù)庫就像是一個數(shù)據(jù)倉庫,保存著數(shù)據(jù)庫應(yīng)用程序需要獲取的相關(guān)數(shù)據(jù),如每本圖書的圖書名稱、出版社、價格、國際標(biāo)準(zhǔn)書號(InternationalStandardBookNumber,ISBN)等,這些數(shù)據(jù)以數(shù)據(jù)表的形式存儲。這里查詢結(jié)果的數(shù)據(jù)源也源自后臺數(shù)據(jù)庫的“商品信息”數(shù)據(jù)表。【思考】高級搜索的圖書數(shù)據(jù)是如何從后臺數(shù)據(jù)庫中獲取的?4.實現(xiàn)用戶注冊在京東網(wǎng)上商城頂部單擊【免費注冊】超鏈接,打開“用戶注冊”頁面,選擇【個人用戶】選項卡,分別在“用戶名”“請設(shè)置密碼”“請確認(rèn)密碼”“驗證手機”“短信驗證碼”和“驗證碼”文本框中輸入合適的內(nèi)容,如圖所示?!坝脩糇浴表撁鎲螕簟玖⒓醋浴堪粹o,打開“注冊成功”頁面,這樣便在后臺數(shù)據(jù)庫的“用戶”數(shù)據(jù)表中新增了一條用戶記錄。【思考】注冊新用戶在后臺數(shù)據(jù)庫中是如何實現(xiàn)的?5.實現(xiàn)用戶登錄在京東網(wǎng)上商城頂部單擊【你好,請登錄】超鏈接,打開“用戶登錄”頁面,分別在“用戶名”和“密碼”文本框中輸入已成功注冊的用戶名和密碼,如圖所示。單擊【登錄】按鈕,登錄成功后,網(wǎng)頁頂部會顯示登錄用戶名稱。“用戶登錄”頁面【思考】這里的用戶登錄操作,在后臺數(shù)據(jù)庫的“用戶”數(shù)據(jù)表中是如何實現(xiàn)的?6.選購商品在商品瀏覽頁面中選中喜歡的商品后,單擊【加入購物車】按鈕,將所選商品添加到購物車中,已選購3本圖書的購物車商品列表如圖所示。購物車商品列表【思考】這些選購的圖書的信息如何從后臺數(shù)據(jù)庫的“圖書信息”數(shù)據(jù)表中獲?。坑秩绾翁砑拥健百徫镘嚒睌?shù)據(jù)表中?7.查看訂單中所訂購的商品信息打開京東網(wǎng)上商城的“訂單”頁面,可以查看訂單中所訂購的商品的全部相關(guān)信息,如圖所示,并且以規(guī)范的列表方式顯示了訂購商品的信息。訂單中所訂購的商品的全部相關(guān)信息【思考】訂單中訂購商品的相關(guān)信息源自哪里?8.查看訂單信息打開京東網(wǎng)上商城的“訂單”頁面,可以查看訂單信息,如圖所示。訂單信息【思考】這些訂單信息源自哪里?由此可見,數(shù)據(jù)庫不僅存放單個實體的信息,如商品類型、商品信息、圖書信息、用戶注冊信息等,還存放著它們之間的聯(lián)系數(shù)據(jù),如訂單信息中的數(shù)據(jù)。我們可以先通俗地給出一個數(shù)據(jù)庫的定義,即數(shù)據(jù)庫由若干個相互有聯(lián)系的數(shù)據(jù)表組成,如任務(wù)3-1的購物管理數(shù)據(jù)庫。數(shù)據(jù)表可以從不同的角度進行觀察,從橫向來看,表由表頭和若干行組成,表中的行也稱為記錄,表頭確定了數(shù)據(jù)表的結(jié)構(gòu);從縱向來看,表由若干列組成,每列有唯一的列名,如“商品信息”數(shù)據(jù)表,該表包含多列,列名分別為“序號”“商品編號”“商品名稱”“商品類型”“價格”和“品牌”,列也可以稱為字段或?qū)傩?。每一列有一定的取值范圍,也稱為域,如“商品類型”一列,其取值只能是商品類型的名稱,如數(shù)碼產(chǎn)品、家電產(chǎn)品、電腦產(chǎn)品等。假設(shè)有10種商品類型,那么“商品類型”的每個取值只能是這10種商品類型名稱之一。這里淺顯地解釋了與數(shù)據(jù)庫有關(guān)的術(shù)語。有了數(shù)據(jù)庫,就有了相互關(guān)聯(lián)的若干張數(shù)據(jù)表,數(shù)據(jù)就可以存入這些數(shù)據(jù)表中,以后數(shù)據(jù)庫應(yīng)用程序就能找到所需的數(shù)據(jù)了。數(shù)據(jù)庫應(yīng)用程序是如何從數(shù)據(jù)庫中取出所需的數(shù)據(jù)的呢?數(shù)據(jù)庫應(yīng)用程序通過一個名為數(shù)據(jù)庫管理系統(tǒng)的軟件來取出數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)是一個商品化的軟件,它管理著數(shù)據(jù)庫,使數(shù)據(jù)以記錄的形式存放在計算機中。例如,網(wǎng)上商城系統(tǒng)利用數(shù)據(jù)庫管理系統(tǒng)保存圖書信息,并提供按圖書名稱、作者、出版社、定價等多種搜索方式。網(wǎng)上商城系統(tǒng)利用數(shù)據(jù)庫管理系統(tǒng)管理商品數(shù)據(jù)、用戶數(shù)據(jù)、訂單數(shù)據(jù)等,這些數(shù)據(jù)組成了網(wǎng)上商城數(shù)據(jù)庫。可見,數(shù)據(jù)庫管理系統(tǒng)的主要任務(wù)是管理數(shù)據(jù)庫,并負(fù)責(zé)處理用戶的各種請求。以客戶選購商品為例,在選購商品時,客戶通過搜索查找所需的商品,網(wǎng)上商城系統(tǒng)將搜索條件轉(zhuǎn)換為數(shù)據(jù)庫管理系統(tǒng)能夠接收的查詢命令,將查詢命令傳遞給數(shù)據(jù)庫管理系統(tǒng),命令傳給數(shù)據(jù)庫管理系統(tǒng)后,數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé)從“圖書信息”數(shù)據(jù)表中找到對應(yīng)的圖書數(shù)據(jù),并將數(shù)據(jù)返回給網(wǎng)上商城系統(tǒng),在網(wǎng)頁中顯示出來。當(dāng)客戶找到一本需要購買的圖書,并單擊商品選購頁面中的【加入購物車】按鈕后,網(wǎng)上商城系統(tǒng)將要保存的數(shù)據(jù)轉(zhuǎn)換為插入命令,該命令傳遞給數(shù)據(jù)庫管理系統(tǒng)后,數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé)執(zhí)行命令,將選購的圖書數(shù)據(jù)保存到“選購商品”數(shù)據(jù)表中。通過以上分析,我們對數(shù)據(jù)庫應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)的工作過程有了一個初始認(rèn)識,其基本工作過程如下:用戶通過數(shù)據(jù)庫應(yīng)用系統(tǒng)從數(shù)據(jù)庫中取出數(shù)據(jù)時,首先輸入搜索條件,應(yīng)用程序?qū)⑺阉鳁l件轉(zhuǎn)換為查詢命令,然后將命令發(fā)給數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)根據(jù)收到的查詢命令從數(shù)據(jù)庫中取出數(shù)據(jù)返回給應(yīng)用程序,再由應(yīng)用程序以直觀易懂的格式顯示出查詢結(jié)果。用戶通過數(shù)據(jù)庫應(yīng)用系統(tǒng)向數(shù)據(jù)庫存儲數(shù)據(jù)時,首先在應(yīng)用程序的數(shù)據(jù)輸入界面輸入相應(yīng)的數(shù)據(jù),所需數(shù)據(jù)輸入完畢后,用戶向應(yīng)用程序發(fā)出存儲數(shù)據(jù)的命令,應(yīng)用程序?qū)⒃撁畎l(fā)送給數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)執(zhí)行存儲數(shù)據(jù)命令且將數(shù)據(jù)存儲到數(shù)據(jù)庫中。該工作過程示意圖如圖所示。數(shù)據(jù)庫應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)工作過程示意圖通常,一個完整的數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用程序、用戶和硬件組成。數(shù)據(jù)庫系統(tǒng)中只有數(shù)據(jù)庫管理系統(tǒng)才能直接訪問數(shù)據(jù)庫。MySQL是一種數(shù)據(jù)庫管理系統(tǒng),其最大優(yōu)點是支持跨平臺、源代碼開放、速度快、成本低,是目前非常流行的開放源代碼的小型數(shù)據(jù)管理系統(tǒng)。本課程將利用MySQL有效管理數(shù)據(jù)庫。3.2MySQL的數(shù)據(jù)類型及選用3.2.1MySQL數(shù)據(jù)類型與特點數(shù)據(jù)表由多個字段構(gòu)成,每一個字段指定不同的數(shù)據(jù)類型。指定了字段的數(shù)據(jù)類型之后,也就決定了向字段中插入的數(shù)據(jù)內(nèi)容。數(shù)據(jù)類型是對數(shù)據(jù)存儲方式的一種約定,它能夠規(guī)定數(shù)據(jù)存儲時所占空間的大小。MySQL數(shù)據(jù)庫使用不同的數(shù)據(jù)類型存儲數(shù)據(jù),數(shù)據(jù)類型主要根據(jù)數(shù)據(jù)值的內(nèi)容、大小、精度來確定。在MySQL中,數(shù)據(jù)類型主要分為數(shù)值類型、字符串類型、日期時間類型和特殊數(shù)據(jù)類型4種。1.?dāng)?shù)值類型所謂數(shù)值類型,就是存放數(shù)字型數(shù)據(jù)的約定,包括整數(shù)和小數(shù)。數(shù)值類型數(shù)據(jù)是指字面值具有數(shù)學(xué)含義,能直接參加數(shù)值運算(例如求和、求平均值等)的數(shù)據(jù),例如數(shù)量、單價、金額、比例等方面的數(shù)據(jù)。但是有些數(shù)據(jù)的字面也為數(shù)字,卻不具有數(shù)學(xué)含義,參加數(shù)值運算的結(jié)果沒有數(shù)學(xué)含義,例如商品編號、郵政編碼、電話號碼、圖書的ISBN、學(xué)號、身份證號、存折號碼等,這些數(shù)據(jù)的字面雖然是由數(shù)字組成,卻為字符串類型。(1)整數(shù)類型。整數(shù)類型主要用于存放整數(shù)數(shù)據(jù)。MySQL提供了多種整數(shù)類型,不同的數(shù)據(jù)類型提供了不同的取值范圍??梢源鎯Φ闹捣秶酱?,其所需要的存儲空間也會越大。其取值范圍、占用字節(jié)數(shù)和默認(rèn)顯示寬度如表所示。MySQL中的整數(shù)類型MySQL整數(shù)類型取值范圍占用字節(jié)數(shù)默認(rèn)顯示寬度有符號類型無符號類型tinyint-128~1270~255(28-1)1字節(jié)4smallint-32768~327670~65535(216-1)2字節(jié)6mediumint-8388608~83886070~16777215(224-1)3字節(jié)9int(integer)-2147483648~21474836470~4294967295(232-1)4字節(jié)11bigint-263~263-10~264-18字節(jié)20MySQL支持在整數(shù)類型關(guān)鍵字后面的括號內(nèi)指定整數(shù)值的顯示寬度,int(N)用于指定顯示寬度,即指定能夠顯示的數(shù)字個數(shù)為N。例如,假設(shè)聲明一個int類型的字段——numberint(4),該聲明指出,在number字段中的數(shù)據(jù)一般只顯示4位數(shù)字的寬度。這里需要注意的是,顯示寬度和數(shù)據(jù)類型的取值范圍是無關(guān)的。顯示寬度只是指明MySQL最大可能顯示的數(shù)字個數(shù),數(shù)值的位數(shù)小于指定的寬度時會由空格填充;如果插入了位數(shù)大于顯示寬度的值,只要該值不超過該類型整數(shù)的取值范圍,數(shù)值依然可以插入,而且能夠顯示出來。例如向number字段插入一個數(shù)值19999,當(dāng)使用Select語句查詢該字段的值時,MySQL顯示的將是完整的帶有5位數(shù)字的19999,而不是4位數(shù)字的值。其他整數(shù)類型也可以在定義表結(jié)構(gòu)時指定所需要的顯示寬度,如果不指定,則系統(tǒng)會為每一種類型指定默認(rèn)的寬度值。默認(rèn)顯示寬度與其有符號數(shù)最小值的寬度相同,從而能夠保證顯示每一種數(shù)據(jù)類型可以取到取值范圍內(nèi)的所有值。例如tinyint有符號數(shù)和無符號數(shù)的取值范圍分別為-128~127和0~255,由于負(fù)號占了一個數(shù)字位,因此tinyint默認(rèn)的顯示寬度為4。不同的整數(shù)類型有不同的取值范圍,并且需要不同的存儲空間。因此,應(yīng)該根據(jù)實際需要選擇最合適的類型,這樣有利于提高查詢的效率和節(jié)省存儲空間。(2)小數(shù)類型。MySQL中使用浮點數(shù)和定點數(shù)來表示小數(shù)。浮點類型有兩種:單精度浮點類型(float)和雙精度浮點類型(double)。定點類型只有一種:decimal。浮點類型和定點類型都可以使用(m,n)來表示,其中m表示總共的有效位數(shù),也稱為精度;n表示小數(shù)的位數(shù)。MySQL中的小數(shù)類型如表所示。MySQL中的小數(shù)類型MySQL小數(shù)類型占用字節(jié)數(shù)說明float(m,n)4字節(jié)單精度浮點型可以精確到小數(shù)點后7位double(m,n)8字節(jié)雙精度浮點型可以精確到小數(shù)點后15位decimal(m,n)m+2字節(jié)為定點小數(shù)類型,其最大有效位數(shù)為65位,可以精確到小數(shù)點后30位decimal不同于float和double,decimal實際是以字符串存放的,其存儲位數(shù)并不是固定不變的,而是由有效位數(shù)決定的,占用“有效位數(shù)+2”。float和double在不指定精度時,默認(rèn)會按照實際的精度(由計算機硬件和操作系統(tǒng)決定)存儲;decimal如不指定度精度,會按照默認(rèn)值(10,0)存儲。2.字符串類型字符串類型也是數(shù)據(jù)表的重要類型之一,主要用于存儲字符串或文本信息。MySQL支持兩類字符串?dāng)?shù)據(jù):文本字符串和二進制字符串。在MySQL數(shù)據(jù)庫中,常用的字符串類型主要包括char、varchar、binary、varbinary、text等。MySQL中的字符串類型如表所示。MySQL中的字符串類型MySQL字符串類型字符串長度說明char(n)最多255個字符用于聲明一個定長的數(shù)據(jù),n代表存儲的最大字符數(shù)varchar(n)最多65535個字符用于聲明一個變長的數(shù)據(jù),n代表存儲的最大字符數(shù)binary(n)最多255個字符用于聲明一個定長的二進制數(shù)據(jù),n代表存儲的最大字符數(shù)varbinary(n)最多65535個字符用于聲明一個變長的二進制數(shù)據(jù),n代表存儲的最大字符數(shù)tinytext最多255個字符用于聲明一個變長的數(shù)據(jù)text最多65535個字符用于聲明一個變長的數(shù)據(jù)mediumtext最多16777215個字符用于聲明一個變長的數(shù)據(jù)longtext最多4294967295個字符用于聲明一個變長的數(shù)據(jù)變長類型的字符串類型,例如varchar、text等,其存儲需求取決于值的實際長度,而不是取決于類型的最大可能長度。例如,一個varchar(9)字段能保存最大長度為9個字符的字符串,實際的存儲需求是字符串的長度再加上1字節(jié)以記錄字符串的長度。對于字符串'good',字符串長度是4而實際的存儲要求是5字節(jié)。3.日期時間類型在數(shù)據(jù)庫中經(jīng)常會存放一些日期時間的數(shù)據(jù),例如出生日期、出版日期等。日期和時間類型的數(shù)據(jù)也可以使用字符串類型存放,但為了使數(shù)據(jù)標(biāo)準(zhǔn)化,在數(shù)據(jù)庫中提供了專門存儲日期和時間的數(shù)據(jù)類型。在MySQL中,日期時間類型包括date、time、datetime、timestamp和year等。每一種日期時間類型都有合法的取值范圍,當(dāng)插入不合法的值時,系統(tǒng)會將“零”值插入字段中。MySQL中的日期時間類型如表所示。MySQL中的日期時間類型MySQL日期時間類型占用字節(jié)數(shù)使用說明year1字節(jié)存儲年份值,其格式是YYYY,范圍為1901至2155,例如'2021'date3字節(jié)存儲日期值,其格式是YYYY-MM-DD,例如'2021-12-2'time3字節(jié)存儲時間值,其格式是HH:MM:SS,例如'12:25:36'datetime8字節(jié)存儲日期時間值,其格式是YYYY-MM-DDHH:MM:SS,例如'2021-12-222:06:44'timestamp4字節(jié)顯示格式與datetime相同,顯示寬度固定為19個字符,即YYYY-MM-DDHH:MM:SS,但其取值范圍小于datetime的取值范圍若定義一個字段為timestamp,這個字段里的時間數(shù)據(jù)會隨其他字段修改的時候自動刷新,所以這個數(shù)據(jù)類型的字段可以自動存儲該記錄最后被修改的時間。在程序中給日期時間類型字段賦值時,可以使用字符串類型或者數(shù)值類型的數(shù)據(jù)插入,只要符合相應(yīng)類型的格式即可。4.特殊數(shù)據(jù)類型MySQL中除了上面列出的3種數(shù)據(jù)類型外,還有一些特殊的數(shù)據(jù)類型,例如Enum類型、Set類型、bit類型和blob類型等。(1)Enum類型。所謂Enum類型,就是指定數(shù)據(jù)只能取指定范圍內(nèi)的值,也稱枚舉類型。其語法格式如下:<字段名稱>Enum(<'值1'>,<'值2'>,<'值n'>)其中“字段名稱”指將要定義的字段,值n指枚舉列表中的第n個值。Enum類型的字段在取值時,只能在指定的枚舉列表中取,而且一次只能取一個。如果創(chuàng)建的成員中有空格,其尾部的空格將自動被刪除。例如:SexEnum('男','女')這里將性別列設(shè)置為Enum類型,那么,枚舉值可以設(shè)置為“男”“女”。在向數(shù)據(jù)表添加數(shù)據(jù)時,就只能添加“男”和“女”這兩個值。Enum類型使用Enum表示,在定義取值時,必須使用半角單引號把值引起來。在MySQL數(shù)據(jù)庫中存儲枚舉值時,并不是直接將值記入數(shù)據(jù)表中,而是記錄值的索引。值的索引是按值的順序生成的,并且從1開始編號,例如枚舉值“男”和“女”,其值索引為1、2。MySQL存儲的就是這個索引編號,Enum類型最多可以有65535個元素。在Enum類型中,索引值0代表的是錯誤的空字符串。(2)Set類型。Set類型也稱為集合類型,是一個字符串對象,可以有零個或多個值,Set字段最多可以有64個成員,其值為表創(chuàng)建時規(guī)定的一列值。其語法格式如下:Set(<'值1'>,<'值2'>,<'值n'>)例如:Set('春','夏','秋','冬')Set類型與Enum類型類似,都是在已知的值中取值,存儲的是值的索引編號,Set成員值的尾部空格將自動被刪除。不同的是,Set類型可以取已知值列表中任意組合的值。例如,在Set類型中列出的值是“春”、“夏”、“秋”和“冬”,那么可以取的值有多種組合。如果插入Set字段中的值有重復(fù),則MySQL自動刪除重復(fù)的值。插入Set字段的值的順序并不重要,MySQL會在存入數(shù)據(jù)表時,按照定義的順序顯示。如果插入了不正確的值,默認(rèn)情況下,MySQL將忽略這些值,并給出警告。(3)bit類型。bit類型主要用來定義一個指定位數(shù)的數(shù)據(jù),其取值范圍為1~64,所占用的字節(jié)數(shù)是根據(jù)它的位數(shù)決定的。(4)blob類型。blob類型是一個二進制大對象,用來存儲可變數(shù)量的二進制字符串。blob類型分為4種:tinyblob、blob、mediumblob和longblob。它們可容納的最大長度不同,分別為255個字符、65535個字符、16777215個字符、4294967295個字符。3.2.2MySQL數(shù)據(jù)類型的選擇MySQL提供了大量的數(shù)據(jù)類型。為了優(yōu)化存儲,提高數(shù)據(jù)庫性能,選用數(shù)據(jù)類型時應(yīng)使用最合適的類型。當(dāng)需要選擇數(shù)據(jù)類型時,在可以表示該字段值的所有類型中,應(yīng)當(dāng)使用占用存儲空間最少的數(shù)據(jù)類型。因為這樣不僅可以減少對存儲空間的占用,還可以在數(shù)據(jù)計算時減輕CPU的負(fù)載。
1.整數(shù)類型和浮點類型的選擇如果不需要表示小數(shù)部分,則使用整數(shù)類型;如果需要表示小數(shù)部分,則使用浮點類型。浮點類型對存入的數(shù)值會按字段定義的小數(shù)位進行四舍五入。浮點類型包括float和double,double類型精度比float類型要高。因此,如果要求存儲精度較高時,應(yīng)使用double類型;如果存儲精度要求較低時,則使用float類型。2.浮點類型和定點類型的選擇浮點類型(float和double)相對于定點類型decimal的優(yōu)勢是,在長度一定的情況下,浮點類型能比定點類型表示更大的數(shù)據(jù)范圍,其缺點是容易產(chǎn)生計算誤差。因此對于精確度要求比較高的情況,建議使用decimal。decimal在MySQL中是以字符串形式存儲的,用于存儲精度相對要求較高的數(shù)據(jù)(如貨幣、科學(xué)數(shù)據(jù)等)。兩個浮點數(shù)據(jù)進行減法或比較運算時容易出現(xiàn)問題,如果進行數(shù)值比較,最好使用decimal。3.日期類型和時間類型的選擇MySQL針對不同種類的日期和時間提供了很多種數(shù)據(jù)類型,例如year和time。如果只需要存儲年份,則使用year類型即可;如果只記錄時間,只需使用time類型即可。如果同時需要存儲日期和時間,則可以使用datetime或timestamp類型。由于timestamp類型的取值范圍小于datetime類型的取值范圍,因此存儲范圍較大的日期最好使用datetime類型。timestamp類型也有datetime類型不具備的屬性。默認(rèn)情況下,當(dāng)插入一條記錄但并沒有給timestamp類型字段指定具體的值時,MySQL會把timestamp字段設(shè)置為當(dāng)前的時間。因此當(dāng)需要插入記錄的同時插入當(dāng)前時間時,使用timestamp類型更方便。4.char類型和varchar類型的選擇char類型是固定長度,varchar類型是可變長度,varchar類型會根據(jù)具體的長度來使用存儲空間。另外,varchar類型需要用額外的1~2字節(jié)存儲字符串長度(當(dāng)字符串長度小于255時,用額外的1字節(jié)來記錄長度;當(dāng)字符串長度大于255時,用額外的2字節(jié)來記錄長度)。char類型可能會浪費一些存儲空間,varchar類型則是按實際長度存儲,比較節(jié)省存儲空間。例如char(255)和varchar(255),在存儲字符串"helloworld"時,char會用255字節(jié)的空間放那11個字符;而varchar就不會用255字節(jié),它先計算字符串長度為11,再加上一個記錄字符串長度的字節(jié),一共用12字節(jié)來存儲。這樣,使用varchar類型在存儲不確定長度的字符串時會大大減少對存儲空間的占用。對于char(n),如果存入字符數(shù)小于n,MySQL則會自動以空格補于其后,查詢之時會自動將插入數(shù)字尾部的空格去掉,所以char類型存儲的字符串末尾不能有空格。而varchar類型查詢時不會刪除尾部空格。char類型數(shù)據(jù)的檢索速度要比varchar類型快。char(n)是固定長度,例如,char(4)不管是存入幾個字符,都將占用4字節(jié)。varchar是占用“實際字符數(shù)+1”字節(jié)(n≤255)或“實際字符數(shù)+2”字節(jié)(n>255),所以varchar(4),存入3個字符將占用4字節(jié)。例如,對于字符串“abcd”,其長度為4,加上1字節(jié)用于存儲字符串的長度,存儲空間占用5字節(jié)。如果存儲的字符串長度較小,但在速度上有要求,可以使用char類型,反之則可以使用varchar類型。對于MyISAM存儲引擎,最好使用固定長度的char類型代替可變長度的varchar類型,這樣可以使整張數(shù)據(jù)表靜態(tài)化,從而使數(shù)據(jù)檢索速度更快,用空間換時間。對于InnoDB存儲引擎,優(yōu)先使用可變長度的varchar類型,因為InnoDB數(shù)據(jù)表的存儲格式不分固定長度和可變長度,因此使用char類型不一定比使用varchar類型更好。由于varchar類型按實際的長度存儲,所以對磁盤I/O和數(shù)據(jù)存儲總量比較友好。5.varchar類型和text類型的選擇varchar類型可以指定長度n,text類型則不能指定。存儲varchar類型數(shù)據(jù)占用“實際字符數(shù)+1”字節(jié)(n≤255)或“實際字符數(shù)+2”字節(jié)(n>255),存儲text類型數(shù)據(jù)占用“實際字符數(shù)+2”字節(jié)。text類型不能有默認(rèn)值。varchar類型的查詢速度快于text類型,因為varchar類型可直接創(chuàng)建索引,text類型創(chuàng)建索引要指定前多少個字符。當(dāng)保存或查詢text類型字段的值時,不會刪除尾部空格。6.Enum類型和Set類型的選擇Enum類型和Set類型的值都是以字符串形式出現(xiàn)的,但在數(shù)據(jù)表中存儲的是數(shù)值。Enum類型只能取單值,它的數(shù)據(jù)列表是一個枚舉集合,它的合法取值列表最多允許有65535個成員。因此,在需要從多個值中選取一個時,可以使用Enum類型。例如,性別字段適合定義為Enum類型,只能從“男”或“女”中取一個值。Set類型可取多值,它的合法取值列表最多允許有64個成員??兆址彩且粋€合法的Set值。在需要取多個值的時候,適合使用Set類型。例如,要存儲一個人的興趣愛好,最好使用Set類型。7.blob類型和text類型的選擇blob類型存儲的是二進制字符串,text類型存儲的是非二進制字符串,兩者均可存放大容量的信息。blob類型主要存儲圖片、音頻信息等,而text類型只能存儲純文本內(nèi)容。3.2.3MySQL數(shù)據(jù)類型的屬性MySQL數(shù)據(jù)類型的屬性及其含義如表所示。MySQL數(shù)據(jù)類型的屬性及其含義MySQL數(shù)據(jù)類型的屬性含義Null字段可包含Null,Null通常表示未知、不可用或?qū)⒃谝院筇砑拥臄?shù)據(jù)。如果一個字段允許為Null,則向數(shù)據(jù)表中輸入記錄值時可以不為該字段給出具體值NotNull字段不允許包含Null,即向數(shù)據(jù)表中輸入記錄值時必須給出該字段的具體值Default默認(rèn)值PrimaryKey主鍵Auto_Increment自動遞增,適用于整數(shù)類型。在MySQL中設(shè)置為Auto_Increment約束的字段初始值是1,每新增一條記錄,字段值自動加1。一張數(shù)據(jù)表只能有一個字段使用Auto_Increment約束Unsigned無符號characterSet<字符集名>指定一個字符集【任務(wù)3-2】合理選擇char類型和varchar類型【任務(wù)描述】MySQL中,char類型和varchar類型是兩種常用的字符串類型,char類型是固定長度,varchar類型是可變長度。應(yīng)針對具體情況進行合理選擇,發(fā)揮這兩種數(shù)據(jù)類型各自的優(yōu)勢,摒棄其劣勢?!救蝿?wù)實施】(1)從字符長度的角度考慮。長度較短的字段,使用char類型,例如門牌號:101、201、301……固定長度的字段,使用char類型,例如身份證號、手機號、郵政編碼等。因為這些數(shù)據(jù)都是固定長度,varchar類型根據(jù)長度動態(tài)存儲的特性就沒作用了,而且還要占1字節(jié)來存儲字符串長度??紤]字段的長度是否相近,如果某個字段其長度雖然比較長,但是其長度總是近似的,例如一般在90個到100個字符之間,甚至是相同的長度,此時比較適合采用char類型。(2)從碎片角度考慮。使用char類型時,由于存儲空間都是一次性分配的,因此從這個角度來講,不存在碎片的困擾。而使用varchar類型時,因為存儲的長度是可變的,所以當(dāng)數(shù)據(jù)長度在更改前后不一致時,就不可避免地會出現(xiàn)碎片的問題。故使用varchar類型時,數(shù)據(jù)庫管理員要時不時地對碎片進行整理,例如執(zhí)行數(shù)據(jù)表導(dǎo)出、導(dǎo)入作業(yè)來消除碎片。(3)即使使用varchar類型,也不能夠太過于慷慨。雖然varchar類型可以自動根據(jù)長度調(diào)整存儲空間,但是varchar(100)和varchar(255)還是有區(qū)別的:假設(shè)它們都存儲了90個字符的數(shù)據(jù),那么它們在磁盤上的存儲空間是相同的(硬盤上的存儲空間是根據(jù)實際字符長度來分配的);但對于內(nèi)存來說,則不是這樣的,內(nèi)存是使用varchar類型中定義的長度(這里為100或255)的內(nèi)存塊來保存值的。所以如果某些字段會涉及文件排序或者基于磁盤的臨時表,分配varchar類型的長度時仍然不能過于慷慨,需要評估實際需要的長度,然后設(shè)置一個合適的長度,不能隨意設(shè)置長度。3.3分析并確定數(shù)據(jù)表的結(jié)構(gòu)【任務(wù)3-3】分析并確定多張數(shù)據(jù)表的結(jié)構(gòu)【任務(wù)描述】(1)分析以下各張表中數(shù)據(jù)的字面特征,區(qū)分固定長度的字符串?dāng)?shù)據(jù)、可變長度的字符串?dāng)?shù)據(jù)、整數(shù)數(shù)值數(shù)據(jù)、固定精度和小數(shù)位的數(shù)值數(shù)據(jù)和日期時間數(shù)據(jù),并分類列表加以說明?!吧唐奉愋汀睌?shù)據(jù)表的示例數(shù)據(jù)如表所示?!吧唐奉愋汀睌?shù)據(jù)表的示例數(shù)據(jù)類型編號類型名稱父類編號類型編號類型名稱父類編號類型編號類型名稱父類編號t01家用電器t00t03電腦產(chǎn)品t00t0304游戲設(shè)備t03t0101電視機t01t0301電腦整機t03t0305網(wǎng)絡(luò)產(chǎn)品t03t0102空調(diào)t01t030101筆記本t0301t04辦公用品t00t0103洗衣機t01t030102游戲本t0301t05化妝洗護t00t0104冰箱t01t030103平板電腦t0301t06服飾鞋帽t00t0105廚衛(wèi)電器t01t030104臺式機t0301t07皮具箱包t00t0106生活電器t01t0302電腦配件t03t08汽車用品t00t02數(shù)碼產(chǎn)品t00t030201顯示器t0302t09母嬰玩具t00t0201通信設(shè)備t02t030202CPUt0302t10食品飲料t00t020101手機t0201t030203主板t0302t11醫(yī)藥保健t00t020102手機配件t0201t030204顯卡t0302t12禮品鮮花t00t020103對講機t0201t030205硬盤t0302t13圖書音像t00t020104固定電話t0201t030206內(nèi)存t0302t1301圖書t13t0202攝影機t02t0303外設(shè)產(chǎn)品t03t1302音像t13t0203攝像機t02t030301鼠標(biāo)t0303t1303電子書刊t13t0204數(shù)碼配件t02t030302鍵盤t0303t14家裝廚具t00t0205影音娛樂t02t030303U盤t0303t15珠寶首飾t00t0206智能設(shè)備t02t030304移動硬盤t0303t16體育用品t00“商品信息”數(shù)據(jù)表的示例數(shù)據(jù)如所示?!吧唐沸畔ⅰ睌?shù)據(jù)表的示例數(shù)據(jù)序號商品編號商品名稱商品類型價格(元)品牌1100009177424華為Mate305G手機4499.00華為(HUAWEI)2100004559325華為榮耀20S手機1899.00華為(HUAWEI)3100006232551OPPOReno3雙模5G手機2999.00OPPO4100011351676小米10Pro雙模5G手機4999.00小米(MI)5100005724680戴爾G3筆記本電腦6099.00戴爾(DELL)6100003688077聯(lián)想拯救者Y7000P筆記本電腦8499.00聯(lián)想(Lenovo)7100005603836惠普暗影精靈GTX筆記本電腦6299.00惠普(HP)8100005638619華為榮耀MagicMallDB筆記本電腦3599.00華為(HUAWEI)9100004541926TCL65T680電視機4199.00TCL10100000615806長虹55D7P電視機2699.00長虹(CHANGHONG)11100004372958創(chuàng)維50V20電視機1599.00創(chuàng)維(Skyworth)12100013232838海爾LU58J51電視機3999.00海爾(Haier)13100005624340海信HZ55E5D電視機3299.00海信(Hisense)14100014512520格力KFR-72LW/NhAb3BG空調(diào)7998.00格力(GREE)15100013973228美的KFR-35GW/N8MJA3空調(diào)1999.00美的(Midea)“圖書信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示,表中沒有包含“封面圖書”和“圖書簡介”兩列數(shù)據(jù)。表3-4“圖書信息”數(shù)據(jù)表的示例數(shù)據(jù)序號商品編號圖書名稱商品類型價格(元)出版社112631631HTML5+CSS3網(wǎng)頁設(shè)計與制作實戰(zhàn)圖書47.10人民郵電出版社212303883MySQL數(shù)據(jù)庫技術(shù)與項目應(yīng)用教程圖書35.50人民郵電出版社312634931Python數(shù)據(jù)分析基礎(chǔ)教程圖書39.30人民郵電出版社412528944PPT設(shè)計從入門到精通圖書79.00人民郵電出版社512563157給Python點顏色青少年學(xué)編程圖書59.80人民郵電出版社612520987樂學(xué)Python編程-做個游戲很簡單圖書69.80清華大學(xué)出版社712366901教學(xué)設(shè)計、實施的診斷與優(yōu)化圖書48.80電子工業(yè)出版社812325352Python程序設(shè)計圖書39.60高等教育出版社911537993實用工具軟件任務(wù)驅(qū)動式教程圖書29.80高等教育出版社1012482554Python數(shù)據(jù)分析基礎(chǔ)教程圖書35.50電子工業(yè)出版社1112728744財經(jīng)應(yīng)用文寫作圖書41.70人民郵電出版社序號ISBN作者版次開本出版日期19787115518002顏珍平,陳承歡4162019/11/129787115474100李錫輝,王櫻1162018/2/139787115511577鄭丹青1162020/3/149787115454614張曉景1162019/1/159787115512321佘友軍1162019/9/169787302519867王振世1162019/4/179787121341427陳承歡1162018/5/189787040493726黃銳軍1162018/3/199787040393293陳承歡2162014/8/1109787121339387王斌會1162017/2/1119787115473523陳承歡2162019“出版社信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示?!俺霭嫔缧畔ⅰ睌?shù)據(jù)表的示例數(shù)據(jù)出版社ID出版社名稱出版社簡稱出版社地址郵政編碼1人民郵電出版社人郵北京市崇文區(qū)夕照寺街14號1000612高等教育出版社高教北京西城區(qū)德外大街4號1001203清華大學(xué)出版社清華北京清華大學(xué)學(xué)研大廈1000844電子工業(yè)出版社電子北京市海淀區(qū)萬壽路173信箱1000365機械工業(yè)出版社機工北京市西城區(qū)百萬莊大街22號100037“用戶注冊信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示?!坝脩糇孕畔ⅰ睌?shù)據(jù)表的示例數(shù)據(jù)用戶ID用戶編號用戶名稱密碼權(quán)限等級手機號碼用戶類型1u00001肖海雪123456人用戶2u00002李波興123456人用戶3u00003肖娟888人用戶4u00004鐘耀剛666人用戶5u00005李玉強123人用戶6u00006苑俊華456人用戶“客戶信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示。
“客戶信息”數(shù)據(jù)表的示例數(shù)據(jù)客戶ID客戶姓名地址聯(lián)系電話郵政編碼1蔣鵬飛湖南瀏陽長沙生物醫(yī)藥產(chǎn)業(yè)基地832850014103112譚琳湖南郴州蘇仙區(qū)高期貝爾工業(yè)園826666664130003趙夢仙湖南長沙經(jīng)濟技術(shù)開發(fā)區(qū)東三路5號849328564101004彭運澤長沙經(jīng)濟技術(shù)開發(fā)區(qū)賀龍體校路27號582952154111005高首湖南省長沙市青竹湖大道399號882390604101526文云益陽高新區(qū)迎賓西路822692264130007陳芳長沙市芙蓉區(qū)嘉雨路187號822822004100018廖時才株洲市天元區(qū)黃河南路199號22837219412007“訂單信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示。“訂單信息”數(shù)據(jù)表的示例數(shù)據(jù)序號訂單編號提交訂單時間訂單完成時間送貨方式客戶姓名收貨人11041173769962019-10-0308:54:432019-10-0623:40:10京東快遞蔣鵬飛尹燦榮21325776057182020-10-0510:23:062020-10-0513:39:21京東快遞譚琳崔英道31121481455802020-02-1609:04:292020-02-2011:11:57上門自提趙夢仙金元41121407138892020-02-1609:04:292020-02-2011:11:57京東快遞彭運澤肖娟51325776057082020-10-0212:31:182020-10-0411:52:25京東快遞鐘耀剛鐘耀剛61101293918982020/2/2015:29:582020/2/2518:21:05上門自提陳芳陳芳71277701705892020-10-0811:25:162020-10-1215:12:28京東快遞高首高首81277685591242020-10-0808:23:542020-10-1209:21:10京東快遞文云文云91277691195162020-10-1815:28:182020-10-2210:11:26普通快遞廖時才廖時才序號付款方式商品總額(元)運費(元)優(yōu)惠小計(元)應(yīng)付總額(元)訂單狀態(tài)1貨到付款233.000.0040.00193.00已完成2貨到付款100.300.000.00100.30已完成3在線支付45.006.000.0051.00已完成4貨到付款122.900.000.00122.90已完成5在線支付222.300.000.00222.30已完成6貨到付款321.500.0080.00241.50已取消7在線支付3999.000.00200.003799.00已完成8貨到付款4499.000.0030.004469.00已完成9貨到付款8499.000.000.008499.00已完成“訂購商品”數(shù)據(jù)表的示例數(shù)據(jù)如表所示。“訂購商品”數(shù)據(jù)表的示例數(shù)據(jù)序號訂單編號商品編號購買數(shù)量(件)優(yōu)惠價格(元)優(yōu)惠金額(元)110411737699612631631137.70213257760571812303883128.40313257760571812634931131.40411214814558012528944263.210511214814558012563157153.80611214814558012520987462.820711214071388912366901143.90811214071388912325352135.60911214071388911537993128.301011214071388912482554133.701113257760570812728744339.61012127770170589100009177424144990131277685591241000036880771849901412776911951610001323283813999200(2)熟知個字段的數(shù)據(jù)類型,然后設(shè)計“商品類型”“商品信息”“圖書信息”“出版社信息”“用戶注冊信息”“客戶信息”“訂單信息”和“訂購商品”等數(shù)據(jù)表的結(jié)構(gòu),包括確定字段名、數(shù)據(jù)類型、長度和是否允許包含Null。【任務(wù)實施】1.分析數(shù)據(jù)的字面特征和區(qū)分?jǐn)?shù)據(jù)類型分析各表中數(shù)據(jù)的字面特征,按固定長度的字符串?dāng)?shù)據(jù)、可變長度的字符串?dāng)?shù)據(jù)、整數(shù)數(shù)值數(shù)據(jù)、固定精度和小數(shù)位的數(shù)值數(shù)據(jù)和日期時間數(shù)據(jù)對這些數(shù)據(jù)進行分類,如表所示。對各表中的數(shù)據(jù)進行分類數(shù)據(jù)類型數(shù)據(jù)名稱字符串固定長度商品編號、ISBN、郵政編碼、用戶編號、權(quán)限等級、訂單編號、付款方式、送貨方式、訂單狀態(tài)、聯(lián)系電話、手機號碼、出版社簡稱可變長度類型編號、類型名稱、父類編號、商品名稱、商品類型、品牌、圖書名稱、作者、出版社、出版社名稱、出版社地址、用戶名稱、客戶姓名、收貨人、地址、密碼數(shù)值整數(shù)版次、開本、購買數(shù)量、出版社ID、用戶ID、客戶ID固定精度和小數(shù)位價格、優(yōu)惠價格、優(yōu)惠小計、商品總額、運費、優(yōu)惠金額、應(yīng)付總額日期時間數(shù)據(jù)出版日期、提交訂單時間、訂單完成時間2.初步確定字段的數(shù)據(jù)類型(1)不同的數(shù)據(jù)類型有不同的用途,例如日期時間類型用于存儲日期時間類數(shù)據(jù);數(shù)值類型用于存儲數(shù)值類數(shù)據(jù),但商品編號、ISBN、聯(lián)系電話、郵政編碼、用戶編號等雖然其字面全為數(shù)字,但并不是具有數(shù)學(xué)含義的數(shù)值,定義為字符串類型更合適;出版社ID、用戶ID、客戶ID將定義為自動生成編號的標(biāo)識列,其數(shù)據(jù)類型應(yīng)定義為數(shù)值類型。(2)char(n)數(shù)據(jù)類型是固定長度。如果定義一個字段為20個字符長度的char類型,則該字段存儲的數(shù)據(jù)長度應(yīng)為20個字符。當(dāng)輸入的字符串的長度小于定義的字符數(shù)n時,剩余的長度將被空格填滿。只有當(dāng)列中的數(shù)據(jù)是固定長度時(例如郵政編碼、電話號碼、銀行賬號等)時才使用這種數(shù)據(jù)類型。當(dāng)用戶輸入的字符串的長度大于定義的字符數(shù)n時,MySQL自動截取長度為n的字符串。例如性別字段定義為char(1),這說明該列的數(shù)據(jù)長度為1,只允許輸入1個字符(例如“男”或“女”)。(3)varchar(n)數(shù)據(jù)類型是可變長度,每一條記錄允許出現(xiàn)不同的字符數(shù),最大字符數(shù)為定義的最大長度,數(shù)據(jù)的實際長度為輸入字符串的實際長度,而不一定是n。例如一個列定義為varchar(50),這說明該列中的數(shù)據(jù)最大的長度為49個字符,即允許輸入49個字符。然而,如果列中只存儲了字符長度為3的字符串,則只會使用3個字符的存儲空間。這種數(shù)據(jù)類型適合數(shù)據(jù)長度不固定的情形,例如商品名稱、姓名、地址等。3.設(shè)計數(shù)據(jù)表的結(jié)構(gòu)(1)“商品類型”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示?!吧唐奉愋汀睌?shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null類型編號varchar9否類型名稱varchar10否父類編號varchar7否(2)“商品信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示?!吧唐沸畔ⅰ睌?shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null商品編號varchar12否商品名稱varchar100否商品類型varchar9否價格decimal8,2否品牌varchar15是(3)“出版社信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示。“出版社信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null出版社IDint否出版社名稱varchar16否出版社簡稱varchar6是出版社地址varchar50是郵政編碼char6是(4)“圖書信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示?!皥D書信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null商品編號varchar12否圖書名稱varchar100否商品類型varchar9否價格decimal8,2否出版社varchar16否ISBNvarchar20否作者varchar30否版次smallint否出版日期date是封面圖片varchar50是圖書簡介text是(5)“客戶信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示?!翱蛻粜畔ⅰ睌?shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null客戶IDint否客戶姓名varchar20否地址varchar50是聯(lián)系電話varchar20否郵政編碼char6是(6)“訂單信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示?!坝唵涡畔ⅰ睌?shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null訂單編號char12否提交訂單時間datatime否訂單完成時間datatime否送貨方式varchar10否客戶姓名varchar20否收貨人varchar20否付款方式varchar8否商品總額decimal10,2否運費decimal8,2否優(yōu)惠小計decimal10,2否應(yīng)付總額decimal10,2否訂單狀態(tài)varchar6是(7)“訂購商品”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表所示?!坝嗁徤唐贰睌?shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)字段名稱數(shù)據(jù)類型字段長度是否允許包含Null訂單編號char12否商品編號varchar12否購買數(shù)量smallint否優(yōu)惠價格decimal8,2否優(yōu)惠金額decimal10,2否3.4創(chuàng)建數(shù)據(jù)表創(chuàng)建完數(shù)據(jù)庫之后,接下來就要在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表?!救蝿?wù)3-4】使用CreateTable語句創(chuàng)建“用戶表”數(shù)據(jù)表隸屬數(shù)據(jù)庫,在創(chuàng)建數(shù)據(jù)表之前,應(yīng)使用語句“Use<數(shù)據(jù)庫名>”指定操作是在哪個數(shù)據(jù)庫中進行。如果沒有選擇數(shù)據(jù)庫,MySQL則會拋出“Nodatabaseselected”提示信息。創(chuàng)建數(shù)據(jù)表的語句為CreateTable,其基本語法規(guī)則如下:CreateTable[IfNotExists]<數(shù)據(jù)表名稱>(<字段名稱1><數(shù)據(jù)類型>[<列級別約束條件>][<默認(rèn)值>],<字段名稱2><數(shù)據(jù)類型>[<列級別約束條件>][<默認(rèn)值>],…[<表級別約束條件>]);【任務(wù)描述】在MallDB數(shù)據(jù)庫中創(chuàng)建一個名為“用戶表”的數(shù)據(jù)表,用于存儲注冊用戶信息,表結(jié)構(gòu)如表所示。“用戶表”的表結(jié)構(gòu)序號字段名數(shù)據(jù)類型長度是否允許為空備注1IDint否用戶ID2UserNumbervarchar10是用戶編號3Namevarchar30是姓名4UserPasswordvarchar15是密碼【任務(wù)實施】(1)打開Windows操作系統(tǒng)的【命令提示符】窗口,登錄MySQL數(shù)據(jù)庫服務(wù)器。(2)選擇需要創(chuàng)建表的數(shù)據(jù)庫“MallDB”。在命令提示符“mysql>”后面輸入選擇數(shù)據(jù)庫的語句:UseMallDB;(3)輸入創(chuàng)建數(shù)據(jù)表的語句。在命令提示符“mysql>”后面輸入創(chuàng)建數(shù)據(jù)表的語句:CreateTable用戶表(ID int NotNull,UserNumber varchar(10) Null,Name varchar(30) Null,UserPasswordvarchar(15) Null);按【Enter】鍵后,執(zhí)行創(chuàng)建數(shù)據(jù)表的語句,若顯示“QueryOK,0rowsaffected(0.09sec)”提示信息,表示數(shù)據(jù)表創(chuàng)建成功。(4)查看數(shù)據(jù)表。在命令提示符“mysql>”后面輸入語句:ShowTables;按【Enter】鍵后,從顯示相關(guān)信息可以看出數(shù)據(jù)表創(chuàng)建成功,創(chuàng)建數(shù)據(jù)表過程輸入的語句及執(zhí)行結(jié)果如圖所示。創(chuàng)建數(shù)據(jù)表過程輸入的語句及執(zhí)行結(jié)果【任務(wù)3-5】使用Navicat圖形管理工具創(chuàng)建多張數(shù)據(jù)表【任務(wù)描述】(1)在NavicatforMySQL圖形化環(huán)境中創(chuàng)建“商品類型”“商品信息”“圖書信息”“出版社信息”“用戶注冊信息”“客戶信息”“訂單信息”和“訂購商品”等數(shù)據(jù)表,這些數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表3-2至表3-4和表3-10至表3-14所示,這里不考慮數(shù)據(jù)庫中各張數(shù)據(jù)表數(shù)據(jù)的完整性問題?!吧唐奉愋汀睌?shù)據(jù)表只添加2個字段,“父類編號”暫不添加?!皥D書信息”數(shù)據(jù)表暫不添加以下3個字段:“版次”“封面圖片”和“圖書簡介”。(2)在“商品類型”數(shù)據(jù)表增加一個字段“父類編號”。(3)在“圖書信息”數(shù)據(jù)表的“作者”與“出版日期”兩個字段之間插入一個字段“版次”,在“出版日期”字段后面添加兩個字段“封面圖片”“圖書簡介”?!救蝿?wù)實施】1.利用NavicatforMySQL的【表設(shè)計器】創(chuàng)建數(shù)據(jù)表這里以創(chuàng)建“商品類型”數(shù)據(jù)表為例,說明在NavicatforMySQL中創(chuàng)建數(shù)據(jù)表的方法。(1)啟動圖形管理工具NavicatforMySQL。在NavicatforMySQL圖形化環(huán)境中創(chuàng)建“商品類型”“商品信息”“圖書信息”“出版社”“客戶信息”“訂單信息”“訂購商品”等數(shù)據(jù)表,這些數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如表3-2至表3-14所示,這里不考慮數(shù)據(jù)庫中各個數(shù)據(jù)表數(shù)據(jù)的完整性問題?!吧唐奉愋汀睌?shù)據(jù)表只添加2個字段,“父類編號”暫不添加?!皥D書信息”數(shù)據(jù)表暫不添加以下3個字段:“版次”“封面圖片”“圖書簡介”。(2)打開已有連接“MallConn”。在【NavicatforMySQL】窗口的主菜單【文件】中選擇【打開連接】命令打開“MallConn”連接。(3)打開數(shù)據(jù)庫“MallDB”。在左側(cè)【數(shù)據(jù)庫對象】窗格數(shù)據(jù)庫列表中雙擊“MallDB”,打開該數(shù)據(jù)庫。(4)打開【表設(shè)計器】。在“數(shù)據(jù)庫對象”窗格中展開“MallDB”文件夾,右擊節(jié)點“表”,在彈出的快捷菜單中選擇【新建表】命令,如圖所示。在快捷菜單中選擇【新建表】命令打開【表設(shè)計器】,系統(tǒng)自動創(chuàng)建一張默認(rèn)名為“無標(biāo)題”的表,【表設(shè)計器】的初始狀態(tài)如圖所示。【表設(shè)計器】中的“名”就是數(shù)據(jù)表的字段名稱,“類型”是字段值的類型,“長度”用于設(shè)置字段值數(shù)據(jù)的長度,“小數(shù)點”用于設(shè)置數(shù)值類數(shù)據(jù)的小數(shù)位數(shù),“不是null”用于設(shè)置該字段中的值是否可以為空。【表設(shè)計器】的初始狀態(tài)(5)定義數(shù)據(jù)表的字段結(jié)構(gòu)。首先將光標(biāo)置于【表設(shè)計器】的“名”文本框中并輸入字段名“類型編號”,然后在“類型”下拉列表中選擇數(shù)據(jù)類型“varchar”,接著在“長度”文本框中輸入“9”,勾選“不是null”對應(yīng)的復(fù)選框,在【表設(shè)計器】中定義字段結(jié)構(gòu),如圖所示。在【表設(shè)計器】中定義字段結(jié)構(gòu)在【表設(shè)計器】的工具欄中單擊【添加字段】按鈕,添加一個字段,然后依次在“名”文本框中輸入“類型名稱”,在“類型”下拉列表中選擇“varchar”,在“長度”文本框中輸入“10”,勾選“不是null”對應(yīng)的復(fù)選框,完整的表結(jié)構(gòu)如圖所示。完整的表結(jié)構(gòu)(6)保存數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)。在【表設(shè)計器】工具欄中的單擊【保存】按鈕保存數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)。在彈出的【表名】對話框中輸入數(shù)據(jù)表的名稱“商品類型”,如圖所示。在【表名】對話框中輸入數(shù)據(jù)表名稱然后單擊【確定】按鈕關(guān)閉該對話框,成功創(chuàng)建“商品類型”數(shù)據(jù)表,在“MallDB”數(shù)據(jù)庫的表列表中可看到新創(chuàng)建的“商品類型”數(shù)據(jù)表,如圖所示。“MallDB”數(shù)據(jù)庫的表列表中新創(chuàng)建的“商品類型”數(shù)據(jù)表以同樣的方法創(chuàng)建“商品信息”“圖書信息”“出版社信息”“客戶信息”“訂單信息”和“訂購商品”數(shù)據(jù)表,詳細(xì)過程這里不再贅述。在“MallDB”數(shù)據(jù)庫的表列表中添加多張數(shù)據(jù)表的結(jié)果如圖所示。在“MallDB”數(shù)據(jù)庫的表列表中添加多張數(shù)據(jù)表2.在“商品類型”數(shù)據(jù)表中添加字段在【NavicatforMySQL】窗口左側(cè)【數(shù)據(jù)庫對象】窗格中展開“MallDB”文件夾,右擊數(shù)據(jù)表名稱“商品類型”,在彈出的快捷菜單中選擇【設(shè)計表】命令,或者在【對象】的工具欄中單擊【設(shè)計表】按鈕,打開【表設(shè)計器】。在工具欄中單擊【添加字段】按鈕可以在已有字段后面添加一個新的字段。在新字段位置的“名”文本框中輸入“父類編號”,在“類型”下拉列表中選擇“varchar”,在“長度”文本框中輸入“7”,勾選“不是null”對應(yīng)的復(fù)選框。數(shù)據(jù)表的結(jié)構(gòu)修改完成后,單擊【表設(shè)計器】工具欄中的【保存】按鈕,保存對結(jié)構(gòu)數(shù)據(jù)的修改。3.在“圖書信息”數(shù)據(jù)表中添加字段在【NavicatforMySQL】窗口左側(cè)【數(shù)據(jù)庫對象】窗格中展開“MallDB”文件夾,單擊數(shù)據(jù)表名稱“圖書信息”,在右側(cè)【對象】窗格中選擇【設(shè)計表】命令,打開【表設(shè)計器】。在字段列表中選擇“出版日期”字段,然后在工具欄中單擊【插入字段】按鈕則可以在選中字段前面添加一個新的字段。在新字段位置的“名”文本框中輸入“版次”,在“類型”下拉列表中選擇“smallint”,勾選“不是null”對應(yīng)的復(fù)選框,如圖所示。在“圖書信息”數(shù)據(jù)表中插入一個新字段“版次”在“圖書信息”數(shù)據(jù)表中插入新字段后,單擊【表設(shè)計器】工具欄中的【保存】按鈕,保存對結(jié)構(gòu)數(shù)據(jù)的修改。接著,繼續(xù)在“圖書信息”數(shù)據(jù)表“出版日期”字段后面添加兩個新字段“封面圖片”和“圖書簡介”,添加新字段后的“圖書信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)如圖所示。新字段添加完成后,單擊【表設(shè)計器】工具欄中的【保存】按鈕,保存對結(jié)構(gòu)數(shù)據(jù)的修改。添加新字段后的“圖書信息”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)【任務(wù)3-6】通過復(fù)制現(xiàn)有數(shù)據(jù)表的方式創(chuàng)建新的數(shù)據(jù)表【任務(wù)描述】在MySQL中,除了可以創(chuàng)建全新的數(shù)據(jù)表外,也可以通過復(fù)制數(shù)據(jù)庫中已有表的結(jié)構(gòu)和數(shù)據(jù),創(chuàng)建數(shù)據(jù)表。(1)在【命令提示符】窗口中使用復(fù)制命令的方式創(chuàng)建一張名為“訂單信息2”的數(shù)據(jù)表,該數(shù)據(jù)表的結(jié)構(gòu)源自【任務(wù)3-5】創(chuàng)建的“訂單信息”表。(2)在【命令提示符】窗口中使用復(fù)制命令的方式創(chuàng)建一張名為“user”的數(shù)據(jù)表,該數(shù)據(jù)表的結(jié)構(gòu)源自【任務(wù)3-4】創(chuàng)建的“用戶表”。(3)在Navicat圖形管理工具中使用【復(fù)制表】命令創(chuàng)建一張名為“圖書信息2”的數(shù)據(jù)表,該數(shù)據(jù)表的結(jié)構(gòu)源自【任務(wù)3-5】創(chuàng)建的“圖書信息”表。【任務(wù)實施】1.在【命令提示符】窗口中使用復(fù)制命令方式創(chuàng)建一張名為“訂單信息2”的數(shù)據(jù)表在【命令提示符】窗口中,使用“UseMallDB;”語句選擇當(dāng)前數(shù)據(jù)庫為“MallDB”。通過復(fù)制現(xiàn)有的數(shù)據(jù)表“訂單信息”創(chuàng)建另一張新數(shù)據(jù)表“訂單信息2”對應(yīng)的SQL語句如下:CreateTable訂單信息2Like訂單信息;數(shù)據(jù)表“訂單信息2”創(chuàng)建完成時,【命令提示符】窗口會顯示“QueryOK,0rowsaffected(0.09sec)”提示信息。如果希望結(jié)構(gòu)和內(nèi)容都能被復(fù)制,則可以使用以下SQL語句:CreateTable訂單信息2As(Select*From訂單信息);2.在【命令提示符】窗口中使用復(fù)制命令的方式創(chuàng)建一張名為“user”的數(shù)據(jù)表通過復(fù)制現(xiàn)有的數(shù)據(jù)表“用戶表”創(chuàng)建另一張新數(shù)據(jù)表“user”對應(yīng)的SQL語句如下:CreateTableuserLike用戶表;數(shù)據(jù)表“user”創(chuàng)建完成時,【命令提示符】窗口會顯示“QueryOK,0rowsaffected(0.07sec)”提示信息。3.在Navicat圖形管理工具中使用【復(fù)制表】命令創(chuàng)建一張名為“圖書信息2”的數(shù)據(jù)表在【數(shù)據(jù)庫對象】窗格中依次展開“MallDB”→“表”,然后右擊數(shù)據(jù)表“圖書信息”,在彈出的快捷菜單中用鼠標(biāo)指針指向【復(fù)制表】子菜單,然后在其級聯(lián)菜單中選擇【僅結(jié)構(gòu)】命令,如圖所示。由此創(chuàng)建一張新的數(shù)據(jù)表“圖書信息_copy1”。在【復(fù)制表】的級聯(lián)菜單中選擇【僅結(jié)構(gòu)】命令右擊新創(chuàng)建的數(shù)據(jù)表“圖書信息_copy1”,在彈出的快捷菜單中選擇【重命名】命令,數(shù)據(jù)表名稱進入編輯狀態(tài),將名稱修改為“圖書信息2”,按【Enter】鍵即可。新增加的3張數(shù)據(jù)表“user”“訂單信息2”和“圖書信息2”如圖所示。新增加的3張數(shù)據(jù)表3.5查看MySQL數(shù)據(jù)庫中的數(shù)據(jù)表及其結(jié)構(gòu)數(shù)據(jù)【任務(wù)3-7】選擇當(dāng)前數(shù)據(jù)庫并查看當(dāng)前數(shù)據(jù)庫中的所有數(shù)據(jù)表【任務(wù)描述】(1)使用UseMallDB語句選擇當(dāng)前數(shù)據(jù)庫。(2)使用ShowTables語句查看當(dāng)前數(shù)據(jù)庫中所有數(shù)據(jù)表的名稱列表?!救蝿?wù)實施】(1)選擇數(shù)據(jù)庫“MallDB”。在命令提示符“mysql>”后面輸入選擇數(shù)據(jù)庫的語句:UseMallDB;(2)在命令提示符“mysql>”后面輸入語句“ShowTables;”,然后按【Enter】鍵后可以看到成功創(chuàng)建的各張數(shù)據(jù)表,如圖所示。在【命令提示符】窗口中查看數(shù)據(jù)庫“MallDB”中的數(shù)據(jù)表【任務(wù)3-8】查看數(shù)據(jù)表的結(jié)構(gòu)在MySQL中,查看數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)可以使用Describe語句和ShowCreateTable語句。通過這兩個語句,可以查看數(shù)據(jù)表的字段名、字段的數(shù)據(jù)類型和完整性約束條件等。(1)使用Describe語句查看數(shù)據(jù)表的基本結(jié)構(gòu)。在MySQL中,Describe語句可以查看數(shù)據(jù)表的結(jié)構(gòu)信息,包括字段名、字段數(shù)據(jù)類型、是否為主鍵和默認(rèn)值等,其語法格式如下:{Describe|Desc}<數(shù)據(jù)表名稱>[<字段名稱>|<通配符>];Describe可縮寫為Desc,二者用法相同??梢圆樵冎苯幼侄蚊?,也可以查詢含有通配符“%”和“_”的字符串。(2)使用ShowCreateTable語句查看數(shù)據(jù)表的詳細(xì)結(jié)構(gòu)。在MySQL中,ShowCreateTable語句可以查看數(shù)據(jù)表的詳細(xì)結(jié)構(gòu)。該語句可以查看數(shù)據(jù)表的字段名、字段的數(shù)據(jù)類型、完整性約束條件等信息,還可以查看數(shù)據(jù)表默認(rèn)的存儲引擎、字符集等,其語法格式如下:ShowCreateTable<數(shù)據(jù)表名稱>;【任務(wù)描述】(1)使用Describe語句查看“商品類型”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)。(2)使用Describe語句查看“圖書信息”數(shù)據(jù)表中“圖書名稱”字段的結(jié)構(gòu)數(shù)據(jù)。(3)使用ShowCreateTable語句查看創(chuàng)建“圖書信息”數(shù)據(jù)表的CreateTable語句。【任務(wù)實施】首先打開Windows操作系統(tǒng)下的【命令提示符】窗口,登錄MySQL數(shù)據(jù)庫服務(wù)器,然后選擇數(shù)據(jù)庫“MallDB”。1.使用Describe語句查看“商品類型”數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)使用Describe語句查看“商品類型”數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)的代碼如下:Describe商品類型;執(zhí)行結(jié)果如圖所示。查看“商品類型”數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)的執(zhí)行結(jié)果圖3-25中各個列名含義解釋分別如下。①Field:字段名。②Type:數(shù)據(jù)類型及長度。③Null:對應(yīng)字段是否可以存儲Null。④Key:對應(yīng)字段是否已設(shè)置約束。PRI表示設(shè)置了主鍵約束,UNI表示設(shè)置了唯一約束,MUL表示允許給定值出現(xiàn)多次。⑤Default:對應(yīng)字段是否有默認(rèn)值,NULL表示沒有設(shè)置默認(rèn)值。如果有默認(rèn)值則顯示其值。⑥Extra:相關(guān)的附加信息,例如Auto_Increment等。2.使用Describe語句查看“圖書信息”數(shù)據(jù)表中“圖書名稱”字段的結(jié)構(gòu)數(shù)據(jù)使用Describe語句查看“圖書信息”數(shù)據(jù)表中“圖書名稱”字段結(jié)構(gòu)數(shù)據(jù)的代碼如下:Describe圖書信息圖書名稱;執(zhí)行結(jié)果如圖所示。查看“圖書信息”數(shù)據(jù)表中“圖書名稱”字段的結(jié)構(gòu)數(shù)據(jù)的執(zhí)行結(jié)果3.使用ShowCreateTable語句查看創(chuàng)建“圖書信息”數(shù)據(jù)表的CreateTable語句使用ShowCreateTable語句查看創(chuàng)建“圖書信息”數(shù)據(jù)表的CreateTable語句的代碼如下:ShowCreateTable圖書信息;執(zhí)行結(jié)果中對應(yīng)的CreateTable語句如下所示:CREATETABLE'圖書信息'('商品編號'varchar(12)NOTNULL,'圖書名稱'varchar(100)NOTNULL,'商品類型'varchar(9)NOTNULL,'價格'decimal(5,2)NOTNULL,'出版社'varchar(16)NOTNULL,'ISBN'varchar(20)NOTNULL,'作者'varchar(30)DEFAULTNULL,'版次'smallintDEFAULTNULL,'出版日期'dateDEFAULTNULL,'封面圖片'varchar(50)DEFAULTNULL,'圖書簡介'text)ENGINE=MyISAMDEFAULTCHARSET=utf83.6修改MySQL數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)表創(chuàng)建完成后,還可以根據(jù)實際需要對數(shù)據(jù)表的結(jié)構(gòu)進行修改,例如修改數(shù)據(jù)表名稱、字段名稱、數(shù)據(jù)類型等?!救蝿?wù)3-9】使用Navicat圖形管理工具修改數(shù)據(jù)表的結(jié)構(gòu)【任務(wù)描
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山西省職教高考《職測》核心考點必刷必練試題庫(含答案)
- 《國防動員法》知識考試題庫300題(含答案)
- 2025年武漢警官職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 《金融市場培訓(xùn)》課件
- 2025高考物理一輪復(fù)習(xí)第21講.機械波.含答案
- 技術(shù)服務(wù)類合同范本
- 幼兒園園長工作活動策劃方案五篇
- 夫妻協(xié)議書范文
- 面包車租車合同
- 公墓銷售代理合同十
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標(biāo)管理制度
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學(xué)語文模擬試卷(9)-江西省(解析版)
- 糖尿病高滲昏迷指南
- 壁壘加筑未來可期:2024年短保面包行業(yè)白皮書
- 2024年四川省廣元市中考物理試題(含解析)
- 環(huán)保局社會管理創(chuàng)新方案市環(huán)保局督察環(huán)保工作方案
- 2024至2030年中國水質(zhì)監(jiān)測系統(tǒng)行業(yè)市場調(diào)查分析及產(chǎn)業(yè)前景規(guī)劃報告
- 運動技能學(xué)習(xí)
評論
0/150
提交評論