版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)數(shù)據(jù)的定義語(yǔ)言第1頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月關(guān)系數(shù)據(jù)的定義SQL語(yǔ)言數(shù)據(jù)的定義第2頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月SQL概述SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言SQL是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言第3頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月SQL語(yǔ)言功能概述四部分:數(shù)據(jù)定義功能、數(shù)據(jù)控制功能、數(shù)據(jù)查詢功能和數(shù)據(jù)操縱功能。
第4頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月二、數(shù)據(jù)類型SQL中域的概念用數(shù)據(jù)類型來(lái)實(shí)現(xiàn)定義表的屬性時(shí)需要指明其數(shù)據(jù)類型及長(zhǎng)度選用哪種數(shù)據(jù)類型取值范圍要做哪些運(yùn)算第5頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月二、數(shù)據(jù)類型數(shù)據(jù)類型含義CHAR(n)長(zhǎng)度為n的定長(zhǎng)字符串VARCHAR(n)最大長(zhǎng)度為n的變長(zhǎng)字符串INT長(zhǎng)整數(shù)(也可以寫作INTEGER)SMALLINT短整數(shù)NUMERIC(p,d)定點(diǎn)數(shù),由p位數(shù)字(不包括符號(hào)、小數(shù)點(diǎn))組成,小數(shù)后面有d位數(shù)字REAL取決于機(jī)器精度的浮點(diǎn)數(shù)DoublePrecision取決于機(jī)器精度的雙精度浮點(diǎn)數(shù)FLOAT(n)浮點(diǎn)數(shù),精度至少為n位數(shù)字DATE日期,包含年、月、日,格式為YYYY-MM-DDTIME時(shí)間,包含一日的時(shí)、分、秒,格式為HH:MM:SS第6頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月數(shù)據(jù)定義SQL的數(shù)據(jù)定義功能:模式定義、表定義、視圖和索引的定義
第7頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月數(shù)據(jù)庫(kù)的定義數(shù)據(jù)庫(kù)定義的語(yǔ)法格式:CREATEDATABASE<數(shù)據(jù)庫(kù)名>例:創(chuàng)建一個(gè)學(xué)生選課數(shù)據(jù)庫(kù),取名為StudentInfo關(guān)鍵字CREATEDATABASEStudentInfo
第8頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月數(shù)據(jù)庫(kù)的刪除數(shù)據(jù)庫(kù)刪除的語(yǔ)法格式:DROPDATABASE<數(shù)據(jù)庫(kù)名>例:將數(shù)據(jù)庫(kù)StudentInfo刪除關(guān)鍵字DROPDATABASEStudentInfo
第9頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月定義基本表使用SQL語(yǔ)言中的CREATETABLE語(yǔ)句實(shí)現(xiàn),其一般格式為:CREATETABLE<表名>(
<列名><數(shù)據(jù)類型>[列級(jí)完整性約束定義]{,<列名><數(shù)據(jù)類型>[列級(jí)完整性約束定義]…}[,表級(jí)完整性約束定義])
第10頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月學(xué)生學(xué)號(hào)姓名性別系別年齡課程選課課程號(hào)課程名學(xué)分成績(jī)關(guān)系模式第11頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月關(guān)系模式學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系)課程(課程號(hào),課程名,學(xué)分)選課(學(xué)號(hào),課程號(hào),成績(jī))第12頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月關(guān)系列名說(shuō)明數(shù)據(jù)類型約束說(shuō)明Sno學(xué)號(hào)字符串,長(zhǎng)度為10主鍵Sname姓名字符串,長(zhǎng)度為8非空值Ssex性別字符串,長(zhǎng)度為1非空值Sage年齡整數(shù)允許空值Sdept所在系字符串,長(zhǎng)度為15非空值列名說(shuō)明數(shù)據(jù)類型約束說(shuō)明Cno課程號(hào)字符串,長(zhǎng)度為6主鍵Cname課程名字符串,長(zhǎng)度為20非空值Credits學(xué)分整數(shù)允許為空值列名說(shuō)明數(shù)據(jù)類型約束說(shuō)明Sno學(xué)號(hào)字符串,長(zhǎng)度為10主鍵Cno課程號(hào)字符串,長(zhǎng)度為6主鍵Grade成績(jī)整數(shù)允許為空值Courses表students表
SC表第13頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月學(xué)生表Student[例5]建立“學(xué)生”表Student,學(xué)號(hào)是主碼。
CREATETABLEStudent (SnoCHAR(10)PRIMARYKEY,/*列級(jí)完整性約束條件*/SnameCHAR(8),
SsexCHAR(2),
SageSMALLINT,
SdeptCHAR(15));
主碼第14頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月課程表Course
[例6]建立一個(gè)“課程”表CourseCREATETABLECourse(CnoCHAR(6)PRIMARYKEY,
CnameCHAR(20),
CcreditSMALLINT,
);第15頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月學(xué)生選課表SC[例7]建立一個(gè)“學(xué)生選課”表SC CREATETABLESC (SnoCHAR(10),
CnoCHAR(6),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
);如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)。
第16頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月在列級(jí)完整性約束定義處可以定義的約束NOTNULL:限制列取值非空。 PRIMARYKEY:指定本列為主碼。FOREIGNKEY:定義本列為引用其他表的外碼。使用形式為:[FOREIGNKEY(<外碼列名>)]REFERENCES<外表名>(<外表列名>
)
UNIQUE:限制列取值不重復(fù)。CHECK:限制列的取值范圍。DEFAULT:給定列的默認(rèn)值。第17頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月約束定義
①列取值非空約束
<列名><類型>NOTNULL
例:snamechar(10)NOTNULL第18頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月約束定義(續(xù))②表主碼約束在定義列時(shí)定義主碼(僅用于單列主碼)列定義PRIMARYKEY例:SNOchar(7)PRIMARYKEY在定義完列時(shí)定義主碼(用于單列或多列主碼,表級(jí)約束)PRIMARYKEY
(<列名序列>)
例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,CNO)第19頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月約束定義(續(xù))③外碼引用約束指明本表外碼列引用的表及表中的主碼列。
[FOREIGNKEY(<本表列名>)]REFERENCES<外表名>(<外表主碼列名>)例:
FOREIGNKEY(sno)
REFERENCES學(xué)生表(sno)
第20頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月約束定義(續(xù))④默認(rèn)值約束格式:DEFAULT默認(rèn)值例:定義系的默認(rèn)值為“計(jì)算機(jī)系”。DEFAULT‘計(jì)算機(jī)系’第21頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月約束定義(續(xù))⑤CHECK約束格式:CHECK(約束表達(dá)式)例:定義成績(jī)大于等于0。
CHECK(grade>=0)第22頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月約束定義(續(xù))⑥UNIQUE約束在列級(jí)約束定義(僅用于單列約束)列定義UNIQUE例:SNAMEchar(7)UNIQUE在表級(jí)約束定義(用于單列或多列組合約束)UNIQUE
(<列名序列>)
例:UNIQUE(SNO,CNO)第23頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月關(guān)系列名說(shuō)明數(shù)據(jù)類型約束說(shuō)明Sno學(xué)號(hào)字符串,長(zhǎng)度為10主鍵Sname姓名字符串,長(zhǎng)度為8取值唯一Ssex性別字符串,長(zhǎng)度為1取“男”或“女”
Sage年齡整數(shù)取值范圍為(15,45)Sdept所在系字符串,長(zhǎng)度為15默認(rèn)值“計(jì)算機(jī)系”
列名說(shuō)明數(shù)據(jù)類型約束說(shuō)明Cno課程號(hào)字符串,長(zhǎng)度為6主鍵Cname課程名字符串,長(zhǎng)度為20非空值Credits學(xué)分整數(shù)取值范圍為(0,20)
列名說(shuō)明數(shù)據(jù)類型約束說(shuō)明Sno學(xué)號(hào)字符串,長(zhǎng)度為10外鍵,參照students的主鍵
Cno課程號(hào)字符串,長(zhǎng)度為6外鍵,參照courses的主鍵
Grade成績(jī)整數(shù)允許為空值Courses表students表
SC表主鍵為(Sno,Cno)
第24頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月創(chuàng)建學(xué)生表CREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)CHECK(Ssex='男'ORSsex='女'),SagetinyintCHECK(Sage>=15ANDSage<=45),Sdeptchar(20)DEFAULT‘計(jì)算機(jī)系')第25頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月創(chuàng)建課程表CREATETABLECourse(Cnochar(10)NOTNULL,Cnamechar(20)NOTNULL,CcreditintCHECK(Ccredit>0),SemesterintCHECK(Semester>0),PeriodintCHECK(Period>0),PRIMARYKEY(Cno))
第26頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月練習(xí)P745第27頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月刪除表當(dāng)確信不再需要某個(gè)表時(shí),可以將其刪除刪除表時(shí)會(huì)將與表有關(guān)的所有對(duì)象一起刪掉,包括表中的數(shù)據(jù)。刪除表的語(yǔ)句格式為:
DROPTABLE<表名>例:刪除test表的語(yǔ)句為:DROPTABLEtest第28頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月數(shù)據(jù)的定義基本表的定義與刪除修改表結(jié)構(gòu)第29頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月修改表結(jié)構(gòu)在定義完表之后,如果需求有變化,比如添加列、刪除列或修改列定義,可以使用ALTERTABLE語(yǔ)句實(shí)現(xiàn)。ALTERTABLE語(yǔ)句可以對(duì)表添加列、刪除列、修改列的定義、定義主碼、外碼,也可以添加和刪除約束。第30頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月修改表結(jié)構(gòu)語(yǔ)法ALTERTABLE<表名>
[ALTERCOLUMN<列名><新數(shù)據(jù)類型>]|[ADD<列名><數(shù)據(jù)類型>|[DROPCOLUMN<列名>]|[ADDPRIMARYKEY(列名[,…n])]|[ADDFOREIGNKEY(列名)REFERNECES表名(列名)]、|[ADDDEFAULT[默認(rèn)值]FOR(列名)]|[ADDCHECK(約束表達(dá)式)]第31頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月示例例.為SC表添加“修課類別”列,此列的定義為:XKLBchar(4)只能為空,或默認(rèn),不能為NOTNULLALTERTABLESCADDXKLBchar(4)NULL
第32頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月示例例3.將新添加的XKLB的類型改為
char(6)。ALTERTABLESCALTERCOLUMNXKLBchar(6)第33頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月示例例4.刪除Course表的XKLB列。ALTERTABLECourseDROPCOLUMNXKLB
第34頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月例題將SC表中的Cno設(shè)置為course表中Cno列的外碼第35頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月練習(xí)按下面要求用SQL語(yǔ)句修改表結(jié)構(gòu)在Students表中插入學(xué)生宿舍號(hào)一列,定義為:Roomchar(6)為Students表中Sage列添加檢查約束,要求Sage的取值范圍為(15,45)將Courses表中的Cname的字符串長(zhǎng)度改為16將Courses表中的Cname的取只設(shè)置為唯一取值刪除Students表中學(xué)生宿舍號(hào)列為SC表中Grade列添加檢查約束,要求Grade的取值范圍為[0,100]第36頁(yè),課件共43頁(yè),創(chuàng)作于2023年2月數(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度材料質(zhì)量保證及售后服務(wù)合同3篇
- 2025年度礦產(chǎn)資源開采土地承包合同書2篇
- 二零二五年度珠寶首飾打蠟保養(yǎng)工程合同3篇
- 2025年度吹填工程合同變更與解除協(xié)議3篇
- 2025年新能源設(shè)備進(jìn)出口合作協(xié)議4篇
- 二零二五年度電梯設(shè)備安全性能測(cè)試與認(rèn)證合同4篇
- 二零二五年度出租車座套廣告投放效果評(píng)估合同3篇
- 二零二五年度網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估與隱患排查服務(wù)合同3篇
- 二零二五年度土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)登記備案合同
- 二零二五年度櫥柜安裝與廚房環(huán)境檢測(cè)服務(wù)合同4篇
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合卷(含答案)
- 2024中國(guó)汽車后市場(chǎng)年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 《人工智能基礎(chǔ)》全套英語(yǔ)教學(xué)課件(共7章)
- GB/T 35613-2024綠色產(chǎn)品評(píng)價(jià)紙和紙制品
- 2022-2023學(xué)年五年級(jí)數(shù)學(xué)春季開學(xué)摸底考(四)蘇教版
- 【螞蟻?!?024中國(guó)商業(yè)醫(yī)療險(xiǎn)發(fā)展研究藍(lán)皮書
評(píng)論
0/150
提交評(píng)論