MySQL數(shù)據(jù)庫項目式教程完整版課件全書電子教案教材課件(完整)_第1頁
MySQL數(shù)據(jù)庫項目式教程完整版課件全書電子教案教材課件(完整)_第2頁
MySQL數(shù)據(jù)庫項目式教程完整版課件全書電子教案教材課件(完整)_第3頁
MySQL數(shù)據(jù)庫項目式教程完整版課件全書電子教案教材課件(完整)_第4頁
MySQL數(shù)據(jù)庫項目式教程完整版課件全書電子教案教材課件(完整)_第5頁
已閱讀5頁,還剩370頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、MySQL項目一 認識數(shù)據(jù)庫學習MySQL數(shù)據(jù)庫的特點學習目標MySQL了解數(shù)據(jù)庫的基礎知識掌握MySQL數(shù)據(jù)庫的安裝與配置具有使用Navicat工具的能力重點、難點MySQL 數(shù)據(jù)庫概述一一、數(shù)據(jù)庫概述MySQL1.信息(Information)信息是現(xiàn)實世界事物的存在方式或運動狀態(tài)的反映,它通過多種形式展現(xiàn),如文字、數(shù)碼、符號、圖形、聲音等。信息具有可感知、可存儲、可加工等自然屬性,是各行各業(yè)不可或缺的資源。2.數(shù)據(jù)(Data)數(shù)據(jù)是對客觀事件進行記錄并可以鑒別的符號,是數(shù)據(jù)庫中存儲的基本對象,是信息的具體表現(xiàn)形式。如:(張三,男,2001.3,天津,計算機工程學院,電子商務,2019)一

2、、數(shù)據(jù)庫概述MySQL3.數(shù)據(jù)處理數(shù)據(jù)處理是數(shù)據(jù)轉(zhuǎn)化為信息的過程。4.數(shù)據(jù)庫數(shù)據(jù)庫,簡而言之就是存放數(shù)據(jù)的倉庫,是為了實現(xiàn)一定目的,按照某種規(guī)則組織起來的數(shù)據(jù)的集合。5.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。一、數(shù)據(jù)庫概述MySQL6.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)定義功能數(shù)據(jù)操縱功能數(shù)據(jù)組織存儲與管理數(shù)據(jù)庫運行管理數(shù)據(jù)庫保護功能數(shù)據(jù)庫維護功能用于建立修改數(shù)據(jù)庫的庫結(jié)構用于實現(xiàn)對數(shù)據(jù)的增加刪除、更新查詢等操作用于分類組織、存儲和管理數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等用于多用戶環(huán)境下的并發(fā)控制、安全性檢查和存取限制控制、完整性檢查等用于保護數(shù)據(jù)庫中的數(shù)據(jù)實

3、現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)載入轉(zhuǎn)換、轉(zhuǎn)儲數(shù)據(jù)庫的重組合重構等數(shù)據(jù)庫接口功能通過與操作系統(tǒng)的聯(lián)機處理、分時系統(tǒng)及遠程作業(yè)輸入等相關接口實現(xiàn)數(shù)據(jù)的傳送一、數(shù)據(jù)庫概述MySQL7.關系型數(shù)據(jù)庫類別產(chǎn)品關系型數(shù)據(jù)庫 MySQL 、SQL rver、Access、Oracle、DB2等。非關系型數(shù)據(jù)庫MongoDB、HBase、Redis、Neo4J等。表1 常用數(shù)據(jù)庫關系型數(shù)據(jù)庫是一種建立在關系模型上的數(shù)據(jù)庫,關系模型就是一張二維表。一、數(shù)據(jù)庫概述MySQL7.關系型數(shù)據(jù)庫IDNameSex1張三男2李四男3王明女Student表行(row)列(column)ID=1Name=“張三”Sex=“男”ID=2Nam

4、e=“李四”Sex=“男”ID=3Name=“王明”Sex=“女”Student對象圖1 關系模型二維表MySQL 認識MySQL數(shù)據(jù)庫二二、認識MySQL數(shù)據(jù)庫MySQL1.MySQL數(shù)據(jù)庫簡介MySQL數(shù)據(jù)庫由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司旗下的產(chǎn)品。作為關系型數(shù)據(jù)庫最好的應用軟件之一,MySQL是開放源代碼的,因此任何人都可以下載并根據(jù)自己的需要對其進行修改。二、認識MySQL數(shù)據(jù)庫MySQL2.MySQL數(shù)據(jù)庫特點01超強的穩(wěn)定性03強大的查詢功能02可移植性好04支持大型數(shù)據(jù)庫05支持多種字符集存儲二、認識MySQL數(shù)據(jù)庫MySQL1.MySQL數(shù)據(jù)庫的版本(

5、1)MySQL Community Server(社區(qū)版)(2)MySQL Enterprise Server(企業(yè)版)(3)MySQL Standard Server(標準版)MySQL MySQL的圖形化管理工具三三、MySQL的圖形化管理工具MySQL1.Navicat的安裝Navicat官網(wǎng)下載地址為,下載完成后,雙擊安裝包即可進行安裝。圖2 雙擊安裝包后彈出的“許可協(xié)議”三、MySQL的圖形化管理工具MySQL1.Navicat的安裝圖3 選擇安裝路徑三、MySQL的圖形化管理工具MySQL1.Navicat的安裝圖4 安裝完成界面三、MySQL的圖形化管理工具MySQL2.Navi

6、cat的使用圖5 Navicat主界面MySQL 任務實施四四、任務實施MySQL1.MySQL的安裝圖6 MySQL下載頁面打開網(wǎng)址/downloads/mysql/,選擇下載MySQL 5.7 community社區(qū)版。注意:由于MySQL官網(wǎng)的軟件版本在定期更新,用戶在下載軟件時,可不必在意最后兩位版本號,只要是5.7版即可。四、任務實施MySQL1.MySQL的安裝圖7 MySQL安裝向?qū)ы撁骐p擊安裝文件進行安裝,此時會彈出MySQL安裝向?qū)Ы缑嫠?、任務實施MySQL1.MySQL的安裝圖8 MySQL安裝頁面選擇“Server only”即默認第二個僅服務器選項,點擊“Next”;四

7、、任務實施MySQL1.MySQL的安裝圖9 Group Replication選項選擇默認的“Standalone MySQL Server/Classic MySQL Replication”選項,點擊“Next”四、任務實施MySQL1.MySQL的安裝圖10 設置密碼界面在Accounts and Roles選項框中設置MySQL數(shù)據(jù)庫的管理員root用戶的密碼為“123456”;四、任務實施MySQL1.MySQL的安裝圖11 安裝成功界面在Windows Service選項框中直接點擊“Next”按鈕,直到進入如圖所示界面。點擊“Finish”按鈕,即安裝成功。四、任務實施MySQ

8、L2.MySQL的基本配置(1)啟動MySQL服務方法一:通過Windows服務管理器可以查看MySQL服務是否開啟,首先單擊“開始”“運行”,在“運行”對話框中輸入“services.msc”命令,單擊確定按鈕,成功啟動后界面效果如圖所示。四、任務實施MySQL2.MySQL的基本配置(1)啟動MySQL服務圖12 查看mysql服務四、任務實施MySQL2.MySQL的基本配置(1)啟動MySQL服務方法二:運行cmd命令,打開命令提示符窗口,輸入“net start mysql”命令來啟動MySQL服務,同樣也可輸入“net stop mysql”命令來停止mysql服務;四、任務實施M

9、ySQL2.MySQL的基本配置(2)通過命令行連接MySQL命令語法格式如下:mysql -h -u -p-h用于遠程登錄MySQL服務器,如果在本機操作可省略-h參數(shù)。-p后面可以不寫密碼,按Enter鍵后服務器會提示輸入密碼。如果寫密碼,-p和密碼之間沒有空格。四、任務實施MySQL2.MySQL的基本配置(2)通過命令行連接MySQL登錄成功后,我們可以在提示符下輸入select version(),user();命令來查看MySQL的版本信息及連接的用戶名,如圖所示:圖13 在控制臺輸入操作命令四、任務實施MySQL2.MySQL的基本配置(3)關閉MySQL服務器連接成功連接服務器

10、后,可以在mysql提示符下輸入exit或quit或q命令斷開與服務器的連接,如圖所示:圖14 關閉MySQL服務器連接四、任務實施MySQL3.通過圖形管理工具Navicat連接MySQL服務器(1)使用Navicat連接MySQL服務器雙擊Navicat圖標,打開Navicat的主界面,單擊文件菜單中的“新建連接”子菜單,選擇“MySQL”;圖15 新建MySQL連接四、任務實施MySQL3.通過圖形管理工具Navicat連接MySQL服務器(1)使用Navicat連接MySQL服務器在彈出的“MySQL-新建連接”對話框中正確輸入連接名、端口、用戶名、密碼,單擊“確定”進行連接;圖16

11、新建MySQL連接四、任務實施MySQL3.通過圖形管理工具Navicat連接MySQL服務器(1)使用Navicat連接MySQL服務器連接成功后,可在Navicat主界面的左邊窗格中看到剛剛創(chuàng)建的MySQL數(shù)據(jù)庫連接信息;圖17 查看MySQL服務器中的數(shù)據(jù)庫信息四、任務實施MySQL3.通過圖形管理工具Navicat連接MySQL服務器(2)使用Navicat查看MySQL數(shù)據(jù)庫信息圖18 在Navicat工具中使用命令查看數(shù)據(jù)庫四、任務實施MySQL4.設置 MySQL字符集進入Windows命令行,輸入命令:SHOW CHARACTER SET ,可以查看MySQL數(shù)據(jù)庫支持的字符集

12、圖19 查看MySQL數(shù)據(jù)庫支持字符集四、任務實施MySQL4.設置 MySQL字符集設置或修改MySQL服務器字符集后,可以通過輸入命令:status,查看是否設置成功圖20 查看MySQL字符集MySQL 任務總結(jié)五五、任務總結(jié)MySQL 通過本項目的學習,了解了數(shù)據(jù)庫的基本知識以及MySQL數(shù)據(jù)庫的發(fā)展歷史和特點,具有了安裝與配置數(shù)據(jù)庫的基本能力,并能使用Navicat工具連接MySQL數(shù)據(jù)庫服務器的方法。MySQL歡迎同學們提問MySQL項目二 數(shù)據(jù)庫設計學習數(shù)據(jù)庫的設計范式學習目標MySQL了解數(shù)據(jù)模型的概念掌握數(shù)據(jù)庫設計的步驟具有繪制E-R圖的能力重點重點、難點MySQL 數(shù)據(jù)模型

13、一一、數(shù)據(jù)模型MySQL1.概念數(shù)據(jù)模型概念數(shù)據(jù)模型簡稱概念模型,是用戶容易理解的現(xiàn)實世界特征的數(shù)據(jù)抽象,用于建立信息世界的模型。概念模型表示方法很多,其中最為著名的是P.P.Chen于1976年提出的E-R(Entity-Relationship)模型即實體關系模型。一、數(shù)據(jù)模型MySQL1.概念數(shù)據(jù)模型E-R圖由實體、屬性、關系三部分構成:實體(Entity):客觀存在的具體事物,也可以是抽象的事件。實體集(Entity Set):同類實體的集合,例如全體學生、全體教師等。屬性(Atrribute):可以理解為實體的特征。例如,“學生”這一實體的特征有姓名、性別、年齡等。實體屬性聯(lián)系名圖1

14、 實體、屬性、實體與實體間聯(lián)系的描述方法一、數(shù)據(jù)模型MySQL1.概念數(shù)據(jù)模型關系(Relationship):關系是指兩個或多個實體之間的關聯(lián)關系。學生學號圖2 1:1聯(lián)系學生1班級學生2學生3學生4學生5學生6.學生n圖3 1:n聯(lián)系一、數(shù)據(jù)模型MySQL1.概念數(shù)據(jù)模型關系(Relationship):關系是指兩個或多個實體之間的關聯(lián)關系。課程1學生1學生2學生3學生4學生5.學生n圖3 m:n聯(lián)系課程2課程3課程4課程n.一、數(shù)據(jù)模型MySQL2.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型由概念模型轉(zhuǎn)換得到,簡稱邏輯模型,是一種面向數(shù)據(jù)庫系統(tǒng)的模型,是具體的DBMS所支持的數(shù)據(jù)模型,既要面向用戶,又要面

15、向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實現(xiàn)。字段(Field):在數(shù)據(jù)庫中,表的“列”稱為“字段”數(shù)據(jù)記錄(Data Record):在數(shù)據(jù)庫中,數(shù)據(jù)記錄是指對應于數(shù)據(jù)源中一行信息的一組完整的相關信息表(Table):由行和列組成,行對應表中的記錄,列對應表中的字段一、數(shù)據(jù)模型MySQL3.物理數(shù)據(jù)模型物理數(shù)據(jù)模型是物理層次上的數(shù)據(jù)模型,主要描述數(shù)據(jù)在物理存儲介質(zhì)上的組織結(jié)構,它與具體的DBMS相關,也與操作系統(tǒng)和硬件相關。 一、數(shù)據(jù)模型MySQL4.數(shù)據(jù)模型的組成要素數(shù)據(jù)結(jié)構主要用于描述系統(tǒng)的靜態(tài)特征,是所研究的對象類型的集合數(shù)據(jù)操作數(shù)據(jù)約束條件是指對數(shù)據(jù)庫中的各種對象的實例允許執(zhí)行的

16、操作集合是指一組完整性規(guī)則的集合一、數(shù)據(jù)模型MySQL5.關系模型在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)模型通??梢苑譃閷哟文P?、網(wǎng)狀模型、關系模型三種,其中關系模型應用最為普遍。關系模型于20世紀70年代初由美國IBM公司的E.F.Codd提出,為數(shù)據(jù)庫技術的發(fā)展奠定了理論基礎。關系(Relation):一個關系就是一張二維表,如下表所示。學號姓名性別出生日期聯(lián)系電話專業(yè)190001王成男1998.12.2613323898911軟件技術190002張月女2001.7.1115523550009電子商務表1 學生信息表一、數(shù)據(jù)模型MySQL5.關系模型元組(Tuple):元組也稱為記錄,關系表中的每行對應一個

17、元組。屬性(Attribute):表中的一列即為一個屬性,給每個屬性取一個名稱為屬性名。屬性的取值范圍稱為域。候選碼(Candidate key):若關系中的某一屬性或?qū)傩越M的值能唯一標識一個元組,且從這個屬性組中去除任何一個屬性,都不再具有這樣的性質(zhì),則稱該屬性或?qū)傩越M為候選碼(Candidate key)。主屬性和非主屬性:在關系中,候選碼中的屬性稱為主屬性,不包含在任何候選碼中的屬性稱為非主屬性。主鍵:若一個關系中有多個候選碼,則選定其中一個為主鍵。MySQL 數(shù)據(jù)庫的設計步驟二二、數(shù)據(jù)庫的設計步驟MySQL良好的數(shù)據(jù)庫設計表現(xiàn)在以下三個方面:可提高系統(tǒng)的工作效率便于管理系統(tǒng)的進一步擴展

18、。使應用程序的開發(fā)變得更加容易。二、數(shù)據(jù)庫的設計步驟MySQL03將E-R圖轉(zhuǎn)換為多張表,進行邏輯設計,確認各表的主外鍵邏輯設計階段02討論數(shù)據(jù)庫的設計是否滿足客戶的業(yè)務和數(shù)據(jù)處理需求,必須標識數(shù)據(jù)庫要管理的關鍵對象或?qū)嶓w概要設計階段01該階段用于分析客戶的業(yè)務和數(shù)據(jù)處理需求需求分析階段MySQL 數(shù)據(jù)庫的設計范式三三、數(shù)據(jù)庫的設計范式MySQL1.第一范式第一范式(First normal Form,1NF)的目標是確保每列的原子性。如果每列(或者每個屬性值)都是不可再分的最小數(shù)據(jù)單元(也稱為最小的原子單元),則滿足第一范式。如,學生基本信息表 (學號,姓名,性別,出生日期,專業(yè),課程,授課

19、老師等)主鍵為“學號”,其他列全部依賴于主鍵列三、數(shù)據(jù)庫的設計范式MySQL2.第二范式第二范式(Second normal form,2NF)在第一范式的基礎上更進一層,其目標是確保表中的每列都和主鍵相關。如果一個關系滿足第一范式(1NF),并且除了主鍵以外的其他列都全部依賴于該主鍵,則滿足第二范式(2NF)如,學生基本信息表 (學號,姓名,性別,出生日期,專業(yè),課程,授課老師等)如果需要將“課程”列拆分為課程編號、課程名稱、課程類型等信息時,以上各列并沒有完全依賴于主鍵“學號”列,因此將其轉(zhuǎn)換成兩個表:學生信息表(學號,姓名,性別,出生日期,專業(yè)等)課程信息表(課程編號、課程名稱、課程類型

20、、學時等)三、數(shù)據(jù)庫的設計范式MySQL3.第三范式第三范式的目標是確保每列都和主鍵列直接相關,而不是間接相關。如如果要表示某個學生的各門課程的成績信息,則需要再分解一個成績表出來:成績表(學號,課程編號,成績)MySQL 數(shù)據(jù)表結(jié)構四四、數(shù)據(jù)表結(jié)構MySQL 數(shù)據(jù)表結(jié)構是指對數(shù)據(jù)的數(shù)據(jù)項、數(shù)據(jù)結(jié)構、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯等進行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細的說明。簡而言之,數(shù)據(jù)表結(jié)構是描述數(shù)據(jù)的信息集合,是對系統(tǒng)中使用的所有數(shù)據(jù)元素的定義的集合。MySQL 任務實施五五、任務實施MySQL1.分析確定實體集學生實體集(student)的屬性有:學號、姓名、性別、出生

21、日期、專業(yè)、聯(lián)系電話、家庭住址。其中,用學號來唯一標識各學生信息,主鍵為學號。課程實體集(course)的屬性有:課程編號、課程名稱、授課教師、課程類型、學時、學分。其中,用課程編號來唯一標識各課程信息,課程編號為主鍵。成績實體集(score)的屬性有:學號、課程編號、成績。五、任務實施MySQL2.E-R圖設計學生課程選課成績學號姓名性別出生日期專業(yè)聯(lián)系電話家庭住址課程編號課程名稱授課教師課程類型學分學時mn圖4 E-R圖五、任務實施MySQL3.將E-R圖轉(zhuǎn)換為關系模式學生表(student)(學號、姓名、性別、出生日期、專業(yè)、聯(lián)系電話、家庭住址)。其中,用學號來唯一標識各學生信息,主鍵為

22、學號。課程表(course):課程編號、課程名稱、授課教師、課程類型、學時、學分。其中,用課程編號來唯一標識各課程信息,主鍵為課程編號。成績表(score):學號、課程編號、成績。其中,一個學生的學號可對應多門課程編號的成績,而一個課程編號也有可能對應多個學生的成績。五、任務實施MySQL4.規(guī)劃數(shù)據(jù)表結(jié)構字段名字段說明備注stuNo學號 name姓名 sex性別值為“男”或“女”birthday出生日期 spec專業(yè) phone聯(lián)系電話 address家庭住址地址不詳表2 學生表student結(jié)構五、任務實施MySQL4.規(guī)劃數(shù)據(jù)表結(jié)構字段名字段說明備注couNo課程編號 couName課程

23、名稱 teacher授課教師 type課程類型 hours學時 credit學分表3 課程表course結(jié)構五、任務實施MySQL4.規(guī)劃數(shù)據(jù)表結(jié)構字段名字段說明備注stuNo學號引用student表主鍵couNo課程編號引用course表主鍵result成績表4 成績表score結(jié)構MySQL 任務總結(jié)六六、任務總結(jié)MySQL 通過對本項目的學習,掌握了在數(shù)據(jù)庫設計中設計數(shù)據(jù)庫的基本步驟,以及繪制E-R圖的方法,并能通過E-R圖確定各表的結(jié)構以及各表之間的關系。為后期的數(shù)據(jù)庫及表的創(chuàng)建做好了鋪墊。MySQL歡迎同學們提問MySQL項目三 數(shù)據(jù)定義學習數(shù)據(jù)表的約束學習目標MySQL了解什么是S

24、QL語言掌握數(shù)據(jù)庫與數(shù)據(jù)表的創(chuàng)建方法具有使用Navicat工具完成數(shù)據(jù)定義的能力重點、難點MySQL SQL語言概述一一、SQL語言概述MySQL1.什么是SQL結(jié)構化查詢語言SQL(Structured Query Language)是最重要的關系數(shù)據(jù)庫操作語言,經(jīng)過多年的發(fā)展,SQL語言已成為關系數(shù)據(jù)庫的標準語言。一、SQL語言概述MySQL2.SQL的組成數(shù)據(jù)操縱語言(DML)數(shù)據(jù)查詢語言DQL用來插入、修改和刪除數(shù)據(jù)庫中的數(shù)據(jù)用來對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢使用SELECT命令完成查詢用來建立數(shù)據(jù)庫、建立表等,主要包括CREATE DATABASE、CREATE TABLE等用來控制數(shù)據(jù)庫

25、組件的存取許可、存取權限等,主要包括GRANT、REVODE命令數(shù)據(jù)控制語言DCl數(shù)據(jù)定義語言DDLMySQL 創(chuàng)建數(shù)據(jù)庫二二、創(chuàng)建數(shù)據(jù)庫MySQL1.創(chuàng)建數(shù)據(jù)庫語句:create database mystudent;圖1 創(chuàng)建數(shù)據(jù)庫mystudent注意:在MySQL中,所有命令均以分號結(jié)束“;”,只有極少數(shù)命令可以省略不寫分號。二、創(chuàng)建數(shù)據(jù)庫MySQL2.查看數(shù)據(jù)庫語句:show database;圖2 查看數(shù)據(jù)庫信息注意:在MySQL中,數(shù)據(jù)庫的命名不區(qū)分大小寫。二、創(chuàng)建數(shù)據(jù)庫MySQL3.選擇數(shù)據(jù)庫語句:use mystudent;圖3 選擇數(shù)據(jù)庫二、創(chuàng)建數(shù)據(jù)庫MySQL4.修改數(shù)據(jù)

26、庫編碼方式語法格式:alter database 數(shù)據(jù)庫名 default character set 編碼方式 collate 編碼方式_bin;圖4 修改編碼格式語句:alter database mystudent default character set utf8 collate utf8_bin;二、創(chuàng)建數(shù)據(jù)庫MySQL5.刪除數(shù)據(jù)庫語法格式:drop database 數(shù)據(jù)庫名;圖5 刪除數(shù)據(jù)庫語句:drop database testdb;MySQL 創(chuàng)建數(shù)據(jù)表三三、創(chuàng)建數(shù)據(jù)表MySQL1.數(shù)據(jù)類型數(shù)值型:數(shù)值型是指可以參與算術運算的類型,它可以分為整型和浮點型,其中浮點型又包

27、括單精度浮點型和雙精度浮點型數(shù)據(jù)類型字節(jié)數(shù)范圍用途TINYINT1有符號值:-128127用于表示小整數(shù)值,如年齡。INT4有符號值:-231231-1用于表示大整數(shù)值,如學生人數(shù)。FLOAT4有符號值:-3.402823466E+381.175494351E-38用于表示單精度浮點數(shù)值,浮點數(shù)即小數(shù)。如成績。DOUBLE8有符號值:-1.7976931348623157E+3082.2250738585072014E-308表示雙精度浮點數(shù)值。與單精度浮點數(shù)的主要區(qū)別是雙精度型表示范圍更大。如科學計算。表1 常用數(shù)值類型三、創(chuàng)建數(shù)據(jù)表MySQL1.數(shù)據(jù)類型字符串型:字符串類型用于保存一系列的

28、字符,這些字符在使用時采用單引號或雙引號括起來表2 常用字符串類型數(shù)據(jù)類型大小使用說明CHAR0255字符表示固定長度字符串VARCHAR065536字符表示可變長度字符串,該類型使用較為普遍TINYTEXT0255字節(jié)表示短文本字符串TEXT065535字節(jié)表示長文本數(shù)據(jù)。如日志、備注等BLOB0-65535字節(jié)二進制形式的長文本數(shù)據(jù),用于存儲圖片信息。三、創(chuàng)建數(shù)據(jù)表MySQL1.數(shù)據(jù)類型日期時間型:用于保存日期或時間的數(shù)據(jù)類型,通??梢苑譃槿掌陬愋?、時間類型和日期時間型表3 常用日期時間類型數(shù)據(jù)類型字節(jié)數(shù)格式Y(jié)EAR1年份值,YYYY,如2019DATE4日期值,YYYY-MM-DD,如2

29、019-06-01TIME3時間值,HH:MM:SS,如12:30:22DATETIME8混合日期和時間值,YYYY-MM-DD HH:MM:SS,如2019-06-01 12:30:22TIMESTAMP4混合日期和時間值,時間戳,1970-01-01 00:00:00/2038(該類型的取值必須在1970年2038年之間)三、創(chuàng)建數(shù)據(jù)表MySQL2.SQL中的運算符算術運算符:包括:+(加)、-(減)、*(乘)、/(除)、%(取模)表4 算術運算符運算符用法說明+加法運算,求兩個變量或表達式的和-減法運算,求兩個變量或表達式的差*乘法運算,求兩個變量或表達式的積/除法運算,求兩個變量或表達

30、式的商%取模運算,求兩個變量或表達式相除的余數(shù),如5%2的值為1三、創(chuàng)建數(shù)據(jù)表MySQL2.SQL中的運算符比較運算符:用來比較兩個變量或表達式的大小關系表5 比較運算符運算符用法說明大于,如32,值為true小于,如3=大于等于,如3=2,值為true=小于等于,如3=2,值為false不等于,如32,值為true三、創(chuàng)建數(shù)據(jù)表MySQL2.SQL中的運算符邏輯運算符:用來對某個條件進行判斷,以獲得一個真或假的值表6 邏輯運算符運算符用法說明NOT或!非運算或取反運算,如:!(成績=80 & 成績=80 | 成績60,表示成績大于等于80或不及格的學生三、創(chuàng)建數(shù)據(jù)表MySQL3.建立數(shù)據(jù)表數(shù)

31、據(jù)表名指需要創(chuàng)建的數(shù)據(jù)表的名字。字段名指數(shù)據(jù)表中的列名。數(shù)據(jù)類型指表中列的類型,用于指定可以存儲指定類型格式的數(shù)據(jù)。create table 數(shù)據(jù)表名( 字段1 數(shù)據(jù)類型, 字段2 數(shù)據(jù)類型, 字段n 數(shù)據(jù)類型);語法格式:參數(shù)說明:三、創(chuàng)建數(shù)據(jù)表MySQL3.建立數(shù)據(jù)表create table student(stuNo char(10),name varchar(50),sex char(2),birthday date,spec varchar(30),phone varchar(11),address varchar(255);示例語句:三、創(chuàng)建數(shù)據(jù)表MySQL4.查看數(shù)據(jù)表查看所有表

32、語句:show tables;圖6 查看數(shù)據(jù)表三、創(chuàng)建數(shù)據(jù)表MySQL4.查看數(shù)據(jù)表查看指定表的結(jié)構語法格式:describe表名;(也可簡寫為desc 表名;)圖7 查看指定表的結(jié)構語句:desc student;三、創(chuàng)建數(shù)據(jù)表MySQL4.查看數(shù)據(jù)表查看指定表的定義信息語法格式:show create table 數(shù)據(jù)表名;圖8 查看指定表的定義信息語句:show create table studentG三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表alter table 舊表名 rename 新表名;修改表名語法格式:修改表名示例語句:alter table student rename tb

33、_student;三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表alter table 表名 change 舊字段名 新字段名 新數(shù)據(jù)類型;修改字段名語法格式:修改字段名示例語句:alter table tb_student change name stuName varchar(50);三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表alter table表名 modify 字段名 新數(shù)據(jù)類型;修改字段類型語法格式:修改字段類型示例語句:alter table tb_student modify stuNo varchar(10);三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表alter table 表名 add 新

34、字段名 數(shù)據(jù)類型 FIRST|AFTER 已經(jīng)存在的字段名;添加字段語法格式:添加字段示例語句:alter table tb_student add politics varchar(20);三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表alter table 表名 drop 字段名;刪除字段語法格式:刪除字段示例語句:alter table tb_student drop politics;三、創(chuàng)建數(shù)據(jù)表MySQL5.刪除數(shù)據(jù)表drop table 表名;刪除數(shù)據(jù)表語法格式:刪除數(shù)據(jù)表示例語句:drop table tb_student;MySQL 數(shù)據(jù)表的約束四四、數(shù)據(jù)表的約束MySQL表7 My

35、SQL中數(shù)據(jù)庫表的常用約束約束名稱含義及功能主鍵約束PRIMARY KEY主鍵,又稱為主碼,一個表中只允許有一個主鍵,能夠唯一地標識表中的一條記錄。主鍵約束要求主鍵字段中的數(shù)據(jù)唯一,不允許為空。外鍵約束FOREIGN KEY外鍵約束是在兩個表之間建立關聯(lián)。關聯(lián)指的是在關系數(shù)據(jù)庫中,相關表之間的聯(lián)系。一個表可以有一個或多個外鍵,外鍵字段中的值允許為空,若不為空值,則每一個外鍵值必須等于另外一個表中主鍵的某個值。非空約束NOT NULL非空約束指字段的值不能為空。在同一個數(shù)據(jù)庫表中可以定義多個非空字段。唯一約束UNIQUE唯一約束要求該列值唯一,不能重復。默認約束DEFAULT在用戶插入新的數(shù)據(jù)行

36、時,如果沒有為該列指定數(shù)據(jù),那么系統(tǒng)會自動將默認值賦給該列,默認值可以是空值(NULL)或者自行指定。四、數(shù)據(jù)表的約束MySQL1.主鍵約束字段名 數(shù)據(jù)類型 primary key;主鍵約束語法格式:刪除主鍵語法格式:alter table表名 drop primary key;四、數(shù)據(jù)表的約束MySQL1.主鍵約束alter table 表名 modify 字段名 數(shù)據(jù)類型 primary key;為已經(jīng)存在的表添加主鍵語法格式:四、數(shù)據(jù)表的約束MySQL1.主鍵約束primary key(字段名1,字段名2,字段名n);創(chuàng)建表時指定復合主鍵語法格式:創(chuàng)建表時指定復合主鍵示例語句:creat

37、e table score(stuNo char(10),couNo char(10),result int,primary key(stuNo,couNo);四、數(shù)據(jù)表的約束MySQL1.主鍵約束alter table 表名 drop primary key;刪除復合主鍵語法格式:刪除復合主鍵示例語句:alter table score drop primary key;四、數(shù)據(jù)表的約束MySQL1.主鍵約束alter table 表名 add primary key (字段名1,字段名2,字段名n);為已經(jīng)存在的表添加復合主鍵語法格式:為已經(jīng)存在的表添加復合主鍵示例語句:alter tab

38、le score add primary key(stuNo,couNo);四、數(shù)據(jù)表的約束MySQL2.外鍵約束Constraint 外鍵名 foreign key (外鍵字段) references關聯(lián)表名(關聯(lián)字段);創(chuàng)建表時添加外鍵約束語法格式:創(chuàng)建表時添加外鍵約束示例語句:drop table score;create table score(stuNo char(10),couNo char(10),result int,primary key (stuNo,couNo),constraint fk_student_score1 foreign key(stuNo) referen

39、ces student(stuNo);四、數(shù)據(jù)表的約束MySQL2.外鍵約束alter table 表名 drop foreign key 外鍵名;刪除外鍵約束語法格式:刪除外鍵約束示例語句:alter table score drop foreign key fk_student_score1;四、數(shù)據(jù)表的約束MySQL2.外鍵約束alter table 表名 add constraint 外鍵名 foreign key(外鍵字段) references關聯(lián)表名(關聯(lián)字段);為已存在的表添加外鍵約束語法格式:為已存在的表添加外鍵約束示例語句:alter table score add con

40、straint fk_student_score1 foreign key(stuNo) references student(stuNo);四、數(shù)據(jù)表的約束MySQL3.非空約束字段名 數(shù)據(jù)類型 not null;創(chuàng)建表時添加非空約束語法格式:創(chuàng)建表時添加非空約束示例語句:drop table student;create table student(stuNo char(10) primary key,name varchar(50),sex char(2) not null,birthday date,spec varchar(30),phone varchar(11),address

41、varchar(255);四、數(shù)據(jù)表的約束MySQL3.非空約束alter table 表名 modify字段名 數(shù)據(jù)類型;刪除非空約束語法格式:刪除非空約束示例語句:alter table student modify sex char(2);四、數(shù)據(jù)表的約束MySQL3.非空約束alter table 表名 modify 字段名 數(shù)據(jù)類型 not null;為已經(jīng)存在的表添加非空約束語法格式:為已經(jīng)存在的表添加非空約束示例語句:alter table student modify sex char(2) not null;四、數(shù)據(jù)表的約束MySQL4.唯一約束字段名 數(shù)據(jù)類型 unique

42、;創(chuàng)建表時添加唯一約束語法格式:創(chuàng)建表時添加唯一約束示例語句:create table course(couNo char(10) primary key,couName varchar(50) unique,teacher varchar(50);四、數(shù)據(jù)表的約束MySQL4.唯一約束alter table 表名 drop index字段名;刪除唯一約束語法格式:刪除唯一約束示例語句:alter table course drop index couName;四、數(shù)據(jù)表的約束MySQL4.唯一約束alter table 表名 modify 字段名 數(shù)據(jù)類型 unique;為已經(jīng)存在的表添加唯

43、一約束語法格式:為已經(jīng)存在的表添加唯一約束示例語句:alter table course modify couName varchar(50) unique;四、數(shù)據(jù)表的約束MySQL5.默認約束字段名 數(shù)據(jù)類型 default 默認值;創(chuàng)建表時添加默認約束語法格式:創(chuàng)建表時添加默認約束示例語句:drop table student;create table student(stuNo char(10) primary key,name varchar(50),sex char(2) not null,birthday date,spec varchar(30),phone varchar(1

44、1),address varchar(255) default 地址不詳);四、數(shù)據(jù)表的約束MySQL5.默認約束alter table 表名 modify字段名 數(shù)據(jù)類型;刪除默認約束語法格式:刪除默認約束示例語句:alter table student modify address varchar(255);四、數(shù)據(jù)表的約束MySQL5.默認約束alter table 表名 modify 字段名 數(shù)據(jù)類型 default 默認值;為已存在的表時添加默認約束語法格式:為已存在的表時添加默認約束示例語句:alter table student modify address varchar(25

45、5) default 地址不詳;四、數(shù)據(jù)表的約束MySQL6.CHECK約束CHECK(表達式)CHECK約束語法格式:CHECK約束示例語句:drop table student;create table student(stuNo char(10) primary key,name varchar(50),sex char(2) not null check(sex in(男,女),birthday date,spec varchar(30),phone varchar(11),address varchar(255) );MySQL 使用Navicat工具實現(xiàn)數(shù)據(jù)定義五五、使用Navic

46、at工具實現(xiàn)數(shù)據(jù)定義MySQL1.使用Navicat創(chuàng)建數(shù)據(jù)庫圖9 創(chuàng)建數(shù)據(jù)庫在左側(cè)“連接樹”工具欄中右鍵“MYSQL”服務器連接,單擊“新建數(shù)據(jù)庫”;五、使用Navicat工具實現(xiàn)數(shù)據(jù)定義MySQL1.使用Navicat創(chuàng)建數(shù)據(jù)庫圖10 創(chuàng)建數(shù)據(jù)庫testStudent在“新建數(shù)據(jù)庫”對話框中,輸入數(shù)據(jù)庫名為“testStudent”,字符集與排序規(guī)則均為“utf8”,單擊“確定”按鈕五、使用Navicat工具實現(xiàn)數(shù)據(jù)定義MySQL2.使用Navicat創(chuàng)建數(shù)據(jù)表圖11 創(chuàng)建數(shù)據(jù)表在左側(cè)“連接樹”工具欄中雙擊名為“testStudent”的數(shù)據(jù)庫,雙擊“表”選項,在主工作區(qū)中選擇“新建表”按

47、鈕五、使用Navicat工具實現(xiàn)數(shù)據(jù)定義MySQL2.使用Navicat創(chuàng)建數(shù)據(jù)表圖12 創(chuàng)建數(shù)據(jù)表student在“新建表”對話框中依次輸入表中各字段的名稱、類型、長度等信息,輸入完成后,點擊“保存”按鈕,根據(jù)提示輸入表名為“student”,單擊“確定”MySQL 任務實施六六、任務實施MySQL1.創(chuàng)建學生成績管理數(shù)據(jù)庫CREATE DATABASE mystudent;語句:六、任務實施MySQL2.在學生成績管理數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表drop table student;create table student(stuNo char(10) primary key,name varcha

48、r(50) not null,sex char(2) not null check(sex in(男,女) ,birthday date,spec varchar(30),phone varchar(11),address varchar(255) default 地址不詳);創(chuàng)建學生表student語句:六、任務實施MySQLdrop table course;create table course(couNo char(10) primary key,couName varchar(50) not null unique,teacher varchar(50) ,type varchar(

49、20),hours int not null,credit int);創(chuàng)建課程表course語句:2.在學生成績管理數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表六、任務實施MySQLdrop table score;create table score(stuNo char(10),couNo char(10) ,result int,primary key(stuNo,couNo),constraint fk_student_score foreign key(stuNo) references student(stuNo),constraint fk_course_score foreign key(couNo)

50、references course(couNo);創(chuàng)建成績表score語句:2.在學生成績管理數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表MySQL 任務總結(jié)七七、任務總結(jié)MySQL 通過對本項目的學習,理解了SQL語言的概念,并學會利用SQL語句來完成數(shù)據(jù)庫和數(shù)據(jù)庫表的創(chuàng)建與管理。掌握了對數(shù)據(jù)庫表的常用約束的使用方法,為后期數(shù)據(jù)庫表的操作打下基礎。MySQL歡迎同學們提問MySQL項目四 數(shù)據(jù)更新掌握插入、修改、刪除數(shù)據(jù)表記錄的方法學習數(shù)據(jù)更新的常用方法學習目標MySQL了解數(shù)據(jù)更新的概念具有使用Navicat工具實現(xiàn)數(shù)據(jù)更新的能力重點、難點MySQL 插入表記錄一一、插入表記錄MySQL1.插入單條記錄into:用

51、在insert關鍵字和表名之間的可選關鍵字,可以省略。字段名列表:指定要插入的字段名,可以省略。如果不寫字段名,表示要向表中的所有字段插入數(shù)據(jù);如果寫部分字段名,表示只為指定的字段插入數(shù)據(jù),多個字段名之間用逗號分隔。值列表:表示為各字段指定一個具體的值,各值之間用逗號分隔,也可以是空值NULL。insert into (字段名列表)values (值列表);語法格式:參數(shù)說明:一、插入表記錄MySQL1.插入單條記錄insert into student(stuNo,name,sex,birthday,spec,phone,address)values (190001,劉海朋,男,2002-1

52、0-22,電子商務陜西省西安市);插入完整的一條記錄示例語句:一、插入表記錄MySQL1.插入單條記錄insert into student(stuNo,name,sex,address)values (190002,孫婷婷,女,四川省成都市);插入不完整的一條記錄示例語句:注意:如果某些字段已經(jīng)限制其約束為not null時,在插入時這部分字段是必須得插入的一、插入表記錄MySQL1.插入單條記錄insert into student(stuNo,name,sex,birthday,spec,phone,address)values (190003,張曉飛,男,20

53、02-07-15,電子商務default);插入帶有字段默認值的記錄示例語句:注意:其家庭住址字段address采用默認值為“地址不詳”一、插入表記錄MySQL1.插入單條記錄insert into student(stuNo,name,sex,birthday,spec,phone,address)values (190001,劉海朋,男,2002-10-22,電子商務陜西省西安市);插入已存在主鍵值的記錄示例語句:注意:執(zhí)行上述命令后,會彈出錯誤信息“ERROR 1062 (23000): Duplicate entry 190001 f

54、or key PRIMARY”,表示系統(tǒng)不允許再重復插入;若更改stuNo為190020,則允許插入;再次證明主鍵具有唯一性一、插入表記錄MySQL2.插入多條記錄字段名列表:此處的用法和插入單條記錄的用法完全一樣。值列表:表示為各字段指定一個具體的值,各值之間用逗號分隔,也可以是空值NULL。insert into (字段名列表)values (值列表),(值列表),(值列表);語法格式:參數(shù)說明:一、插入表記錄MySQL2.插入多條記錄insert into student(stuNo,name,sex,birthday,spec,phone,address)values (190004,

55、楊航,男,2001-11-21,電子商務天津市和平區(qū)),(190005,王先平,女,2002-05-10,電子商務山東省濟南市),(190006,張月,女,2003-07-11,電子商務陜西省西安市);插入多條記錄示例語句:MySQL 修改表記錄二二、修改表記錄MySQL1.單表數(shù)據(jù)修改:用在update和set關鍵字之間,表示要更新的表的名字,不可以省略。字段名1=值1:表示將該字段的值修改為一個新的值,如果有多個字段的值需要同時修改,則用逗號分隔。值可以是常量、變量或表達式。where條件:指定要修改記錄的條件,

56、可以省略。如果不寫條件,則表示將表中所有記錄的字段值修改成新的值;若寫了條件,則只修改滿足條件的記錄指定字段的值。update set 字段名1=值1,字段名2=值2,where 條件;語法格式:參數(shù)說明:二、修改表記錄MySQL1.單表數(shù)據(jù)修改update studentset spec=電子商務where stuNo=190002;單表數(shù)據(jù)修改示例語句:update studentset birthday=2001/09/04,phonehere stuNo=190002;二、修改表記錄MySQL2.多表數(shù)據(jù)修改:表示要更新的表的名字,多個表之間用逗號分隔。表名.

57、字段名1=值1:表示將對應表名中字段的值修改為一個新的值,如果有多個字段的值需要同時修改,則用逗號分隔。這里的字段名因為涉及到多張表,需要用“表名.字段名”表示。where條件:表示指定要修改記錄的連接條件。update set 表名.字段名1=值1,表名.字段名2=值2,where 條件;語法格式:參數(shù)說明:二、修改表記錄MySQL2.多表數(shù)據(jù)修改update student,newstudentset student.address=山東省濟南市,newstudent.address=山東省濟南市where student.stuNo=190003 and newstudent.stuNo

58、=190003;多表數(shù)據(jù)修改示例語句:MySQL 刪除表記錄三三、刪除表記錄MySQL1.使用delete語句刪除表記錄:表示要刪除記錄對應表的名字。where 條件:表示指定要刪除記錄的條件。delete from where 條件;語法格式:參數(shù)說明:delete from student where stuNo=190020;示例語句:三、刪除表記錄MySQL2.使用truncate語句刪除表記錄truncate table ;語法格式:truncate table newstudent;示例語句:注意:由于truncate table語句會刪除數(shù)據(jù)表中的所有數(shù)據(jù),并且無法恢復,因此使用

59、truncate table語句時一定要十分謹慎。MySQL 使用Navicat工具實現(xiàn)更新記錄四四、使用Navicat工具實現(xiàn)更新記錄MySQL1.使用Navicat插入記錄在左側(cè)“連接樹”工具欄中右鍵student表,單擊“打開表”;圖1 打開student表中數(shù)據(jù)四、使用Navicat工具實現(xiàn)更新記錄MySQL1.使用Navicat插入記錄單擊左下角的“+”新建記錄按鈕,即可創(chuàng)建新記錄;圖2 添加新記錄至student表四、使用Navicat工具實現(xiàn)更新記錄MySQL1.使用Navicat插入記錄單擊左下角的“+”新建記錄按鈕,即可創(chuàng)建新記錄;圖3 添加新記錄至student表四、使用N

60、avicat工具實現(xiàn)更新記錄MySQL1.使用Navicat插入記錄在新建的記錄行中錄入學號為“190007”的記錄并單擊點擊工作區(qū)下方“”;圖4 成功添加記錄至student表四、使用Navicat工具實現(xiàn)更新記錄MySQL2.使用Navicat修改記錄打開需要修改記錄的student表,在需要修改的記錄位置點擊鼠標左鍵;圖5 單擊需要修改的記錄四、使用Navicat工具實現(xiàn)更新記錄MySQL2.使用Navicat修改記錄輸入需要修改的新值,點擊工作區(qū)下方“”按鈕;圖6 查看student表中修改后的數(shù)據(jù)四、使用Navicat工具實現(xiàn)更新記錄MySQL3.使用Navicat刪除記錄在打開的s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論