版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)
教學內(nèi)容創(chuàng)建與優(yōu)化MySQL數(shù)據(jù)表結(jié)構(gòu)課時8
項目性質(zhì)□演示性口驗證性□設(shè)計性J綜合性
授課班級授課日期授課地點
了解網(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ù)表的方法
體驗網(wǎng)上商城數(shù)據(jù)庫應(yīng)用
MySQL的數(shù)據(jù)類型及選用
分析并確定數(shù)據(jù)表的結(jié)構(gòu)
教學內(nèi)容創(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ù)表
教學重點優(yōu)化數(shù)據(jù)表結(jié)構(gòu)
教學難點MySQL的數(shù)據(jù)類型、優(yōu)化數(shù)據(jù)表結(jié)構(gòu)
裝有MySQL、NavicatforMySQL等軟件的計算機
教學準備教學課件PPT
教材:《MySQL數(shù)據(jù)庫應(yīng)用、設(shè)計與管理任務(wù)驅(qū)動教程(微課版)》
作業(yè)設(shè)計
教學過程
教學內(nèi)容與過程
教學環(huán)節(jié)
(教學內(nèi)容、教學方法、組織形式、教學手段)
做好上課前的各項準備工作(打開計算機、打開課件、打開軟件、打開授課計劃、教案等),
課前組織
吸引學生注意力。
【課前說明】
從網(wǎng)上商城數(shù)據(jù)庫的應(yīng)用引入本模塊學習內(nèi)容。
課程說明
【目的】
使學生從了解本節(jié)課的學習目標、學習重點、考評方式等方面明確課程學習的要求和目標。
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ù)表
有一個直觀認識。與京東網(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ù)表典型用戶典叁操作
商品類型、商品信息、供應(yīng)用戶注冊、月戶登錄、宓碼
京東網(wǎng)上商城應(yīng)網(wǎng)上商城
商、客戶、支付方式、提貨方客戶、職員修改、商品查詢、商品選
用系統(tǒng)數(shù)據(jù)庫
式、購物車、訂單信息等購、下單、訂單查詢等
課程內(nèi)容【任務(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ù)
類型編號類型名稱父類煽號類型編號類型名林父類煽號類型編號類型名稱父類煽號
tO1家用電器toot03電腦產(chǎn)品toot0304游戲設(shè)備t03
t0101電視機tO1t0301電腦整機t03t0305網(wǎng)絡(luò)產(chǎn)5?t03
to102空調(diào)t01t030101筆記本t0301t04辦公用品too
t0103洗衣嘰tO1t030102游成本t0301t05化妝洗護too
t0104冰箱t01t030103平板電腦t0301t06服飾鞋帽too
t0105廚衛(wèi)電器tO1t030104臺式機t0301t07皮具箱包too
t0106生活電器t01t0302電腦配件t03t08汽車用品too
t02數(shù)碼產(chǎn)品toot030201顯示器t0302t09母嬰玩具too
t0201通信設(shè)備t02t030202CPUt0302t10食品飲料too
1020101手機t0201t030203主板t0302t11醫(yī)藥保健too
1020102手機配件t0201t030204顯卡t0302t12禮品鮮花too
t020103對講機t0201t030205硬盤t0302t13圖書音像too
t020104固定電話t0201t030206內(nèi)存t0302t1301圖書t13
t0202攝影嘰t02t0303外設(shè)產(chǎn)品t03t1302音像t13
t0203攝像機t02t030301鼠標t0303t1303電子書刊t13
t0204數(shù)碼配件1021030302鍵盤t0303t14家裝廚具too
t0205影音娛樂t02t030303U盤t0303t15珠寶首飾too
t0206智能設(shè)備t02t030304移動硬盤t0303t16體育用品too
在京東網(wǎng)上商城首頁的“搜索”文本框中輸入“手機華為:按【Enter】鍵,顯示出來的部分手機信息如圖
所示。
■■fl
¥4488.00¥1499.00¥1189.00
修場AO亮■電8.128G龕附d■HMi為HJ-EJWR?Ha0-AMOUDZUlHfi
81g片488萬AJ回13!8萬人400CMRMWWL4600萬
1萬?斗;份60萬?條徉榆38萬?疊4歹2
E電
[rrrTl
搜索“手機華為”顯示出來的部分手機信息
這些商品信息源自后臺數(shù)據(jù)庫的“商品信息”數(shù)據(jù)表,此任務(wù)中“商品信息”數(shù)據(jù)表的示例數(shù)據(jù)如表所示。
“商品信息”數(shù)據(jù)表的示例數(shù)據(jù)
價格
序號商扉編號商品名稱商品類型品牌
(元)
1100009177424華為Mate305G手機4499.00華為(HJAWEI)
2100004559325華為榮耀20s手機1899.00華為(HJAWEI)
3100006232551OPPOReno3雙模5G手機2999.00OPPO
4100011351676小米10Pro雙模5G手機4999.00小米(Ml)
5100005724680戴爾G3筆記本電腦6099.00戴爾(DELL)
6100003688077聯(lián)想拯救者丫7000P筆記本電腦8499.00聯(lián)想(Lenovo)
7100005603836惠普暗影精靈GTX筆記本電腦6299.00惠普(H=>)
8100005638619華為榮融MagicMallDB筆記本電腦3599.00華為(HJAWEI)
9100004541926TCL65T680電視機4199.00TCL
長虹
10100000615806長虹55D7P電視機2699.00
(CHANGHONG)
11100004372958創(chuàng)維50V20電視機1599.00創(chuàng)維(Skyworth)
12100013232838海爾LU58J51電視機3999.00海爾(Haier)
13100005624340海信HZ55E5D電視機3299.00海信(Hsense)
14100014512520格力KFR-72LW/NhAb3BG空調(diào)7998.00格力(GREE)
15100013973228美的KFR-35GW/N8MJA3空調(diào)1999.00美的(Midea)
在京東網(wǎng)上商城首頁的“全部商品分類”列表中單擊【圖書】超鏈接,打開“圖書”頁面,然后在“搜索”文本
框中輸入圖書名稱關(guān)鍵字“MySQL",按【Enter】鍵,顯示出來的部分圖書信息如圖所示。
Q.S5SW1R圖書I
書名:網(wǎng)頁設(shè)t+與*mt戰(zhàn)
作??陳承歡
出的也:人艮觸電出順社
ISBHs
折扣:所育近國」
京東價1至
定你至
即附洞;,不布.耳不0?月?,不幅?年不*,月
搜索條件的設(shè)置
單擊【搜索】按鈕,高級搜索的結(jié)果如圖所示。
留制%a*z?z項宏碇
r
X310.00HIMI5CSS;HIAII:<*-<
.皿FU
Sprrq^ud??5,1Hf
ewao?AiW
¥47.10¥51.50*47.84
WTM15“SSJR亥WCFM他日iBWm<S*<S$3W!?h**?.-??HTMXSMR金*F!fT5;*:U日
OlhWtutfivtosiftn
KZX?E?9?0
klH?二@W
REVjtCAMt*KtVJiCAMW
高級搜索的結(jié)果
3.查看商品詳情
在上圖所示的高級搜索結(jié)果中選擇京東自營的圖書《HTML5+CSS3網(wǎng)頁設(shè)計與制作實戰(zhàn)》,并單擊圖書
圖片或圖書名稱,打開該圖書的詳情頁面,該圖書的“商品介紹”如圖所示。
第七國濁waw(o)啪ra動
±Mtt人=.口IS?MW11W1KWKJC:4
S;―叢攸a-ON依也《mar一.井,;107T
上1l0:2021141蹲注鉉”7B:304加:522
W-
圖書《HTML5+CSS3網(wǎng)頁設(shè)計與制作實戰(zhàn)》詳情頁面中的“商品介紹”
商品詳情頁面所顯示的圖書信息源自相同的數(shù)據(jù)源,即后臺數(shù)據(jù)庫的“圖書信息”數(shù)據(jù)表。
【思考】這里查詢的圖書詳細數(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ù),如每本圖書的圖書名稱、出版社、價格、國際標準書號(International
StandardBookNumbe^,ISBN)等,這些數(shù)據(jù)以數(shù)據(jù)表的形式存儲。這里查詢結(jié)果的數(shù)據(jù)源也源自后臺數(shù)據(jù)
庫的“商品信息”數(shù)據(jù)表。
【思考】高級搜索的圖書數(shù)據(jù)是如何從后臺數(shù)據(jù)庫中獲取的?
4.實現(xiàn)用戶注冊
在京東網(wǎng)上商城頂部單擊【免費注冊】超鏈接,打開'用戶注冊”頁面,選擇【個人用戶】選項卡,分別在
‘用戶名”“請設(shè)置密碼”“請確認密碼”“驗證手機”“短信驗證碼”和“驗證碼墳本框中輸入合適的內(nèi)容,如圖所示。
“用戶注冊”頁面
單擊【立即注冊】按鈕,打開“注冊成功”頁面,這樣便在后臺數(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ī)范
的列表方式顯示了訂購商品的信息。
12303883X35.S0
HTML5WSS啊式設(shè)計與劄gtt皿目X)12631631
12634931M39.30
訂單中所訂購的商品的全部相關(guān)信息
【思考】訂單中訂購商品的相關(guān)信息源自哪里?
8.查看訂單信息
打開京東網(wǎng)上商城的“訂單”頁面,可以查看訂單信息,如圖所示。
訂華信息
訂的案號132577605708
芟付方式黃則歐
函送方式京東快遞
TSffJi?2020-100212:31:18
拆分時間2020-10-0212:31:18
訂單信息
【思考】這些訂單信息源自哪里?
由此可見,數(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ū)傩浴C恳涣杏幸欢ǖ娜≈捣秶?,也稱為域,如“商品類型”一
列,其取值只能是商品類型的名稱,如數(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ù)庫,并負責處理用戶的各種請求。以客戶
選購商品為例,在選購商品時,客戶通過搜索查找所需的商品,網(wǎng)上商城系統(tǒng)將搜索條件轉(zhuǎn)換為數(shù)據(jù)庫管理
系統(tǒng)能夠接收的查詢命令,將查詢命令傳遞給數(shù)據(jù)庫管理系統(tǒng),命令傳給數(shù)據(jù)庫管理系統(tǒng)后,數(shù)據(jù)庫管理系
統(tǒng)負責從“圖書信息”數(shù)據(jù)表中找到對應(yīng)的圖書數(shù)據(jù),并將數(shù)據(jù)返回給網(wǎng)上商城系統(tǒng),在網(wǎng)頁中顯示出來。當客
戶找到一本需要購買的圖書,并單擊商品選購頁面中的【加入購物車】按鈕后,網(wǎng)上商坂系統(tǒng)將要保存的數(shù)
據(jù)轉(zhuǎn)換為插入命令,該命令傳遞給數(shù)據(jù)庫管理系統(tǒng)后,數(shù)據(jù)庫管理系統(tǒng)負責執(zhí)行命令,將選購的圖書數(shù)據(jù)保
存到“選購商品”數(shù)據(jù)表中。
通過以上分析,我們對數(shù)據(jù)庫應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)的工作過程有了一個初始認識,其基本工作過
程如下:用戶通過數(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ù)存儲方式的一種約定,它能夠期定數(shù)據(jù)存儲時所占空間的大小。MySQL數(shù)據(jù)庫使用不
同的數(shù)據(jù)類型存儲數(shù)據(jù),數(shù)據(jù)類型主要根據(jù)數(shù)據(jù)值的內(nèi)容、大小、精度來確定。在MySQL中,數(shù)據(jù)類型主要
分為數(shù)值類型、字符串類型、日期時間類型和特殊數(shù)據(jù)類型4種。
1.數(shù)值類型
所謂數(shù)值類型,就是存放數(shù)字型數(shù)據(jù)的約定,包括整數(shù)和小數(shù)。數(shù)值類型數(shù)據(jù)是指字面值具有數(shù)學含
義,能直接參加數(shù)值運算(例如求和、求平均值等)的數(shù)據(jù),例如數(shù)量、單價、金額、比例等方面的數(shù)據(jù)。
但是有些數(shù)據(jù)的字面也為數(shù)字,卻不具有數(shù)學含義,參加數(shù)值運算的結(jié)果沒有數(shù)學含義,例如商品編號、郵
政編碼、電話號碼、圖書的ISBN、學號、身份證號、存折號碼等,這些數(shù)據(jù)的字面雖然是由數(shù)字組成,卻為
字符串類型。
(1)整數(shù)類型。
整數(shù)類型主要用于存放整數(shù)數(shù)據(jù)。MySQL提供了多種整數(shù)類型,不同的數(shù)據(jù)類型提供了不同的取值范
圍??梢源鎯Φ闹捣秶酱?,其所需要的存儲空間也會越大。其取值范圍、占用字節(jié)數(shù)和默認顯示寬度如表
所示。
MySQL中的整數(shù)類型
取值范圍默認
MySQL整數(shù)類型占用字節(jié)數(shù)
有符號類型無符號類型顯不寬度
tinyint-128-1270-255(28-1)1字節(jié)4
smallint-32768-327670-65535(210-1)2字節(jié)6
mediumint-8388608-8388607076777215(224-1)3字節(jié)9
int(integer)-2147483648?21474836470?4294967295(232-1)4字節(jié)11
bigint?23?263?1o?26y8字節(jié)20
MySQL支持在整數(shù)類型關(guān)鍵字后面的括號內(nèi)指定整數(shù)值的顯示寬度,int(M用于指定顯示寬度,即指定
能夠顯示的數(shù)字個數(shù)為M例如,假設(shè)聲明一個int類型的字段——number時⑷,該聲明指出,在number
字段中的數(shù)據(jù)一般只顯示4位數(shù)字的寬度。這里需要注意的是,顯示寬度和數(shù)據(jù)類型的取值范圍是無關(guān)的。
顯示寬度只是指明MySQL最大可能顯示的數(shù)字個數(shù),數(shù)值的位數(shù)小于指定的寬度時會由空格填充;如果插入
了位數(shù)大于顯示寬度的值,只要該值不超過該類型整數(shù)的取值范圍,數(shù)值依然可以插入,而且能夠顯示出
來。例如向number字段插入一個數(shù)值19999,當使用Select語句查詢該字段的值時,MySQL顯示的將是完
整的帶有5位數(shù)字的19999,而不是4位數(shù)字的值。
其他整數(shù)類型也可以在定義表結(jié)構(gòu)時指定所需要的顯示寬度,如果不指定,則系統(tǒng)會為每一種類型指定
默認的寬度值。默認顯示寬度與其有符號數(shù)最小值的寬度相同,從而能夠保證顯示每一和數(shù)據(jù)類型可以取到
取值范圍內(nèi)的所有值。例如tinyint有符號數(shù)和無符號數(shù)的取值范圍分別為-128?127和。?255,由于負號占
了一個數(shù)字位,因此tinyint默認的顯示寬度為4。
不同的整數(shù)類型有不同的取值范圍,并且需要不同的存儲空間。因此,應(yīng)該根據(jù)實際需要選擇最合適的
類型,這樣有利于提高查詢的效率和節(jié)省存儲空間。
(2)小數(shù)類型。
MySQL中使用浮點數(shù)和定點數(shù)來表示小數(shù)。浮點類型有兩種:單精度浮點類型(float)和雙精度浮點類
型(double卜定點類型只有一種:decimal浮點類型和定點類型都可以使用(m,n)來表示,其中m表示總
共的有效位數(shù),也稱為晴度;〃表示小數(shù)的位數(shù)。MySQL中的小數(shù)類型如表所示。
MySQL中的小數(shù)類型
MySQL小數(shù)類型占用字節(jié)數(shù)說明
float(/n,n)4字節(jié)單精度浮點型可以精確到小數(shù)點后7位
double(/n,/7)8字節(jié)雙精度浮點型可以精確到小數(shù)點后15位
decimal(m,n)rm2字節(jié)為定點小數(shù)類型,其最大有效位數(shù)為65位,可以精確到小數(shù)點后30
位
decimal不同于float和double,decimal實際是以字符串存放的,其存儲位數(shù)并不是同定不變的,而是由
有效位數(shù)決定的,占用“有效位數(shù)+2”個字節(jié)。
不管是定點類型還是浮點類型,如果用戶指定的精度超出其精度范圍,則會進行四舍五入處理。如果實際
有效位數(shù)超出了用戶指定的有效位數(shù),則以實際的有效位數(shù)為準。例如,有一個字段定義為float(5,3),如果插
入一個數(shù)123.45678,實際數(shù)據(jù)庫里存的是123.457,但總個數(shù)還以實際為準,即6位。
float和double在不指定精度時,默認會按照實際的精度(由計算機硬件和操作系統(tǒng)決定)存儲;decimal
如不指定度精度,會按照默認值(10,0)存儲。
2.字符串類型
字符串類型也是數(shù)據(jù)表的重要類型之一,主要用于存儲字符串或文本信息。MySQL支持兩類字符串數(shù)
據(jù):文本字符串和二進制字符串。在MySQL數(shù)據(jù)庫中,常用的字符串類型主要包括char、varchar.binary,
varbinary、text等。MySQL中的字符串類型如表所示。
MySQL中的字符串類型
MySQL
字符串長度說明
字符串類型
char(n)最多255個字符用于聲明一個定長的數(shù)據(jù),(1代表存儲的最大字符數(shù)
varchar(n)最多65535個字符用于聲明一個變長的數(shù)據(jù),口代表存儲的最大字符數(shù)
binary(n)最多255個字符用于聲明一個定長的二進制數(shù)據(jù),門代表存儲的最大字符數(shù)
varbinary(n)最多65535個字符用于聲明一個變長的二進制數(shù)據(jù),(1代表存儲的最大字符數(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ù)標準化,在數(shù)據(jù)庫中提供了專門存儲日期和時間的數(shù)據(jù)類型。在
MySQL中,日期時間類型包括date、time、datetime、timestamp和year等。每一種日期時間類型都有合法
的取值范圍,當插入不合法的值時,系統(tǒng)會將“零”值插入字段中。MySQL中的日期時間類型如表所示。
MySQL中的日期時間類型
MySQL
占用字節(jié)數(shù)使用說明
日期時間類型
year1字節(jié)存儲年份值,其格式是丫丫丫丫,范圍為1901至2155,例如202T
date3字節(jié)存儲日期值,其格式是丫YYY-MM-DD,例如'2021-12-2'
time3字節(jié)存儲時間值,其格式是HH:MM:SS,例如‘12:25:36,
datetime8字節(jié)存儲日期時間值,其格式是丫丫YY-MM-DDHH:MM:SS,例如'2021-12-222:06:44'
顯示格式與datetime相同,顯示寬度固定為19個字符,即YYYY-MM-DD
timestamp4字節(jié)
HH: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'>,V值2'>,('值”>)
其中“字段名稱”指將要定義的字段,值〃指枚舉列表中的第〃個值。Enum類型的字段在取值時,只能在
指定的枚舉列表中取,而且一次只能取一個。如果創(chuàng)建的成員中有空格,其尾部的空格將自動被刪除。
例如:
SexEnum('男','女')
這里將性別列設(shè)置為Enum類型,那么,枚舉值可以設(shè)置為“男”“女在向數(shù)據(jù)表添加數(shù)據(jù)時,就只能添
加“男”和“女”這兩個值。Enum類型使用Enum表示,在定義取值時,必須使用半角單引號把值引起來。在
MySQL數(shù)據(jù)庫中存儲枚舉值時,并不是直接將值記入數(shù)據(jù)表中,而是記錄值的索引。值的索引是按值的順序
生成的,并且從1開始編號,例如枚舉值“男”和“女”,其值索引為1、2OMySQL存儲的就是這個索引編號,
Enum類型最多可以有65535個元素。在Enum類型中,索引值0代表的是錯誤的空字符串。
(2)Set類型。
Set類型也稱為集合類型,是一個字符串對象,可以有零個或多個值,Set字段最多可以有64個成員,
其值為表創(chuàng)建時規(guī)定的一列值。其語法格式如下:
Set(v'值r>,V值2'><值n'>)
例如:
Set('春:夏’,耿,'冬)
Set類型與Enum類型類似,都是在已知的值中取值,存儲的是值的索引編號,Set成員值的尾部空格將
自動被刪除。不同的是,Set類型可以取已知值列表中任意組合的值。例如,在Set類型中列出的值是“春”、
“夏”、“秋”和“冬”,那么可以取的值有多種組合。
如果插入Set字段中的值有重復,則MySQL自動刪除重復的值。插入Set字段的值的順序并不重要,
MySQL會在存入數(shù)據(jù)表時,按照定義的順序顯示。如果插入了不正確的值,默認情況下,MySQL將忽略這
些值,并給出警告。
(3)bit類型。
bit類型主要用來定義一個指定位數(shù)的數(shù)據(jù),其取值范圍為1-64,所占用的字節(jié)數(shù)是根據(jù)它的位數(shù)決定
的。
(4)blob類型。
blob類型是一個二進制大對象,用來存儲可變數(shù)量的二進制字符串。blob類型分為4種:tlnyblob、
blob、mediumblob和longblob。它們可容納的最大長度不同,分別為255個字符、65535個字符、16777215
個字符、4294967295個字符。
3.2.2MySQL數(shù)據(jù)類型的選擇
MySQL提供了大量的數(shù)據(jù)類型。為了優(yōu)化存儲,提高數(shù)據(jù)庫性能,選用數(shù)據(jù)類型時應(yīng)使用最合適的類
型。當需要選擇數(shù)據(jù)類型時,在可以表示該字段值的所有類型中,應(yīng)當使用占用存儲空間最少的數(shù)據(jù)類型。
因為這樣不僅可以減少對存儲空間的占用,還可以在數(shù)據(jù)計算時減輕CPU的負載。
1.整數(shù)類型和浮點類型的選擇
如果不需要表示小數(shù)部分,則使用整數(shù)類型;如果需要表示小數(shù)部分,則使用浮點類型。浮點類型對存
入的數(shù)值會按字段定義的小數(shù)位進行四舍五入。浮點類型包括float和double,double類型精度比float類型
要高。因此,如果要求存儲精度較高時,應(yīng)使用double類型;如果存儲精度要求較低時,則使用float類型。
2.浮點類型和定點類型的選擇
浮點類型(float和double)相對于定點類型decimal的優(yōu)勢是,在長度一定的情
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學奧數(shù)四套題目及答案
- 車間定法制度
- 誠信、廉潔的相關(guān)制度
- 2026年及未來5年市場數(shù)據(jù)中國城市綠化管理行業(yè)市場發(fā)展現(xiàn)狀及投資戰(zhàn)略咨詢報告
- 醫(yī)學導論:膽囊癌診療課件
- 行業(yè)協(xié)會監(jiān)督檢查制度
- 2025年技術(shù)能力評估筆試及答案
- 2025年色達人事考試及答案
- 2025年天津華電集團筆試及答案
- 2025年班主任技能比賽筆試題及答案
- 廣西南寧市2025-2026學年高一上學期期末物理試題(原卷版+解析版)
- 2026屆湖北省襄陽第四中學數(shù)學高一上期末考試模擬試題含解析
- 吉林省長春市2026屆高三年級質(zhì)量檢測政治(一)(長春一模)(含答案)
- 2026年度駕駛員工作計劃
- 2026年常州工業(yè)職業(yè)技術(shù)學院單招職業(yè)技能測試題庫含答案詳解
- OEE的課件教學課件
- 混凝土施工作業(yè)環(huán)境管理方案
- 2025年初會職稱《經(jīng)濟法基礎(chǔ)》真題匯編及答案
- 2025年四川省成都市武侯區(qū)中考物理二診試卷
- 光纖線路架設(shè)施工方案
- 2025年監(jiān)理工程師市政公用工程繼續(xù)教育考試題及答案
評論
0/150
提交評論