數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 3.3 SQL的數(shù)據(jù)定義功能_第1頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 3.3 SQL的數(shù)據(jù)定義功能_第2頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 3.3 SQL的數(shù)據(jù)定義功能_第3頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 3.3 SQL的數(shù)據(jù)定義功能_第4頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 3.3 SQL的數(shù)據(jù)定義功能_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

3.3

SQL的數(shù)據(jù)定義功能本章主要內(nèi)容:(1)SQL數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、SQL的主要功能、SQL語(yǔ)法基礎(chǔ)(2)SQL的常用數(shù)據(jù)類型和常用函數(shù)(3)SQL定義功能:創(chuàng)建(Create)、修改(Alter)、刪除(Drop)(4)數(shù)據(jù)更新:插入(Insert)、修改(Update)、刪除(Delete)(5)數(shù)據(jù)查詢:Select<列名>From<表名>Where<條件表達(dá)式>3.3

SQL的數(shù)據(jù)定義功能

SQL的數(shù)據(jù)定義功能包括定義數(shù)據(jù)庫(kù)、基本表、視圖、索引等。由于視圖是基本表的虛擬表,索引是依附基本表的,SQL一般不提供對(duì)視圖、索引的修改功能。用戶如果想修改,可以先刪除,再新建。序號(hào)操作對(duì)象創(chuàng)建修改刪除1數(shù)據(jù)庫(kù)CreateDatabase數(shù)據(jù)庫(kù)名AlterDatabase數(shù)據(jù)庫(kù)名DropDatabase數(shù)據(jù)庫(kù)名2基本表CreateTable表名AlterTable表名DropTable表名

3視圖CreateView視圖名DropView視圖名4索引CreateIndex索引名DropIndex索引名3.3

SQL的數(shù)據(jù)定義功能在SQL語(yǔ)句中,有關(guān)約定符號(hào)及語(yǔ)法規(guī)定的說(shuō)明:(1)語(yǔ)句格式中,尖括號(hào)“<>”中的內(nèi)容,為用戶必須輸入的數(shù)據(jù)庫(kù)對(duì)象名;中括號(hào)“[]”中的內(nèi)容為任選項(xiàng);大括號(hào)“{}”或豎線“|”中的內(nèi)容為必選項(xiàng),即必選其中之一項(xiàng)。

(2)SQL語(yǔ)法中,多個(gè)數(shù)據(jù)項(xiàng)的之間的分隔符為“,”,字符串常數(shù)的界定符為一對(duì)單引號(hào)“’’”,注釋用“/*注釋內(nèi)容*/”。SQL語(yǔ)句的結(jié)束符為分號(hào)“;”。

(3)在SQL語(yǔ)句中,英文字母大小寫均可以,不敏感,一般首寫字母用大寫。所有的約定符號(hào)中,只能在英文輸入狀態(tài)下輸入,不能在中文狀態(tài)下輸入。

1.數(shù)據(jù)庫(kù)的創(chuàng)建3.3.1數(shù)據(jù)庫(kù)(DataBase)的創(chuàng)建、刪除創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法如下,其中,尖括號(hào)

<>為語(yǔ)法格式,表示里面的參數(shù)必須輸入:

Createdatabase<數(shù)據(jù)庫(kù)名>;例3-1在MySQL中,創(chuàng)建一個(gè)名稱為Student的數(shù)據(jù)庫(kù),如圖3-9所示,語(yǔ)句為:3.3.1數(shù)據(jù)庫(kù)(DataBase)的創(chuàng)建、刪除CreateDatabasestudent;/*創(chuàng)建一個(gè)學(xué)生數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名為:student*/數(shù)據(jù)庫(kù)Student創(chuàng)建后的路徑:

2.數(shù)據(jù)庫(kù)的刪除3.3.1數(shù)據(jù)庫(kù)(DataBase)的創(chuàng)建、刪除如果一個(gè)數(shù)據(jù)庫(kù)不需要了,可將其刪除,語(yǔ)法:

Dropdatabase<數(shù)據(jù)庫(kù)名>;

例如,刪除上面創(chuàng)建的student數(shù)據(jù)庫(kù):

Dropdatabasestudent;

一個(gè)數(shù)據(jù)庫(kù)被刪除后,其所含資源都全部被刪除,如果原先沒(méi)有做數(shù)據(jù)庫(kù)備份,則將無(wú)法恢復(fù)。

1.基本表的創(chuàng)建3.3.2基本表(Table)的創(chuàng)建、修改和刪除

CreateTable<表名>/*-----------------表的中文說(shuō)明

-------------------------*/( <列名1><數(shù)據(jù)類型><notnull|null>[default<默認(rèn)值>], <列名2><數(shù)據(jù)類型><notnull|null>[列級(jí)完整性約束條件],…,Constraint<主鍵名>Primarykey(列名1,列名2,…,列名n)/*主鍵定義*/[,Constraint<外鍵名1>Foreignkey(列名1)references<表名(列名1)>]/*外鍵定義*/[,Constraint<外鍵名2>Foreignkey(列名2)references<表名(列名2)>]/*外鍵定義*/);例3-2下面是教學(xué)、借(還)書(shū)數(shù)據(jù)庫(kù)的關(guān)系模式圖,如圖3-10所示。其中,一個(gè)學(xué)生可以選修多門課程,學(xué)生選修的課都有一個(gè)成績(jī),每門課程可被多個(gè)學(xué)生選修,每門課只能安排一個(gè)教師上課,一個(gè)教師可以上多門課。一個(gè)學(xué)生或教師可以借多本書(shū),一本書(shū)可以被多人借,但借出去的書(shū),只有把書(shū)還回來(lái)后,才可以外借。根據(jù)以上情況,創(chuàng)建基本表。3.3.2基本表(Table)的創(chuàng)建、修改和刪除3.3.2基本表(Table)的創(chuàng)建、修改和刪除3.3.2基本表(Table)的創(chuàng)建、修改和刪除12345678910111213CreateTableT/*-------------------------------教師基本信息表

-------------------------------*/(tNochar(4)notnullprimarykey,/*教師編號(hào),設(shè)為主鍵*/tNamevarchar(30)notnull,/*教師姓名*/Title varchar(10)null/*職稱,最后1行不能有逗號(hào)*/);CreateTableC/*-------------------------------課程基本信息表

-------------------------------*/(cNochar(4)notnullprimarykey,/*課程編號(hào)*/cNamevarchar(30)notnull,/*課程名稱*/tNochar(4)null,/*教師編號(hào)*/constraintc_fkforeignkey(tNo)referencesT(tNo)/*定義外鍵,最后1行不能有逗號(hào)*/);3.3.2基本表(Table)的創(chuàng)建、修改和刪除14151617181920212223CreateTableS/*-------------------------------學(xué)生基本信息表

-------------------------------*/(sNochar(8)notnullprimarykey,/*學(xué)號(hào)*/sNamevarchar(30)notnull,/*姓名*/sexchar(1)notnulldefault'M',/*性別:M-男,F(xiàn)-女*/Ageintnotnulldefault0,/*年齡*/dtBirthDatedatenotnull,/*出生日期*/professvarchar(20)null,/*專業(yè)*/check(sexin('M','F'))/*自定義約束:sex只能取M或F*/);3.3.2基本表(Table)的創(chuàng)建、修改和刪除2425262728293031323334353637383940CreateTableSC/*-------------------------------學(xué)生選課信息表

-------------------------------*/(sNochar(8)notnull,/*學(xué)號(hào)*/cNochar(4)notnull,/*課程編號(hào)*/Scoredecimal(6,2)notnulldefault0,/*考試成績(jī)*/Check(Scorebetween0and100),/*MySQL8.0才支持Check功能*/constraintsc_pkprimarykey(sNo,cNo),/*定義主鍵*/constraintsc_fk1foreignkey(sNo)referencesS(sNo),/*定義外鍵:學(xué)號(hào)*/constraintsc_fk2foreignkey(cNo)referencesC(cNo)/*定義外鍵:課程號(hào)*/);CreateTableBook/*--------------------------圖書(shū)基本信息表

----------------------------*/(cBookNochar(8)notnullprimarykey,/*圖書(shū)編號(hào)*/vcBookNamevarchar(60)notnull,/*書(shū)名*/vcPYCode varchar(50)null,/*拼音碼*/cStatus char(1) notnulldefault'1'/*當(dāng)前狀態(tài):1-在庫(kù),2-借出*/);3.3.2基本表(Table)的創(chuàng)建、修改和刪除414243444546474849505152CreateTablesmBorrow/*---------------學(xué)生、教師借(還)書(shū)信息表

-----------------*/(iID intnotnullauto_increment,/*自動(dòng)流水號(hào),從1開(kāi)始,每插入1條記錄加1*/dtBorrowDatedatetimenotnulldefaultnow(), /*借書(shū)日期*/cBookNochar(8)notnull,/*圖書(shū)編號(hào)*/cBorrowNochar(8)notnull,/*借閱人編號(hào)*/cTypechar(1)notnulldefault'1',/*借閱人類別:1-學(xué)生,2-教師*/cReturn char(1) notnulldefault'0',/*是否還書(shū):1-yes,0-no*/dtReturnDatedatetimenull, /*還書(shū)日期*/constraintsmBorrow_pkprimarykey(iID),/*定義主鍵*/constraintsmBorrow_fkforeignkey(cBookNo)referencesBook(cBookNo)/*外鍵:書(shū)號(hào)*/);3.3.2基本表(Table)的創(chuàng)建、修改和刪除基本表創(chuàng)建后的物理文件:2.基本表的修改3.3.2基本表(Table)的創(chuàng)建、修改和刪除隨著應(yīng)用環(huán)境和需求的變化,有時(shí)已經(jīng)投入運(yùn)行的數(shù)據(jù)庫(kù)系統(tǒng),需要修改基本表的結(jié)構(gòu)。例如,某些列的長(zhǎng)度不夠、或約束需要修改、或要增加新的列、或刪除已有的完整性約束等。SQL可通過(guò)AlterTable語(yǔ)句來(lái)完成,其語(yǔ)法為:AlterTable<表名>Add<新列名><數(shù)據(jù)類型><notnull|null>[default<默認(rèn)值>]

/*增加列名*/

AlterTable<表名>Modify<列名><數(shù)據(jù)類型><notnull|null>[default<默認(rèn)值>]

/*修改列名*/AlterTable<表名>Drop<約束條件>/*刪除約束*/3.3.2基本表(Table)的創(chuàng)建、修改和刪除例如,在例3.2中,將課程名稱的長(zhǎng)度修改為50個(gè)字符,語(yǔ)法為:

AltertableCmodifycNamevarchar(50)notnull;

在學(xué)生表中,增加一列:vcMemo,記載學(xué)生的備注信息,語(yǔ)法為:

AltertableSaddvcMemovarchar(250)null;3.3.2基本表(Table)的創(chuàng)建、修改和刪除3.基本表的刪除當(dāng)一張表不再需要時(shí),可用SQL語(yǔ)句Droptable將其刪除。基本表一旦被刪除,依附在該表中的數(shù)據(jù)、約束、索引都將被刪除,且不可恢復(fù)。語(yǔ)法為:

Droptable<表名>[Restrict|Cascade]選項(xiàng)Restrict表示,如果被刪除的表上,存在有約束,則不允許直接刪除,需要先把相關(guān)約束全部刪除;選項(xiàng)Cascade則不需要,它可把表上的相關(guān)約束及表一次性全部刪除。

如果該表是參照表,即它的主鍵是另一表的外鍵,則不允許刪除。必須先把被參照表的外鍵刪除,才允許刪除參照表。3.3.3索引的創(chuàng)建和刪除當(dāng)表的行數(shù)比較大時(shí),數(shù)據(jù)檢索會(huì)比較耗時(shí)。建立索引可以加快數(shù)據(jù)查詢速度

溫馨提示

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

評(píng)論

0/150

提交評(píng)論