數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)(共22頁)_第1頁
數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)(共22頁)_第2頁
數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)(共22頁)_第3頁
數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)(共22頁)_第4頁
數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)(共22頁)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上第一章 數(shù)據(jù)庫基礎(chǔ)1數(shù)據(jù)庫系統(tǒng):是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng),常常把數(shù)據(jù)庫有關(guān)的硬件和軟件系統(tǒng)成為數(shù)據(jù)庫系統(tǒng), DBMS的英文全稱DataBase Management System概念模型是指人對(duì)現(xiàn)實(shí)世界的認(rèn)識(shí),抽象成信息數(shù)據(jù)模型是指將現(xiàn)實(shí)世界轉(zhuǎn)換成計(jì)算機(jī)能認(rèn)識(shí)的信息SQL是英文全稱是Structured Query Language2.數(shù)據(jù)庫:數(shù)據(jù)庫就是數(shù)據(jù)的倉庫,由表、關(guān)系以及操作對(duì)象組成3.數(shù)據(jù):是描述事物的符號(hào)記錄(數(shù)字、文字、圖形、圖像、聲音等)4.數(shù)據(jù)庫的作用 存儲(chǔ)大量數(shù)據(jù),方便檢索和訪問 保持?jǐn)?shù)據(jù)信息的一致、完整 共享和安全 通過組合分析,產(chǎn)生新的

2、有用信息5.數(shù)據(jù)庫經(jīng)歷的三個(gè)階段及特點(diǎn)1) 人工管理階段: 數(shù)據(jù)不保存;使用應(yīng)用程序管理數(shù)據(jù);數(shù)據(jù)不共享;數(shù)據(jù)不具有獨(dú)立性。2) 文件系統(tǒng)階段:數(shù)據(jù)可以長期保存;由文件系統(tǒng)管理數(shù)據(jù);共享性差,數(shù)據(jù)冗余大;數(shù)據(jù)獨(dú)立性差。3) 數(shù)據(jù)庫系統(tǒng)階段:數(shù)據(jù)結(jié)構(gòu)化;數(shù)據(jù)共享性高;數(shù)據(jù)獨(dú)立性強(qiáng);數(shù)據(jù)粒度小;獨(dú)立的數(shù)據(jù)操作界面;統(tǒng)一管理和控制6.數(shù)據(jù)模型的分類 層次模型 網(wǎng)絡(luò)模型 關(guān)系模型 用二維表結(jié)構(gòu)表達(dá)實(shí)體集的模型7. E-R圖三個(gè)主要部分1)1.實(shí)體集:在E-R圖中用長方形來表示實(shí)體集,實(shí)體是實(shí)體集的成員。 2) 聯(lián)系: 在E-R圖中用菱形來表示聯(lián)系,聯(lián)系與其涉及的實(shí)體集之間以直線連接, 并在直線端部標(biāo)上

3、聯(lián)系的種類 , (1:1,1:N,M:N)。 3) 屬性: 在E-R圖中用橢圓形來表示實(shí)體集和聯(lián)系的屬性,對(duì)于主鍵碼的屬性, 在屬性名下劃一橫線。8. 繪制E-R圖所需的圖形 1) 長方形框-實(shí)體集(考慮問題的對(duì)象) 2) 菱形框-聯(lián)系(實(shí)體集間聯(lián)系) 3) 橢圓形框-實(shí)體集和聯(lián)系的屬性 4) 直線-連接相關(guān)的聯(lián)系和實(shí)體,并可標(biāo)上聯(lián)系的種類9. E-R圖設(shè)計(jì)原則:真實(shí)性;避免冗余;簡單性10.三大范式 第一范式:在關(guān)系模型中的每一個(gè)具體關(guān)系R中,如果每個(gè)屬性都是不可再分的,則稱關(guān)系(R)屬于第一范式(1NF) 第二范式:如果關(guān)系模式R屬于第一范式,且每一個(gè)非主屬性都完全依賴于主碼,則稱關(guān)系R是

4、屬于第二范式的 第三范式:如果關(guān)系模式R為2NF,并且R中的每個(gè)非主屬性不傳遞依賴于R的主碼,則稱關(guān)系R是屬于第三范式的若要求分解保持函數(shù)依賴,那么模式分解一定能夠達(dá)到BCNF第二章 數(shù)據(jù)庫的安裝1.常見的數(shù)據(jù)庫類型:Access、SQL server2000、2005、2008,Oracle數(shù)據(jù)庫等2. 數(shù)據(jù)庫管理員的工作是:配置數(shù)據(jù)庫服務(wù)器環(huán)境 ;管理數(shù)據(jù)庫的邏輯對(duì)象結(jié)構(gòu); 配置數(shù)據(jù)庫的對(duì)象權(quán)限 ;制定數(shù)據(jù)庫的性能優(yōu)化策略 ;數(shù)據(jù)庫的備份還原策略 ;數(shù)據(jù)庫的異構(gòu)協(xié)同結(jié)構(gòu)3. SQL Server 2008 的版本 Express 適用于無連接的客戶端或獨(dú)立應(yīng)用程序Workgroup 適用于

5、工作組或分支機(jī)構(gòu)操作的數(shù)據(jù)庫Standard 部門級(jí)應(yīng)用程序的數(shù)據(jù)庫服務(wù)器Enterprise 高度可伸縮和高度可用的企業(yè)級(jí)數(shù)據(jù)庫Developer Enterprise 版,但是只授予開發(fā)和測(cè)試用許可Web 供托管公司提供低成本、高伸縮的托管服務(wù),只收取低廉的每月許可費(fèi)Mobile 用于智能手持式設(shè)備的精簡數(shù)據(jù)庫12.掌握SQL Server 2008數(shù)據(jù)庫的安裝與卸載不同的數(shù)據(jù)庫之間若想互相使用數(shù)據(jù)可以采取導(dǎo)入導(dǎo)出的方式進(jìn)行希望完全安裝SQL Server 2008,則應(yīng)選擇典型安裝第三章 數(shù)據(jù)庫的管理1.T-SQL語言分類 DDL(數(shù)據(jù)定義語言)-create(創(chuàng)建)-alter (修改

6、)-drop (刪除)DQL(數(shù)據(jù)查詢語言) -select(查詢) DML(數(shù)據(jù)操作語言)-insert(插入) -update(更新) -delete(刪除) DCL(數(shù)據(jù)控制語言) -revoke(撤銷) -deny(拒絕) -grant(同意、授權(quán))master數(shù)據(jù)庫,記錄所有系統(tǒng)級(jí)信息,記錄其他所有數(shù)據(jù)庫的信息的系統(tǒng)數(shù)據(jù)庫model數(shù)據(jù)庫創(chuàng)建其他所有數(shù)據(jù)庫的模板的系統(tǒng)數(shù)據(jù)庫msdb數(shù)據(jù)庫與sql server 代理,與計(jì)劃任務(wù)和作業(yè)等相關(guān)的系統(tǒng)數(shù)據(jù)庫tempdb數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)庫運(yùn)行時(shí)的臨時(shí)的信息的系統(tǒng)數(shù)據(jù)庫2.數(shù)據(jù)庫文件 主數(shù)據(jù)文件(.mdf):一個(gè)數(shù)據(jù)庫有且只有一個(gè) 輔助數(shù)據(jù)文件(

7、.ndf):根據(jù)需要自由選擇,當(dāng)數(shù)據(jù)庫很大時(shí),可以選擇多個(gè) 日志文件(.ldf):用于存儲(chǔ)恢復(fù)數(shù)據(jù)庫所需的事務(wù)日志信息數(shù)據(jù)庫數(shù)據(jù)文件結(jié)構(gòu)中,最小的存儲(chǔ)單位是頁數(shù)據(jù)庫數(shù)據(jù)文件結(jié)構(gòu)中,管理空間的基本單位是區(qū)SQL SERVER數(shù)據(jù)庫中,每個(gè)表最多有1024個(gè)列標(biāo)識(shí)表中唯一的實(shí)體是主鍵為數(shù)據(jù)表創(chuàng)建索引的目的是提高查詢的檢索性能存儲(chǔ)過程是一組預(yù)先定義并(編譯 )的Transact-SQL語句3.掌握數(shù)據(jù)庫的創(chuàng)建及修改(圖形化及代碼) 修改數(shù)據(jù)庫包括:擴(kuò)展、收縮、分離附加、刪除4.語法 1)修改數(shù)據(jù)庫名 Alter database 原數(shù)據(jù)庫名 Modify name =新數(shù)據(jù)庫名 例子:【例】將數(shù)據(jù)庫

8、book的名字改為books alter database book modify name=books 2)修改文件屬性 Alter database 數(shù)據(jù)庫名 Modify file (name='邏輯名', size=修改后的大小, maxsize=修改后的大小, filegrowth=修改后的大小) Go 例子:把初始大小由原來5mb增大為12mbalter database books modify file ( name='book_data', size=12mb ) go 3)添加日志文件 Alter database 數(shù)據(jù)庫名 Add log

9、file ( name= 邏輯名, filename = 文件的存放路徑, size=日志文件的初始大小, maxsize=日志文件的最大大小, filegrowth=日志文件的增長方式 ) Go 例子:【例】向shop數(shù)據(jù)庫中添加一個(gè)日志文件alter database shop add log file ( name='shop_log2', filename ='c:shop_log2.ldf', size=10mb, maxsize=20mb, filegrowth=10% ) go 4)刪除空文件 Alter database 數(shù)據(jù)庫名 Remove

10、file 文件的邏輯名 例子: 刪除文件shop_data2 alter database shop remove file shop_data24) 添加輔助數(shù)據(jù)文件 alter database 數(shù)據(jù)庫名 add file ( name=邏輯名, filename=文件存放的路徑, size=初始大小, maxsixe=最大大小, filegrowth=增長方式 ) Go 例子:向數(shù)據(jù)庫shop中添加一個(gè)輔助數(shù)據(jù)文件alter database shop add file ( name='shop_data3', filename='c:shop_data3.ndf

11、', size=5mb, maxsize=10mb, filegrowth=10% ) go 5)創(chuàng)建/刪除數(shù)據(jù)庫 Create database 數(shù)據(jù)庫名 on primary ( -數(shù)據(jù)文件 name=邏輯名, filename=文件的存放路徑, size=數(shù)據(jù)文件的初始大小, maxsize=數(shù)據(jù)文件的最大大小, filegrowth=文件的增長方式 ) log on ( -日志文件 name=邏輯名, filename=文件的存放路徑, size=數(shù)據(jù)文件的初始大小, maxsize=數(shù)據(jù)文件的最大大小, filegrowth=文件的增長方式 ) go 例子:創(chuàng)建一個(gè)名為boo

12、k的數(shù)據(jù)庫,其初始值大小為5MB,最大大小為 50MB,允許數(shù)據(jù)庫自動(dòng)增長,增長方式是按10%比例增長;日志文件初始 為2MB,最大可增長到5MB,按1MB增長。 create database book on primary ( name=book_data', filename='c:book_data.mdf', size=5mb, maxsize=50mb, filegrowth=10% ) log on ( name=book_Log', filename='c:book_log.ldf', size=2mb, maxsize=5mb,

13、 filegrowth=1mb) 6) 刪除數(shù)據(jù)庫 Drop database 數(shù)據(jù)庫名 例子:刪除數(shù)據(jù)庫shop drop database shop打開或切換數(shù)據(jù)庫的命令是use 數(shù)據(jù)庫名收縮數(shù)據(jù)庫northwind,保留10%的可用空間的命令是DBCC ShrinkDatabase('northwind',10)第四章 數(shù)據(jù)表的操作1. 在SQL server中創(chuàng)建表的極限: 每個(gè)數(shù)據(jù)庫可以有20億個(gè)表 ,每個(gè)表有1024個(gè)列 ,每個(gè)列可以有8064字節(jié)2. 數(shù)據(jù)類型種類數(shù)據(jù)類型數(shù)字整數(shù)int, bigint, smallint, tinyint精確數(shù)值decimal,

14、numeric近似數(shù)值float, real貨幣money, smallmoney日期和時(shí)間datetime, smalldatetime字符Non-Unicodechar,varchar,varchar(max), textUnicodenchar,nvarchar,nvarchar(max), ntext二進(jìn)制binary,varbinary,varbinary(max)圖像image全局標(biāo)識(shí)符uniqueidentifierXmlxml特殊bit, cursor, timestamp, sysname, table, sql_variant3.字符類型字符、數(shù)字、特殊符號(hào) char( )

15、 : 固定長度,以空格填補(bǔ)多余長度空間 varchar( ): 可變長長度,不以空格填補(bǔ)多余長度空間 nchar( ): unicode固定長度 nvarchar( ) : unicode可變長長度 unicode國際標(biāo)準(zhǔn)碼: 雙字節(jié)模式(固定每個(gè)字符16bit)一個(gè)漢字占兩個(gè)字節(jié)(16bit) 一個(gè)字母占兩個(gè)字節(jié)(16bit)電話號(hào)碼應(yīng)當(dāng)采用字符格式的數(shù)據(jù)類型來存儲(chǔ)int數(shù)據(jù)類型存儲(chǔ)占幾個(gè)字節(jié) 4smallint數(shù)據(jù)類型存儲(chǔ)占幾個(gè)字節(jié) 2tinyint數(shù)據(jù)類型存儲(chǔ)占幾個(gè)字節(jié) 1bigint數(shù)據(jù)類型存儲(chǔ)占幾個(gè)字節(jié) 8DECIMAL p s 的形式,p 和s 代表什么p代表總位數(shù),s代表小數(shù)位數(shù)

16、數(shù)據(jù)類型char每個(gè)字符占幾個(gè)字節(jié) 1數(shù)據(jù)類型nchar每個(gè)字符占幾個(gè)字節(jié) 2數(shù)據(jù)類型varchar每個(gè)字符占幾個(gè)字節(jié) 1數(shù)據(jù)類型nvarchar每個(gè)字符占幾個(gè)字節(jié) 2datetime數(shù)據(jù)類型的范圍是表示的是1753年1月1日到9999年12月31日4.語法: 1)創(chuàng)建表create table 表名 2)修改表alter table 表名3)刪除表drop/delete table 表名 4)將查出的信息放入新表Select * into 新表名 from 舊表名5) 添加的信息必須滿足現(xiàn)有表結(jié)構(gòu)Insert into 現(xiàn)有表 select * from 舊表名5.drop和delete、t

17、runcate的區(qū)別:drop是刪除表,而delete和truncate是刪除表中記錄5. 數(shù)據(jù)操作語言DML select 從表或視圖中檢索數(shù)據(jù) insert 將數(shù)據(jù)插入到表或視圖中 update 修改表或視圖中的數(shù)據(jù) Update grade set score=score+5 where score>=55 and score<=60delete 從表或視圖中刪除數(shù)據(jù) delete from 表名 where 條件Delete from student where 性別='女'刪除student 表的命令是drop table student條件“年齡BETW

18、EEN 40 AND 50”表示年齡在40至50之間,且包括40歲和50歲詳解:模式查找like '_a%',like '_a-e%',like 0100%A,B,C%SQL Server中自己建立的stuDB數(shù)據(jù)庫屬于用戶數(shù)據(jù)庫數(shù)據(jù)冗余是指存在重復(fù)的數(shù)據(jù)附加數(shù)據(jù)庫的操作是把已經(jīng)存在于磁盤上的數(shù)據(jù)庫文件恢復(fù)為數(shù)據(jù)庫創(chuàng)建好數(shù)據(jù)庫接著要?jiǎng)?chuàng)建數(shù)據(jù)表主鍵是用來實(shí)施實(shí)體完整性約束,一個(gè)表只能有一個(gè)主鍵修改表名為Table1的字段Field1長度,原為Char(10)要求用SQL增加長度為char(20),Alter table Table1 Alter column Fi

19、eld1 char(20)在employees表中添加一個(gè)memo字段,數(shù)據(jù)類型char(30)的命令是alter table employees add memo char(30) 第五章 基礎(chǔ)查詢1.select語法結(jié)構(gòu)基本語法:select 字段名 From 目標(biāo)表 Where 條件【例】查詢學(xué)生成績數(shù)據(jù)庫(student_score)學(xué)生情況表(Member)中的 所有列。 use student_score select * from Member2.Where條件限定語法的用法 基本語法:use 數(shù)據(jù)庫名 Select 字段名 From 目標(biāo)名 Where 字段名=“內(nèi)容” Go【

20、例】查詢Member表中Mname為馬德保的相關(guān)信息 use student_score select * from Member where Mname='馬德保' go3.模糊查詢 like1)基本語法:select 字段名 From 目標(biāo)名 Where 目標(biāo)名 like 條件【例】查找學(xué)生姓名以劉開頭的所有學(xué)生信息 use student_score select * from Member where Mname like '劉%'go 2) % 代表所有可能的情況3)%的使用 %N% 表示包含N N% 表示N開頭 %N 表示N結(jié)尾4)“代表不、不是、不

21、以的意思4. Or/and/not的邏輯運(yùn)算【例】將Mname以劉開頭,或總學(xué)分為60,且專業(yè)名為網(wǎng)絡(luò)互連的學(xué)生Mname use student_score select Mname,Mtotalscore,MMajor from Member where Mname like '劉%' or MTotalscore=60 and MMajor='網(wǎng)絡(luò)互連'go5.Betweenand 在范圍之內(nèi)【例】查找總學(xué)分為60和70之間的學(xué)生所有信息use student_score select * from Member where MTotalScore bet

22、ween 60 and 70 go 6.In =or 或【例】查找總學(xué)分為70和80的所有學(xué)生信息 use student_score select from Member where Mtotalscore in('70','80') -where Mtotalscore not in(70',80') go6.Is null為空的查詢【例】查詢所在地區(qū)為空的學(xué)生姓名 use student_score select Maera,Mname from Member where Maera is null go7.Order by排序: asc升

23、序;desc降序【例】查找學(xué)生的總學(xué)分以升序排列,出生日期以降序排列的學(xué)生姓名和學(xué)號(hào) use student_score select Mname,Mbirth,Mtotalscore, MID from Member order by Mtotalscore asc ,Mbirth desc go8.distinct 數(shù)據(jù)過濾和消除重復(fù)記錄【例】查詢student_score數(shù)據(jù)庫中Member表中的總學(xué)分,但是不能有重復(fù)use student_score select distinct Mtotalscore from Member order by Mtotalscore go9.Top

24、和topwith ties的用法【例】求學(xué)分最高的5位學(xué)生的信息,并且返回與第5并列的學(xué)生信息use student_score select top 5 with ties MID,Mtotalscore from Member order by Mtotalscore go注: with ties必須與order by連用10.as 取別名【例】在student_score數(shù)據(jù)庫中的Member表中對(duì)Mname取別名為a, 專業(yè)名為b,并在補(bǔ)一列為性別,并取別名為cuse student_score select Mname as a, MMajor as b ,性別 as c from

25、Member go第六章 高級(jí)查詢1.聯(lián)接定義:根據(jù)各個(gè)數(shù)據(jù)庫表之間的邏輯關(guān)系從二個(gè)或多個(gè)數(shù)據(jù)表中檢索數(shù)據(jù)2.聯(lián)接分類 內(nèi)連接:基本內(nèi)連接、多表連接、自連接 外連接:左外連接、右外連接、全外連接 交叉連接3. 左外連接、右外連接、全外連接的含義left outer join 左外連接(join左邊的表),結(jié)果集中除了包括滿足連接條件的行外,還包 括左表所有行 right outer join 右外連接(join 右邊的表),結(jié)果集中除了包括滿足連接條件的行外,還包括右表所有行 full outer join 全外連接,結(jié)果集中除了包括滿足連接條件的行外,還包括兩個(gè)表的所有行4.內(nèi)連接概述1)用

26、innerjion on語句進(jìn)行連接Jion指定需要連接的數(shù)據(jù)表On指定連接條件(inner可省略)【例】查找選修了01課程且成績?cè)?0分以上的學(xué)生編號(hào)和成績 use student_score select M.MID,S.score from Member M join Score S on M.MID=S.MID where CID='01' and score>=30go5.外連接語法:select 字段名1,字段名2字段n From 表1 left outer join 表2 from 表1 right outer join 表2 from 表1 full ou

27、ter join 表2 Go【例】查找所有學(xué)生信息及其考試成績,若該生未參加任何考試,也列出其信息 use student_score select M.*,S.CID,S.score from Score S right join Member M on M.MID=S.MIDgo6.交叉連接語法:select字段1,字段2 From 表1 cross join 表2 Go【例】返回Member表和Score表所有可能記錄的組合 use student_score select M.MID,M.Mname,CID,Score from Member M cross join Score S

28、go在WHERE子句中包含一個(gè)形如SELECT-FROM-WHERE的查詢塊,此查詢塊稱為子查詢SQL中消除重復(fù)的記錄命令是distinct第七章 函數(shù)1. 函數(shù):是一段特殊的程序代碼,它能對(duì)查詢結(jié)果進(jìn)行一定的操作 函數(shù)的作用:就是使用戶不必書寫太多的程序代碼即可完成復(fù)雜的操作2. SQL Server函數(shù)類型包括系統(tǒng)函數(shù)、字符串函數(shù)、 日期時(shí)間函數(shù)、聚合函數(shù)等 3. 系統(tǒng)函數(shù)對(duì)SQL Server服務(wù)器和數(shù)據(jù)庫對(duì)象進(jìn)行操作,返回服務(wù)器配置和數(shù)據(jù)庫對(duì)象數(shù)值等信息CURRENT_TIMESTAMP( )可返回系統(tǒng)當(dāng)前日期和時(shí)間,類型為datetime HOST_NAME ()返回主機(jī)名稱 SYS

29、TEM_USER 返回當(dāng)前系統(tǒng)用戶 USER_NAME( ) 返回id 標(biāo)識(shí)指定的用戶名稱 db_name()返回當(dāng)前會(huì)話的數(shù)據(jù)庫名稱4. 聚合函數(shù) 功能 1)Sum() 計(jì)算表達(dá)式所有值之和 必須是數(shù)值,數(shù)字類型【例】求選修01課程的學(xué)生的總成績。 use student_score select sum(score) as '課程01總成績' from Score where CID='01go2)Avg() 計(jì)算表達(dá)式的平均值【例】求選修10課程的學(xué)生的平均成績。 use student_score select avg(score) as '課程10平均

30、成績' from Score where CID='10'go3)Count(列名) 計(jì)算表達(dá)式中非空值的數(shù)量【例】求學(xué)生的總成績 use student_score select count() as 學(xué)生總成績 from Membergo4)count(*) 計(jì)算表達(dá)式中所有值的數(shù)量【例】求學(xué)生的總?cè)藬?shù) use student_score select count(*) as 學(xué)生總?cè)藬?shù) from Membergo5)Min() 計(jì)算表達(dá)式的最小值 【例】求選修00課程的學(xué)生的最低分 use student_score select min(score) as &#

31、39;課程00的最低分' from Score where CID='00' go6)Max() 計(jì)算表達(dá)式的最大值【例】求選修11課程的學(xué)生的最高分 use student_score select max(score) as '課程11的最高分' from Score where CID='11'go邏輯運(yùn)算符:not or and第八章 數(shù)據(jù)的完整性1. 數(shù)據(jù)庫完整性: 是指存儲(chǔ)在數(shù)據(jù)庫中數(shù)據(jù)的一致性和標(biāo)準(zhǔn)性2. 數(shù)據(jù)完整性的類型1)域(列)完整性:指定對(duì)列的一組有效值并決定是否允許有空值。也可以通 過在一列中限定數(shù)據(jù)類型,格式和可

32、能值的范圍來強(qiáng)制數(shù)據(jù)完整性。2) 實(shí)體(行)完整性:要求表中所有的行具有唯一的標(biāo)識(shí)符,例如主關(guān)鍵字值。3) 參照完整性:確保維持主關(guān)鍵字和外部關(guān)鍵字的關(guān)系3. 約束的概念: 確保在列中輸入有效的值并維護(hù)表之間的關(guān)系。4.約束的類型完整性類型約束類型說明域DEFAULT指定列的默認(rèn)值CHECK指定列的允許值NULL指定是否允許NULL實(shí)體PRIMARY KEY唯一標(biāo)識(shí)每一行UNIQUE防止非主鍵重復(fù)引用FOREIGN KEY定義值必須與此表的主鍵匹配的列5.default功能:執(zhí)行insert語句時(shí)將默認(rèn)值自動(dòng)插入約束所在的列 語法: alter table 表名 add constraint

33、約束名 default(默認(rèn)值) for 字段名 go【例】修改數(shù)據(jù)庫student_score中的Menber表,將性別的默認(rèn)值設(shè)置為男 use student_score alter table Member add constraint df_sex default('男') for Msex go6. check功能: check(檢查約束),每次執(zhí)行Insert/update語句時(shí),該約束要校驗(yàn)數(shù)據(jù)的合法性語法:alter table 表名 add constraint 約束名 check(條件) go【例】 修改數(shù)據(jù)庫student_score中的Score表,使成

34、績限制在0100之間 use student_score alter table Score add constraint ck_cj check(score>=0 and score<=100)go7. primary key功能: primary key(主鍵約束),一個(gè)表中只有能一個(gè)pk,不能有空值,不能有 重復(fù)值;pk所在列的值能夠唯一標(biāo)識(shí)此行 ;能與fk關(guān)聯(lián), pk所在表為主表; 同時(shí)創(chuàng)建一個(gè)與PK約束名的簇索引。 語法: alter table 表名 add constraint 約束名 primary key(字段名) go【例】修改數(shù)據(jù)庫student_score中

35、的kc表,將課程號(hào)設(shè)置為主鍵use student_score alter table Course add constraint pk_kch primary key(CID) go8. Unique功能: unique(唯一約束), 指定在同一列中的兩行不能有相同的值,只能有一行為 空值,該約束自動(dòng)創(chuàng)建一個(gè)與約束同名的非簇索引,在插入/修改時(shí)自動(dòng)執(zhí)行。 語法: alter table 表名 add constraint 約束名 unique (字段名)go 【例】修改數(shù)據(jù)庫student_score中的Course表,將課程名設(shè)置為unique約束 use student_score al

36、ter table Course add constraint un_kcm unique(Cname) go 9. FOREIGN KEY功能: 參照完整性確保維持主關(guān)鍵字(在主表中)和外部關(guān)鍵字(在輔表中)的關(guān)系。 語法: alter table 表名1 add constraint 約束名 foreign key(字段名) references 表名2(字段名) go【例】修改數(shù)據(jù)庫student_score中的Score表,將課程號(hào)設(shè)置為外鍵use student_score alter table Score add constraint fk_kch foreign key(CID

37、) references Course(CID)go10. 刪除約束 語法: alter table 表名 drop constraint 約束名 【例】 刪除 Menber表的fk_xh約束。 use student_score alter table Score drop constraint fk_xh go第九章 視圖1.視圖; 是從一個(gè)或多個(gè)表(或視圖)導(dǎo)出的虛表。對(duì)于數(shù)據(jù)庫用戶來說,視圖 似乎是一個(gè)真實(shí)的表,它具有一組命名的數(shù)據(jù)列和行。但是,與真實(shí)的表不 同,在視圖中沒有存儲(chǔ)任何數(shù)據(jù),僅僅是一種較簡單的訪問數(shù)據(jù)庫里其他表 中數(shù)據(jù)的方式,因此稱它為“虛表”。視圖只能建立在當(dāng)前正在使用

38、的數(shù)據(jù)庫中2.視圖的優(yōu)點(diǎn)聚焦數(shù)據(jù),創(chuàng)建可以控制的環(huán)境,將需要的、常規(guī)的、適當(dāng)?shù)臄?shù)據(jù)存儲(chǔ)在視圖中。 隱藏?cái)?shù)據(jù)庫的復(fù)雜性 簡化對(duì)用戶的許可管理 數(shù)據(jù)庫擁有者只允許用戶通過視圖查詢數(shù)據(jù),保護(hù)了底層基本表的設(shè)計(jì)結(jié)構(gòu) 提高性能 存儲(chǔ)復(fù)雜查詢、分割數(shù)據(jù) 輸出數(shù)據(jù)給其他應(yīng)用程序3.視圖創(chuàng)建是應(yīng)注意的情況 只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視圖。 如果視圖引用的基表或者視圖被刪除,則該視圖不能再被使用,直到創(chuàng)建新 的基表或者視圖。 如果視圖中某一列是函數(shù)、數(shù)學(xué)表達(dá)式、常量或者來自多個(gè)表的列名相同, 則必須為列定義名稱。 當(dāng)通過視圖查詢數(shù)據(jù)時(shí),SQL Server要檢查以確保語句中涉及的所有數(shù)據(jù)庫 對(duì)象存在,而且數(shù)據(jù)修改語

39、句不能違反數(shù)據(jù)完整性規(guī)則。 視圖的名稱必須遵循標(biāo)識(shí)符的規(guī)則,且對(duì)每個(gè)用戶必須是唯一的2.語法; 1) create view 視圖名 創(chuàng)建視圖【例】創(chuàng)建v1視圖,包括作者為馬德保的書籍ISBN,名稱,及單價(jià) use book go create view v1 as select isbn,bookname,unitprice from bookinfo where author='馬德保'go2) drop view 視圖名 刪除視圖 【例】刪除名為v2的視圖drop view v23) alter view 視圖名 修改視圖 【例】修改v1視圖,包括出版社為工業(yè)出版社的書籍

40、ISBN,作者及單價(jià) use book go alter view v1 as select isbn,author,unitprice from bookinfo where publisher='工業(yè)出版社' go4) exec sp_helptext 視圖名 查看視圖定義 【例】查看視圖v1: exec sp_helptext v15) update 視圖名 更新視圖 【例】將v1視圖中書名為“Windows Server 2008活動(dòng)目錄”的單價(jià)增加10。use book go update v1 set unitprice=unitprice+10 where boo

41、kname='Windows Server 2008活動(dòng)目錄'go第十章 索引1. 建立索引目的:是希望提高SQL Server數(shù)據(jù)檢索的速度2.索引的分類 聚集索引 對(duì)表進(jìn)行物理排序的索引是聚集索引 非聚集索引 唯一索引 3. 建立索引的原則1)定義主鍵數(shù)據(jù)列一定要建立索引 2)定義外鍵數(shù)據(jù)列上一定建立索引 3)對(duì)于經(jīng)常查詢的數(shù)據(jù)列最好建立索引 4)對(duì)于需要在指定范圍內(nèi)快速或頻繁查詢的數(shù)據(jù)列 5)經(jīng)常用在where子句中的數(shù)據(jù)列 6)對(duì)于那些查詢中很少涉及的列,重復(fù)值較多的列不要建立索引 7)對(duì)于定義為text、image和bit數(shù)據(jù)類型的列不要建立索引4.語法; 創(chuàng)建索引

42、Create unique 索引名 修改索引 alter unique 索引名 刪除索引 drop unique 索引名例如:在xscj數(shù)據(jù)庫中的xs表上創(chuàng)建名為ix_name的非聚集索引、唯一索引,該索引基于“姓名”列創(chuàng)建語法是 Create unique nonclustered Index ix_name on xs(姓名)更新索引統(tǒng)計(jì)信息的命令是update statistics對(duì)表進(jìn)行數(shù)據(jù)操作可能會(huì)導(dǎo)致表碎片的產(chǎn)生,而碎片會(huì)導(dǎo)致讀取額外頁,從而造成數(shù)據(jù)查詢性能的降低,可以使用(dbcc showcontig )語句掃描表 當(dāng)表或視圖上的聚集索引和非聚集索引頁上存在碎片時(shí),可以使用(

43、dbcc indexdefrag )進(jìn)行碎片整理第十一章 存儲(chǔ)過程1. 存儲(chǔ)過程的類型 系統(tǒng)存儲(chǔ)過程 (名字以“sp_”為前綴,存儲(chǔ)在master里) 本地存儲(chǔ)過程 (存儲(chǔ)在用戶定義的數(shù)據(jù)庫中) 擴(kuò)展存儲(chǔ)過程 (名字都以“xp_”為前綴,存儲(chǔ)在master里) 臨時(shí)存儲(chǔ)過程 (名字以#開頭)2.語法:1)Creat procedure 存儲(chǔ)過程名 創(chuàng)建存儲(chǔ)過程【例】創(chuàng)建名為p_book_info的存儲(chǔ)過程,該存儲(chǔ)過程查詢所有書籍的信息use book go create procedure p_book_info as select * from bookinfo order by ISBNg

44、o2)Exec procedure存儲(chǔ)過程名 執(zhí)行存儲(chǔ)過程 【例】 p_order_detail可以通過以下方式執(zhí)行 exec p_order_detail3)Alter procedure 存儲(chǔ)過程名 修改存儲(chǔ)過程【例】修改p_order_detail,返回訂單id,用戶姓名,用戶地址,書籍單價(jià), 書籍名稱及 訂單數(shù)量 alter procedure p_order_detail as select o.orderdetailid,u.username,u.addr,b.unitprice,b.bookname,o.quantity from orderdetail as o join us

45、erinfo as u on o.userid=u.userid join bookinfo as b on o.isbn=b.isbngo4)Drop procedure存儲(chǔ)過程名 刪除存儲(chǔ)過程【例】刪除xscj數(shù)據(jù)庫中的p_book_info存儲(chǔ)過程 use book go drop procedure p_book_infogo數(shù)據(jù)庫系統(tǒng)類型是按照(數(shù)據(jù)模型 )來劃分的用于顯示存儲(chǔ)過程的源代碼的系統(tǒng)存儲(chǔ)過程是sp_helptext能夠用來添加系統(tǒng)用戶的擴(kuò)展存儲(chǔ)過程是xp_cmdshell局部標(biāo)量是加上 全局變量是加上用于聲明一個(gè)或多個(gè)局部變量的命令是declare第十二章 流程設(shè)計(jì)1.

46、流程控制語句:是指那些用來控制程序執(zhí)行和流程分支的命令,在SQL Server 中,流程控制語句主要用來控制SQL語句、語句塊或者存儲(chǔ)過 程的執(zhí)行流程。2. 變量分為:局部變量和全局變量3. 運(yùn)算符 算術(shù)運(yùn)算符:+,-,*,/,% 賦值運(yùn)算符:= 比較運(yùn)算符 :>,<,>=,<=,=,!=,<>,!>,!< 邏輯運(yùn)算符: all,and,any,between,exists,in,like,not,or,some 字符串串聯(lián)運(yùn)算符 :+ 按位運(yùn)算符:&,|,4. 流程控制1)beginend:定義語句塊。 2)goto label從 la

47、bel 所定義的 label 之后的語句處繼續(xù)進(jìn)行處理。 3)ifelse定義條件以及當(dāng)一個(gè)條件為 FALSE 時(shí)的操作。4)while當(dāng)特定條件為 TRUE 時(shí)重復(fù)語句。 5)waitfor為語句的執(zhí)行設(shè)置延遲第十三章 觸發(fā)器1. 觸發(fā)器 :是一種特殊的存儲(chǔ)過程,它被分配給某個(gè)特定的表,觸發(fā)器都是自動(dòng) 調(diào)用的。當(dāng)一特定的表數(shù)據(jù)被插入、更新或刪除時(shí),數(shù)據(jù)庫需要執(zhí)行一定的 動(dòng)作,觸發(fā)器是確保數(shù)據(jù)完整性和一致性的基本有效的方法2. 觸發(fā)器的動(dòng)作Delete Update Insert3. 觸發(fā)器的作用禁止無效的修改 級(jí)聯(lián)修改相關(guān)表格 執(zhí)行較為復(fù)雜的約束操作4. 觸發(fā)器特點(diǎn)不接受用戶參數(shù),也不返回用

48、戶參數(shù);存儲(chǔ)在表上。 數(shù)據(jù)庫中跨越相關(guān)表的級(jí)聯(lián)修改。對(duì)數(shù)據(jù)庫中的相關(guān)表進(jìn)行級(jí) 聯(lián)更新和刪除 強(qiáng)制比Check約束更復(fù)雜的數(shù)據(jù)完整性.可以引用其他表中的列5.語法: 1) Create trigger 觸發(fā)器名 創(chuàng)建觸發(fā)器【例】對(duì)于student_score數(shù)據(jù)庫,如果在Member表中刪除數(shù)據(jù),則在 執(zhí)行時(shí)顯示提示信息。 use student_score go create trigger tr_delete on Member for delete as print '你已經(jīng)刪除了此數(shù)據(jù)!'go 2)alter trigger 觸發(fā)器名 修改觸發(fā)器 【例】在Member表中

49、定義觸發(fā)器,當(dāng)修改紀(jì)錄時(shí)彈出消息:恭喜!你修改了此表!use student_score go alter trigger tr_delete on Member for delete as print '恭喜!你修改了此表!go 3)disable trigger 觸發(fā)器名 禁用觸發(fā)器 【例】禁用tr_update觸發(fā)器 use student_score go alter table Member disable trigger tr_updatego 4)enable trigger 觸發(fā)器名 啟用觸發(fā)器 【例】啟用tr_insert觸發(fā)器 use student_score g

50、o alter table Member enable trigger tr_insertgo 5)drop trigger 觸發(fā)器名 刪除觸發(fā)器 【例】刪除名為tr_insert的觸發(fā)器drop trigger tr_insertSQL Server數(shù)據(jù)庫中發(fā)生數(shù)據(jù)操作語言 (DML) 事件時(shí)將觸發(fā)哪種觸發(fā)器DML觸發(fā)器DML觸發(fā)器使用哪兩個(gè)邏輯表deleted 和 inserted創(chuàng)建DML觸發(fā)器的命令是create trigger用于查看觸發(fā)器的一般信息的系統(tǒng)存儲(chǔ)過程是sp_help用于查看觸發(fā)器的正文信息的系統(tǒng)存儲(chǔ)過程是sp_helptext用于修改觸發(fā)器的名字系統(tǒng)存儲(chǔ)過程是sp_re

51、name用于刪除觸發(fā)器的命令是drop trigger第十四章 數(shù)據(jù)庫安全1. SQL Server 2008的安全性管理可分為3個(gè)等級(jí):1)操作系統(tǒng)級(jí) 2)SQL Server 級(jí) 3)數(shù)據(jù)庫級(jí)2. SQL Server登錄認(rèn)證簡介;Windows和SQL Server身份驗(yàn)證Windows身份驗(yàn)證SQL Server身份驗(yàn)證當(dāng)用戶登陸到Windows域時(shí),用戶名和密碼在被傳送到 Windows域控制器之前被加密Windows操作系統(tǒng)從不驗(yàn)證用戶支持復(fù)雜加密、密碼的截止日期和最短長度等密碼策略支持密碼策略(Sql2000不支持)支持帳戶鎖定策略,在使用無效密碼進(jìn)行多次嘗試后鎖定帳戶不支持帳戶

52、鎖定功能在Windows98/me中不能使用 在Windows98/me中可以使用3數(shù)據(jù)庫安全通過以下三種方式實(shí)施:帳戶管理: 添加和刪除數(shù)據(jù)庫用戶,便于訪問數(shù)據(jù)庫。 權(quán)限管理: 指定用戶能夠?qū)δ男?shù)據(jù)庫對(duì)象執(zhí)行哪種操作。 角色管理: 將具有相同權(quán)限的用戶設(shè)置為同一角色,減少權(quán)限設(shè)置的工作量SQL Server 2008 采用的身份驗(yàn)證模式有Windows身份驗(yàn)證模式和混合模式第十五章 數(shù)據(jù)庫災(zāi)難性恢復(fù)1. 備份和恢復(fù)的必要性數(shù)據(jù)庫中的數(shù)據(jù)丟失或被破壞的原因: 計(jì)算機(jī)硬件故障、軟件故障、病毒、誤操作、自然災(zāi)害、盜竊2. 備份類型完全備份(Database Full Backups) 特點(diǎn): 1

53、)速度慢、時(shí)間長; 2)占用大量的磁盤空間; 3)完全備份的頻率通常比差異備份或事務(wù)日志備份低事務(wù)日志備份(Transaction Log Backups)特點(diǎn): 1)速度快、時(shí)間少 2)占用磁盤空間少 3)操作復(fù)雜差異備份(Differential Database Backups)特點(diǎn): 1) 速度一般、時(shí)間短 2) 占用磁盤空間少 3)需要經(jīng)常備份3. 恢復(fù)模式恢復(fù)模式描述簡單恢復(fù)模式數(shù)據(jù)庫的完整或差異副本,截?cái)嗍聞?wù)日志完整恢復(fù)模式包括數(shù)據(jù)庫備份和事務(wù)日志備份大容量日志恢復(fù)包括數(shù)據(jù)庫和事務(wù)日志備份, 但使用較少的日志空 間4. 當(dāng)選擇恢復(fù)模式時(shí),必須考慮原則: 1) 大規(guī)模操作的性能(如大容量裝載) 2) 數(shù)據(jù)丟失表現(xiàn)(如已提交的事務(wù)丟失) 3) 事務(wù)日志空間損耗 4) 備份和恢復(fù)過程的簡化5.備份還原的方法 完整備份和還原完整+差異備份與還原完整+事務(wù)日志備份與還原6.創(chuàng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論