版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章:關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL本章學(xué)習(xí)內(nèi)容SQL概述、數(shù)據(jù)庫的體系結(jié)構(gòu)創(chuàng)建及管理數(shù)據(jù)庫管理數(shù)據(jù)表管理表數(shù)據(jù)數(shù)據(jù)庫單表查詢數(shù)據(jù)庫綜合查詢視圖的創(chuàng)建及刪除三、管理數(shù)據(jù)表建立數(shù)據(jù)庫最重要的一步就是創(chuàng)建其中的數(shù)據(jù)表,即決定數(shù)據(jù)庫包括哪些表,每個(gè)表中包含哪些字段,每個(gè)字段的數(shù)據(jù)類型等。創(chuàng)建表的實(shí)質(zhì)就是定義表結(jié)構(gòu)及約束等屬性,在創(chuàng)建數(shù)據(jù)表之前,先要設(shè)計(jì)表,即確定表的名字、所包含的各字段名、字段的數(shù)據(jù)類型、長度、是否可為空值等等,這些屬性構(gòu)成表結(jié)構(gòu)。主要內(nèi)容:常見數(shù)據(jù)類型界面方式下創(chuàng)建及編輯數(shù)據(jù)表命令方式下創(chuàng)建及編輯數(shù)據(jù)表1、常見數(shù)據(jù)類型1)整數(shù)型2)字符型char[(n)]定長字符數(shù)據(jù)類型,其中n定義字符型數(shù)據(jù)的長度,n在1到8000之間,缺省為1。當(dāng)表中的列定義為char(n)類型時(shí),若實(shí)際要存儲的串長度不足n時(shí),則在串的尾部添加空格以達(dá)到長度n,所以char(n)的長度為n。(2)varchar[(n)]變長字符數(shù)據(jù)類型,其中n的規(guī)定與定長字符型char中n完全相同,但這里n表示的是字符串可達(dá)到的最大長度。varchar(n)的長度為輸入的字符串的實(shí)際字符個(gè)數(shù),而不一定是n。3)精確數(shù)值型4)浮點(diǎn)型5)日期時(shí)間類型6)貨幣型7)位型8.二進(jìn)制數(shù)據(jù)類型Binary:其定義形式為binary(n),數(shù)據(jù)的存儲長度是固定的,即n+4字節(jié),當(dāng)輸入的二進(jìn)制數(shù)據(jù)長度小于n時(shí),余下部分填充0。
Varbinary:其定義形式為varbinary(n),數(shù)據(jù)的存儲長度是變化的,它為實(shí)際所輸入數(shù)據(jù)的長度加上4字節(jié)。其它含義同binary。9.特殊數(shù)據(jù)類型Timestamp:亦稱時(shí)間戳數(shù)據(jù)類型,它提供數(shù)據(jù)庫范圍內(nèi)的唯一值,反應(yīng)數(shù)據(jù)庫中數(shù)據(jù)修改的相對順序,相當(dāng)于一個(gè)單調(diào)上升的計(jì)數(shù)器。
Uniqueidentifier:用于存儲一個(gè)16字節(jié)長的二進(jìn)制數(shù)據(jù)類型,它是SQLServer根據(jù)計(jì)算機(jī)網(wǎng)絡(luò)適配器地址和CPU時(shí)鐘產(chǎn)生的唯一號碼而生成的全局唯一標(biāo)識符代碼(GloballyUniqueIdentifier,簡寫為GUID)。10.新增數(shù)據(jù)類型Bigint:用于存儲從-263(-9,223,372,036,854,775,807)到263-1(9,223,372,036,854,775,807)之間的所有正負(fù)整數(shù)。
sql_variant:用于存儲除文本、圖形數(shù)據(jù)和timestamp類型數(shù)據(jù)外的其它任何合法的SQLServer數(shù)據(jù)。table:用于存儲對表或者視圖處理后的結(jié)果集。這種新的數(shù)據(jù)類型使得變量可以存儲一個(gè)表,從而使函數(shù)或過程返回查詢結(jié)果更加方便、快捷。2、界面方式下管理數(shù)據(jù)表主要內(nèi)容:創(chuàng)建數(shù)據(jù)表修改數(shù)據(jù)表刪除數(shù)據(jù)表1打開MicrosoftSQLServer20082創(chuàng)建數(shù)據(jù)庫3創(chuàng)建數(shù)據(jù)表表結(jié)構(gòu)設(shè)置主鍵1打開表設(shè)計(jì)界面
2修改表結(jié)構(gòu)
案例:以學(xué)生-課程數(shù)據(jù)庫為例,創(chuàng)建以下內(nèi)容學(xué)生-課程模式S-T:學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)學(xué)生選課表:SC(Sno,Cno,Grade)Student表學(xué)號Sno姓名Sname性別
Ssex年齡
Sage所在系
Sdept200215121200215122200215123200515125李勇劉晨王敏張立男女女男20191819CSCSMAIS學(xué)生表Student[例]建立“學(xué)生”表Student,學(xué)號是主碼,姓名取值唯一。
SnoCHAR(9)PRIMARYKEY,/*列級完整性約束條件*/SnameCHAR(20)UNIQUE,/*Sname取唯一值*/SsexCHAR(2),
SageSMALLINT,
SdeptCHAR(20)
主碼Course表課程號Cno課程名Cname先行課Cpno學(xué)分Ccredit1234567數(shù)據(jù)庫數(shù)學(xué)信息系統(tǒng)操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)處理PASCAL語言516764243424課程表Course[例]建立一個(gè)“課程”表Course CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40),
CpnoCHAR(4),
CcreditSMALLINT,
FOREIGNKEY(Cpno)REFERENCESCourse(Cno)
先修課Cpno是外碼被參照表是Course被參照列是Cno學(xué)生選課表SC[例]建立一個(gè)“學(xué)生選課”表SC SnoCHAR(9),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
/*主碼由兩個(gè)屬性構(gòu)成,必須作為表級完整性進(jìn)行定義*/ FOREIGNKEY(Sno)REFERENCESStudent(Sno),
/*表級完整性約束條件,Sno是外碼,被參照表是Student*/ FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*表級完整性約束條件,Cno是外碼,被參照表是Course*/
SC表學(xué)號Sno
課程號
Cno
成績
Grade200215121200215121200215121200215122200215122123239285889080界面方式下修改表 當(dāng)創(chuàng)建了一個(gè)表后,隨著應(yīng)用環(huán)境和應(yīng)用需求的變化,有時(shí)需要對表結(jié)構(gòu)、列的屬性進(jìn)行修改,對于一個(gè)已經(jīng)存在的表可以進(jìn)行的修改操作有:
1)更改表名
2)增加字段、刪除字段
3)修改已有字段的屬性(字段名、數(shù)據(jù)類型、長度、是否為空值)界面方式下刪除表查看表屬性SQLServer2008的數(shù)據(jù)表可分為用戶表和系統(tǒng)表兩種類型,用戶表是數(shù)據(jù)庫用戶創(chuàng)建的表,用于存放用戶的數(shù)據(jù),系統(tǒng)表則是SQLServer2008為實(shí)現(xiàn)數(shù)據(jù)庫維護(hù)而創(chuàng)建的表,任何用戶都不應(yīng)該直接修改系統(tǒng)表,否則會導(dǎo)致數(shù)據(jù)庫無法使用。在目錄樹窗口中選中數(shù)據(jù)庫中的“表”項(xiàng)目,即可在內(nèi)容窗口中顯示出該數(shù)據(jù)庫包含的數(shù)據(jù)表。練習(xí)在數(shù)據(jù)庫teacher內(nèi)創(chuàng)建:教師基本情況表(jbqk):教師編號(teacher_no)教師姓名(teacher_name)教師所在部門編號(department_no)教師職稱(teacher_grade)教師上課情況表(skqk):教師編號(teacher_no)所上課程(course_kc)是否專業(yè)課(course_zy)課時(shí)數(shù)(course_ks)班級號(classe_number)總?cè)藬?shù)(total_number)3、命令方式下管理數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表create修改數(shù)據(jù)表alter刪除數(shù)據(jù)表drop例1客房類型表的創(chuàng)建CREATETABLE客房類型(
類型編號char(4)CONSTRAINTpk_lxbhPRIMARYKEYNOTNULL,
名稱varchar(10)UNIQUENOTNULL,
面積float,
床位int,
價(jià)格smallmoneyNOTNULL,
空調(diào)bit,
電視bit,
衛(wèi)生間bit)例2客房信息表的創(chuàng)建CREATETABLE客房信息(
客房號char(6)CONSTRAINTpk_kfbhPRIMARYKEYNOTNULL,
類型編號char(4)CONSTRAINTfk_kfxxlxdmREFERENCES客房類型(類型編號)NOTNULL,
位置varchar(20),
描述varchar(50))例3客戶信息表的創(chuàng)建CREATETABLE客戶信息(
身份證號varchar(18)CONSTRAINTpk_sfzhPRIMARYKEYNOTNULL,
姓名varchar(12)NOTNULL,
電話varchar(15)NOTNULL)例4客房業(yè)務(wù)表的創(chuàng)建CREATETABLE客房業(yè)務(wù)(
客房號char(6)CONSTRAINTfk_kfhywREFERENCES客房信息(客房號)NOTNULL,
入住時(shí)間datetimeNOTNULL,
身份證號varchar(18)CONSTRAINTfk_sfzhywREFERENCES客戶信息(身份證號)NOTNULL,客戶姓名varchar(12)NOTNULL,客戶電話varchar(15)NOTNULL,備注nVarchar(50)NULL)1)創(chuàng)建數(shù)據(jù)表在T-SQL中,用于創(chuàng)建數(shù)據(jù)表的語句是CREATETABLE,該語句的基本語法格式為:創(chuàng)建數(shù)據(jù)表的完整語法格式為:CREATETABLE表名(列名數(shù)據(jù)類型[缺省值][NOTNULL]
[,列名數(shù)據(jù)類型[缺省值][NOTNULL]]….
[,UNIQUE(列名[,列名]….)]
[,PRIMARYKEY(列名[,列名]…)]
[,F(xiàn)OREIGNKEY(列名[,列名]…)REFERENCES 表名(列名[,列名]…)]
[,CKECK(條件)]
)參數(shù)說明:DEFAULT(缺省值):指定列的缺省值;
NOTNULL:列值不能為空值;
UNIQUE:取值唯一的列名;
PRIMARYKEY:主關(guān)鍵字(主碼)列名;
FOREIGNKEY:外部碼列名;
REFERENCES:引用的外部碼的表名和列名
CKECK:指定表級約束條件。練習(xí)1:在數(shù)據(jù)庫student中創(chuàng)建stu_info表,表中包括:學(xué)號、姓名、出生年月、性別、地址、電話號碼、郵編,所在系代號,每月生活補(bǔ)貼等。USEstudentCREATETABLEstu_info(學(xué)號char(10)NOTNULLPRIMARYKEY,
姓名char(8)NOTNULL,
出生年月datetimeNULL,
性別char(2)NOTNULLdefault('女'),
地址char(20),
電話號碼char(12),
郵編char(6),
系代號tinyint,
每月生活補(bǔ)貼money)go創(chuàng)建數(shù)據(jù)表時(shí)使用默認(rèn)值、約束CREATETABLEstu1(stuid CHAR(8)PRIMARYKEY,stuname CHAR(8),stusex CHAR(2)default('男'),stuageintcheck(stuage>=0andstuage<=100)default20,studeptvarchar(30))練習(xí):以本章學(xué)生-課程數(shù)據(jù)庫為例,創(chuàng)建學(xué)生-課程庫及以下內(nèi)容:學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)學(xué)生選課表:SC(Sno,Cno,Grade)學(xué)生表Student建立“學(xué)生”表Student,學(xué)號是主碼,姓名取值唯一。
CREATETABLEStudent (SnoCHAR(9)PRIMARYKEY,/*列級完整性約束條件*/SnameCHAR(20)UNIQUE,/*Sname取唯一值*/SsexCHAR(2),
SageSMALLINT,
SdeptCHAR(20));
主碼課程表Course建立一個(gè)“課程”表CourseCREATETABLECourse(CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40),
CpnoCHAR(4),
CcreditSMALLINT,
FOREIGNKEY(Cpno)REFERENCESCourse(Cno));先修課Cpno是外碼被參照表是Course被參照列是Cno學(xué)生選課表SC建立一個(gè)“學(xué)生選課”表SC CREATETABLESC (SnoCHAR(9),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
/*主碼由兩個(gè)屬性構(gòu)成,必須作為表級完整性進(jìn)行定義*/ FOREIGNKEY(Sno)REFERENCESStudent(Sno),
/*表級完整性約束條件,Sno是外碼,被參照表是Student*/ FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*表級完整性約束條件,Cno是外碼,被參照表是Course*/ );2)修改數(shù)據(jù)表 當(dāng)創(chuàng)建了一個(gè)表后,隨著應(yīng)用環(huán)境和應(yīng)用需求的變化,有時(shí)需要對表結(jié)構(gòu)、列的屬性進(jìn)行修改,對于一個(gè)已經(jīng)存在的表可以進(jìn)行的修改操作有:
1)更改表名
2)增加字段、刪除字段
3)修改已有字段的屬性(字段名、數(shù)據(jù)類型、長度、是否為空值)例1使用ALTER語句添加字段
對數(shù)據(jù)表進(jìn)行字段添加的語法如下:ALTERTABLE數(shù)據(jù)表名ADD字段名字段類型是否為空【例】向客房類型表中添加一個(gè)字段【備注】,類型為nchar,長度為10。USEhotelGOALTERTABLE客房類型ADD[備注]nchar(10)NULLGO執(zhí)行后的查詢結(jié)果例2使用ALTER語句修改字段類型
對數(shù)據(jù)表進(jìn)行字段類型修改的語法如下:ALTERTABLEtable_nameALTERCOLUMNcolumn_namenew_type_name【例】客房類型的【備注】屬性列的字段類型為nchar[10],現(xiàn)在把它修改為ntext類型。具體的Transact-SQL語句如下所示:USEhotelGOALTERTABLE客房類型ALTERCOLUMN[備注]ntextGO執(zhí)行后的結(jié)果例3使用ALTER語句刪除字段
對數(shù)據(jù)表進(jìn)行字段刪除的語法如下:ALTERTABLE數(shù)據(jù)表名DROPCOLUMN字段名【例5-9】對客房類型表刪除剛才添加的字段【備注】。具體的Transact-SQL語句如下所示:USEhotelGOALTERTABLE客房類型DROPCOLUMN[備注]GO執(zhí)行后的結(jié)果T-SQL中對數(shù)據(jù)表
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年外轉(zhuǎn)子電機(jī)項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 五年級數(shù)學(xué)(小數(shù)乘法)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 學(xué)校食品安全工作實(shí)施方案
- 2024年房地產(chǎn)圍擋施工協(xié)議詳盡示例
- 2024年企業(yè)勞動(dòng)協(xié)議格式樣本2
- 保安監(jiān)控系統(tǒng)維修保養(yǎng)協(xié)議樣本文檔
- 2024年專項(xiàng)企業(yè)融資促成協(xié)議示例
- 店面買賣協(xié)議2024年
- 2024年餐飲業(yè)食材采購協(xié)議范本
- 城市出租車2024年度承包協(xié)議樣本
- 2022部編版道德與法治三年級下冊《請到我的家鄉(xiāng)來》教學(xué)設(shè)計(jì)
- 綿陽市高中2022級(2025屆)高三第一次診斷性考試(一診)化學(xué)試卷(含標(biāo)準(zhǔn)答案)
- 北京聯(lián)合大學(xué)《影視作品欣賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 唐詩宋詞人文解讀智慧樹知到期末考試答案章節(jié)答案2024年上海交通大學(xué)
- 《電視攝像》電子教案
- 火龍罐綜合灸療法
- 深圳市中小學(xué)生流感疫苗接種知情同意書
- 射線、直線和角(張冬梅)
- 道路運(yùn)輸達(dá)標(biāo)車輛核查記錄表(貨車)
- 《梁山伯與祝英臺》PPT課件.ppt
- 644523009畢業(yè)設(shè)計(jì)(論文)小型反應(yīng)釜控制系統(tǒng)的仿真設(shè)計(jì)
評論
0/150
提交評論