版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
MySQL項目三數(shù)據(jù)定義2019年7月學(xué)習(xí)數(shù)據(jù)表的約束學(xué)習(xí)目標(biāo)MySQL了解什么是SQL語言掌握數(shù)據(jù)庫與數(shù)據(jù)表的創(chuàng)建方法具有使用Navicat工具完成數(shù)據(jù)定義的能力重點、難點MySQL
SQL語言概述一一、SQL語言概述MySQL1.什么是SQL結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)是最重要的關(guān)系數(shù)據(jù)庫操作語言,經(jīng)過多年的發(fā)展,SQL語言已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。一、SQL語言概述MySQL2.SQL的組成數(shù)據(jù)操縱語言(DML)數(shù)據(jù)查詢語言DQL用來插入、修改和刪除數(shù)據(jù)庫中的數(shù)據(jù)用來對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢使用SELECT命令完成查詢用來建立數(shù)據(jù)庫、建立表等,主要包括CREATEDATABASE、CREATETABLE等用來控制數(shù)據(jù)庫組件的存取許可、存取權(quán)限等,主要包括GRANT、REVODE命令數(shù)據(jù)控制語言DCl數(shù)據(jù)定義語言DDLMySQL創(chuàng)建數(shù)據(jù)庫二二、創(chuàng)建數(shù)據(jù)庫MySQL1.創(chuàng)建數(shù)據(jù)庫語句:createdatabasemystudent;圖1創(chuàng)建數(shù)據(jù)庫mystudent注意:在MySQL中,所有命令均以分號結(jié)束“;”,只有極少數(shù)命令可以省略不寫分號。二、創(chuàng)建數(shù)據(jù)庫MySQL2.查看數(shù)據(jù)庫語句:showdatabase;圖2
查看數(shù)據(jù)庫信息注意:在MySQL中,數(shù)據(jù)庫的命名不區(qū)分大小寫。二、創(chuàng)建數(shù)據(jù)庫MySQL3.選擇數(shù)據(jù)庫語句:usemystudent;圖3
選擇數(shù)據(jù)庫二、創(chuàng)建數(shù)據(jù)庫MySQL4.修改數(shù)據(jù)庫編碼方式語法格式:alterdatabase數(shù)據(jù)庫名defaultcharacterset編碼方式collate編碼方式_bin;圖4
修改編碼格式語句:alterdatabasemystudentdefaultcharactersetutf8collateutf8_bin;二、創(chuàng)建數(shù)據(jù)庫MySQL5.刪除數(shù)據(jù)庫語法格式:dropdatabase數(shù)據(jù)庫名;圖5
刪除數(shù)據(jù)庫語句:dropdatabasetestdb;MySQL創(chuàng)建數(shù)據(jù)表三三、創(chuàng)建數(shù)據(jù)表MySQL1.數(shù)據(jù)類型數(shù)值型:數(shù)值型是指可以參與算術(shù)運算的類型,它可以分為整型和浮點型,其中浮點型又包括單精度浮點型和雙精度浮點型數(shù)據(jù)類型字節(jié)數(shù)范圍用途TINYINT1有符號值:-128~127用于表示小整數(shù)值,如年齡。INT4有符號值:-231~231-1用于表示大整數(shù)值,如學(xué)生人數(shù)。FLOAT4有符號值:-3.402823466E+38~1.175494351E-38用于表示單精度浮點數(shù)值,浮點數(shù)即小數(shù)。如成績。DOUBLE8有符號值:-1.7976931348623157E+308~2.2250738585072014E-308表示雙精度浮點數(shù)值。與單精度浮點數(shù)的主要區(qū)別是雙精度型表示范圍更大。如科學(xué)計算。表1常用數(shù)值類型三、創(chuàng)建數(shù)據(jù)表MySQL1.數(shù)據(jù)類型字符串型:字符串類型用于保存一系列的字符,這些字符在使用時采用單引號或雙引號括起來表2常用字符串類型數(shù)據(jù)類型大小使用說明CHAR0~255字符表示固定長度字符串VARCHAR0~65536字符表示可變長度字符串,該類型使用較為普遍TINYTEXT0~255字節(jié)表示短文本字符串TEXT0~65535字節(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,如2019-06-01TIME3時間值,HH:MM:SS,如12:30:22DATETIME8混合日期和時間值,YYYY-MM-DDHH:MM:SS,如2019-06-0112:30:22TIMESTAMP4混合日期和時間值,時間戳,1970-01-0100:00:00/2038(該類型的取值必須在1970年~2038年之間)三、創(chuàng)建數(shù)據(jù)表MySQL2.SQL中的運算符算術(shù)運算符:包括:+(加)、-(減)、*(乘)、/(除)、%(取模)表4算術(shù)運算符運算符用法說明+加法運算,求兩個變量或表達(dá)式的和-減法運算,求兩個變量或表達(dá)式的差*乘法運算,求兩個變量或表達(dá)式的積/除法運算,求兩個變量或表達(dá)式的商%取模運算,求兩個變量或表達(dá)式相除的余數(shù),如5%2的值為1三、創(chuàng)建數(shù)據(jù)表MySQL2.SQL中的運算符比較運算符:用來比較兩個變量或表達(dá)式的大小關(guān)系表5比較運算符運算符用法說明>大于,如3>2,值為true<小于,如3<2,值為false=等于,如3=2,值為false>=大于等于,如3>=2,值為true<=小于等于,如3<=2,值為false<>不等于,如3<>2,值為true三、創(chuàng)建數(shù)據(jù)表MySQL2.SQL中的運算符邏輯運算符:用來對某個條件進行判斷,以獲得一個真或假的值表6邏輯運算符運算符用法說明NOT或!非運算或取反運算,如:?。ǔ煽?lt;60),表示所有成績及格的學(xué)生AND或&&與運算,如:成績>=80&&成績<=100,表示所有成績80至100分的學(xué)生OR或||或運算,如:成績>=80||成績<60,表示成績大于等于80或不及格的學(xué)生三、創(chuàng)建數(shù)據(jù)表MySQL3.建立數(shù)據(jù)表數(shù)據(jù)表名指需要創(chuàng)建的數(shù)據(jù)表的名字。字段名指數(shù)據(jù)表中的列名。數(shù)據(jù)類型指表中列的類型,用于指定可以存儲指定類型格式的數(shù)據(jù)。createtable數(shù)據(jù)表名(字段1數(shù)據(jù)類型,字段2數(shù)據(jù)類型,……字段n數(shù)據(jù)類型);語法格式:參數(shù)說明:三、創(chuàng)建數(shù)據(jù)表MySQL3.建立數(shù)據(jù)表createtablestudent(stuNochar(10),namevarchar(50),sexchar(2),birthdaydate,specvarchar(30),phonevarchar(11),addressvarchar(255));示例語句:三、創(chuàng)建數(shù)據(jù)表MySQL4.查看數(shù)據(jù)表查看所有表語句:showtables;圖6
查看數(shù)據(jù)表三、創(chuàng)建數(shù)據(jù)表MySQL4.查看數(shù)據(jù)表查看指定表的結(jié)構(gòu)語法格式:describe表名;(也可簡寫為desc表名;)圖7
查看指定表的結(jié)構(gòu)語句:descstudent;三、創(chuàng)建數(shù)據(jù)表MySQL4.查看數(shù)據(jù)表查看指定表的定義信息語法格式:showcreatetable數(shù)據(jù)表名;圖8
查看指定表的定義信息語句:showcreatetablestudent\G三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表altertable舊表名rename新表名;修改表名語法格式:修改表名示例語句:altertablestudentrenametb_student;三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表altertable表名change舊字段名新字段名新數(shù)據(jù)類型;修改字段名語法格式:修改字段名示例語句:altertabletb_studentchangenamestuNamevarchar(50);三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表altertable表名modify字段名新數(shù)據(jù)類型;修改字段類型語法格式:修改字段類型示例語句:altertabletb_studentmodifystuNovarchar(10);三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表altertable表名add新字段名數(shù)據(jù)類型[FIRST|AFTER已經(jīng)存在的字段名];添加字段語法格式:添加字段示例語句:altertabletb_studentaddpoliticsvarchar(20);三、創(chuàng)建數(shù)據(jù)表MySQL5.修改數(shù)據(jù)表altertable表名drop字段名;刪除字段語法格式:刪除字段示例語句:altertabletb_studentdroppolitics;三、創(chuàng)建數(shù)據(jù)表MySQL5.刪除數(shù)據(jù)表droptable表名;刪除數(shù)據(jù)表語法格式:刪除數(shù)據(jù)表示例語句:droptabletb_student;MySQL數(shù)據(jù)表的約束四四、數(shù)據(jù)表的約束MySQL表7MySQL中數(shù)據(jù)庫表的常用約束約束名稱含義及功能主鍵約束PRIMARYKEY主鍵,又稱為主碼,一個表中只允許有一個主鍵,能夠唯一地標(biāo)識表中的一條記錄。主鍵約束要求主鍵字段中的數(shù)據(jù)唯一,不允許為空。外鍵約束FOREIGNKEY外鍵約束是在兩個表之間建立關(guān)聯(lián)。關(guān)聯(lián)指的是在關(guān)系數(shù)據(jù)庫中,相關(guān)表之間的聯(lián)系。一個表可以有一個或多個外鍵,外鍵字段中的值允許為空,若不為空值,則每一個外鍵值必須等于另外一個表中主鍵的某個值。非空約束NOTNULL非空約束指字段的值不能為空。在同一個數(shù)據(jù)庫表中可以定義多個非空字段。唯一約束UNIQUE唯一約束要求該列值唯一,不能重復(fù)。默認(rèn)約束DEFAULT在用戶插入新的數(shù)據(jù)行時,如果沒有為該列指定數(shù)據(jù),那么系統(tǒng)會自動將默認(rèn)值賦給該列,默認(rèn)值可以是空值(NULL)或者自行指定。四、數(shù)據(jù)表的約束MySQL1.主鍵約束字段名數(shù)據(jù)類型primarykey;主鍵約束語法格式:刪除主鍵語法格式:altertable表名dropprimarykey;四、數(shù)據(jù)表的約束MySQL1.主鍵約束altertable表名modify字段名數(shù)據(jù)類型primarykey;為已經(jīng)存在的表添加主鍵語法格式:四、數(shù)據(jù)表的約束MySQL1.主鍵約束primarykey(字段名1,字段名2,……,字段名n);創(chuàng)建表時指定復(fù)合主鍵語法格式:創(chuàng)建表時指定復(fù)合主鍵示例語句:createtablescore(stuNochar(10),couNochar(10),resultint,primarykey(stuNo,couNo));四、數(shù)據(jù)表的約束MySQL1.主鍵約束altertable表名dropprimarykey;刪除復(fù)合主鍵語法格式:刪除復(fù)合主鍵示例語句:altertablescoredropprimarykey;四、數(shù)據(jù)表的約束MySQL1.主鍵約束altertable表名addprimarykey(字段名1,字段名2……,字段名n);為已經(jīng)存在的表添加復(fù)合主鍵語法格式:為已經(jīng)存在的表添加復(fù)合主鍵示例語句:altertablescoreaddprimarykey(stuNo,couNo);四、數(shù)據(jù)表的約束MySQL2.外鍵約束Constraint外鍵名foreignkey(外鍵字段)references關(guān)聯(lián)表名(關(guān)聯(lián)字段);創(chuàng)建表時添加外鍵約束語法格式:創(chuàng)建表時添加外鍵約束示例語句:droptablescore;createtablescore(stuNochar(10),couNochar(10),resultint,primarykey(stuNo,couNo),constraintfk_student_score1foreignkey(stuNo)referencesstudent(stuNo));四、數(shù)據(jù)表的約束MySQL2.外鍵約束altertable表名dropforeignkey外鍵名;刪除外鍵約束語法格式:刪除外鍵約束示例語句:altertablescoredropforeignkeyfk_student_score1;四、數(shù)據(jù)表的約束MySQL2.外鍵約束altertable表名addconstraint外鍵名foreignkey(外鍵字段)references關(guān)聯(lián)表名(關(guān)聯(lián)字段);為已存在的表添加外鍵約束語法格式:為已存在的表添加外鍵約束示例語句:altertablescoreaddconstraintfk_student_score1foreignkey(stuNo)referencesstudent(stuNo);四、數(shù)據(jù)表的約束MySQL3.非空約束字段名數(shù)據(jù)類型notnull;創(chuàng)建表時添加非空約束語法格式:創(chuàng)建表時添加非空約束示例語句:droptablestudent;createtablestudent(stuNochar(10)primarykey,namevarchar(50),sexchar(2)notnull,birthdaydate,specvarchar(30),phonevarchar(11),addressvarchar(255));四、數(shù)據(jù)表的約束MySQL3.非空約束altertable表名modify字段名數(shù)據(jù)類型;刪除非空約束語法格式:刪除非空約束示例語句:altertablestudentmodifysexchar(2);四、數(shù)據(jù)表的約束MySQL3.非空約束altertable表名modify字段名數(shù)據(jù)類型notnull;為已經(jīng)存在的表添加非空約束語法格式:為已經(jīng)存在的表添加非空約束示例語句:altertablestudentmodifysexchar(2)notnull;四、數(shù)據(jù)表的約束MySQL4.唯一約束字段名數(shù)據(jù)類型unique;創(chuàng)建表時添加唯一約束語法格式:創(chuàng)建表時添加唯一約束示例語句:createtablecourse(couNochar(10)primarykey,couNamevarchar(50)unique,teachervarchar(50));四、數(shù)據(jù)表的約束MySQL4.唯一約束altertable表名dropindex字段名;刪除唯一約束語法格式:刪除唯一約束示例語句:altertablecoursedropindexcouName;四、數(shù)據(jù)表的約束MySQL4.唯一約束altertable表名modify字段名數(shù)據(jù)類型unique;為已經(jīng)存在的表添加唯一約束語法格式:為已經(jīng)存在的表添加唯一約束示例語句:altertablecoursemodifycouNamevarchar(50)unique;四、數(shù)據(jù)表的約束MySQL5.默認(rèn)約束字段名數(shù)據(jù)類型default默認(rèn)值;創(chuàng)建表時添加默認(rèn)約束語法格式:創(chuàng)建表時添加默認(rèn)約束示例語句:droptablestudent;createtablestudent(stuNochar(10)primarykey,namevarchar(50),sexchar(2)notnull,birthdaydate,specvarchar(30),phonevarchar(11),addressvarchar(255)default'地址不詳');四、數(shù)據(jù)表的約束MySQL5.默認(rèn)約束altertable表名modify字段名數(shù)據(jù)類型;刪除默認(rèn)約束語法格式:刪除默認(rèn)約束示例語句:altertablestudentmodifyaddressvarchar(255);四、數(shù)據(jù)表的約束MySQL5.默認(rèn)約束altertable表名modify字段名數(shù)據(jù)類型default默認(rèn)值;為已存在的表時添加默認(rèn)約束語法格式:為已存在的表時添加默認(rèn)約束示例語句:altertablestudentmodifyaddressvarchar(255)default'地址不詳';四、數(shù)據(jù)表的約束MySQL6.CHECK約束CHECK(表達(dá)式)CHECK約束語法格式:CHECK約束示例語句:droptablestudent;createtablestudent(stuNochar(10)primarykey,namevarchar(50),sexchar(2)notnullcheck(sexin('男','女')),birthdaydate,specvarchar(30),phonevarchar(11),addressvarchar(255));MySQL使用Navicat工具實現(xiàn)數(shù)據(jù)定義五五、使用Navicat工具實現(xiàn)數(shù)據(jù)定義MySQL1.使用Navicat創(chuàng)建數(shù)據(jù)庫圖9創(chuàng)建數(shù)據(jù)庫在左側(cè)“連接樹”工具欄中右鍵“MYSQL”服務(wù)器連接,單擊“新建數(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ū)中選擇“新建表”按鈕五、使用Navicat工具實現(xiàn)數(shù)據(jù)定義MySQL2.使用Navicat創(chuàng)建數(shù)據(jù)表圖12創(chuàng)建數(shù)據(jù)表student在“新建表”對話框中依次輸入表中各字段的名稱、類型、長度等信息,輸入完成后,點擊“保存”按鈕,根據(jù)提示輸入表名為“student”,單擊“確定”MySQL任務(wù)實施六六、任務(wù)實施MySQL1.創(chuàng)建學(xué)生成績管理數(shù)據(jù)庫CREATEDATABASEmystudent;語句:六、任務(wù)實施MySQL2.在學(xué)生成績管理數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表droptablestudent;create
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川工程職業(yè)技術(shù)學(xué)院《近距離無線通信技術(shù)課程設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 柴油清倉出售合同范例
- 項目食品開發(fā)合同范例
- 版權(quán)設(shè)計合同范例
- 贈與合同范例規(guī)定
- 四川大學(xué)《工程項目管理課程設(shè)計B》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川財經(jīng)職業(yè)學(xué)院《電子測試技術(shù)(下)》2023-2024學(xué)年第一學(xué)期期末試卷
- 隧道完工出售合同范例
- 轉(zhuǎn)租補充合同范例
- 食品物流服務(wù)合同范例
- 三年級數(shù)學(xué)計算題專項練習(xí)匯編及答案集錦
- 33-提高附著式升降腳手架首層防護一次驗收合格率(4-3)
- 《礦山隱蔽致災(zāi)因素普查規(guī)范》解讀培訓(xùn)
- 小學(xué)2024年法制教育工作計劃x
- (DB45T 2524-2022)《高速公路瀝青路面施工技術(shù)規(guī)范》
- 醫(yī)療溝通技巧
- 子宮動脈栓塞手術(shù)
- 2024年世界職業(yè)院校技能大賽中職組“節(jié)水系統(tǒng)安裝與維護組”賽項考試題庫(含答案)
- 紙袋制造機產(chǎn)業(yè)深度調(diào)研及未來發(fā)展現(xiàn)狀趨勢
- 2024年職業(yè)病危害防治培訓(xùn)試題
- 維修作業(yè)區(qū)修理工上崗試卷+答案
評論
0/150
提交評論