久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 計(jì)劃總結(jié) > 工作總結(jié) > SQL學(xué)習(xí)總結(jié)

SQL學(xué)習(xí)總結(jié)

網(wǎng)站:公文素材庫 | 時間:2019-05-29 22:29:06 | 移動端:SQL學(xué)習(xí)總結(jié)

SQL學(xué)習(xí)總結(jié)

上個星期,自主學(xué)習(xí)了SQLServer,基本了解了SQLServer的語法知識和結(jié)構(gòu),對SQL有了一定的認(rèn)識,現(xiàn)在我就對我這一星期對SQl的學(xué)習(xí)做一個總結(jié):為了永久性的集中存放數(shù)據(jù),并且還能體現(xiàn)數(shù)據(jù)與數(shù)據(jù)之間聯(lián)系.此時需要用到數(shù)據(jù)庫來保存數(shù)據(jù).由于之前也接觸過一兩種數(shù)據(jù)庫,向Oracle,MySQL,再就是SQLServer,這三種都是關(guān)系型數(shù)據(jù)庫,都是用于存儲大量的數(shù)據(jù)信息,是一種存儲數(shù)據(jù)的倉庫。不過,不管是哪一種數(shù)據(jù)庫,他們之間的聯(lián)系我覺得都是相通的,對于數(shù)據(jù)庫的常見操作,無非就是“三建四句“。所謂的“三建四句“就是說,三建:建庫,建表,建約束;四句:增,刪,改,查。SQL語言,也稱為結(jié)構(gòu)化查詢語言,是用于訪問關(guān)系型數(shù)據(jù)庫的專用語言,同樣也是數(shù)據(jù)庫的核心語言,總體上可以分為三類:數(shù)據(jù)操縱語言(DML),數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)控制語言(DCL)。數(shù)據(jù)操縱語言(DML)主要有四種形式:插入:insert更新:update刪除:delete查詢:select,涉及到數(shù)據(jù)的完整性簡單查詢、子查詢、多表連接查詢數(shù)據(jù)定義語言(DDL)主要用于創(chuàng)建數(shù)據(jù)庫中的各種對象

數(shù)據(jù)庫數(shù)據(jù)表

視圖:是一種觀察數(shù)據(jù)的途徑索引:用于查詢數(shù)據(jù),提高效率同義詞

Create,Drop,Alert,Truncate(截?cái)啵⿺?shù)據(jù)控制語言(DCL):是用于授予和回收訪問數(shù)據(jù)庫的某種權(quán)限,并對數(shù)據(jù)庫進(jìn)行監(jiān)控。Grant(授予),Revoke(回收),Denny(拒絕),RollbackSQL中的運(yùn)算符:算術(shù)運(yùn)算符、位運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、通配運(yùn)算符、字符串連接符、賦值運(yùn)算符上面這些只是SQLServer數(shù)據(jù)的基本操作,而它真正強(qiáng)大的地方并不止這些,還有程序設(shè)計(jì),SQLServer中的編程語言就是T-SQL語言,是一種非過程化的語言。觸發(fā)器:觸發(fā)器是一種特殊類型的存儲過程,主要是通過實(shí)踐進(jìn)行觸發(fā)而被執(zhí)行。它的主要作用就是能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的

參照完整性和數(shù)據(jù)的一致性。

存儲過程:(storedprocedure)類似c語言中的函數(shù),是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字并給出參數(shù)來執(zhí)行它。游標(biāo):游標(biāo)是一種能從包含多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。將批操作變成行操作,對結(jié)果集中得某行進(jìn)行操作。

擴(kuò)展閱讀:SQL學(xué)習(xí)總結(jié)

SQL總結(jié)

1.插入,刪除,修改(語法)

(插入)INSERT[INTO][列名]VALUES(更新)UPDATESET=[WHERE]

(刪除)DELETE[FROM][WHERE]注意

插入語句

如果沒有能很好的記住字段在表中的順序最好是寫上列名

2.條件查詢

SelectFrom

WhereOrder

3給字段取別名as用法

使用AS來為列其別名

Select學(xué)號asstudentNO,姓名asname,家庭地址asaddressFromstudentinfo

Where家庭地址‘黑龍江哈爾濱’使用=來為列另起別名

Select‘姓名’=firstName+‘.’+lastnamefromemployees注意:1.+連接字符數(shù)據(jù),結(jié)果為字符串?dāng)?shù)據(jù)的連接2.如果+連接數(shù)值型,結(jié)果為數(shù)值的和

4.函數(shù)

字符串函數(shù)函數(shù)名CharindexLenLowerUpperLtrimRtrimRightReplaceStudiff描述用來尋找一個指定的字符在另一個字符串中的起始位置返回傳遞給它的字符串長度將傳遞給他的字符串變成小寫將傳遞給他的字符串變成大寫清空字符左邊的空格清空字符右邊的空格替換一個字符串中的字符在一個字符串中,刪除指定例如SELECTCHARINDEX(‘lucia",’Iamlucia")返回:6Selectlen(‘sql’)Selectlower(‘SQL’)返回sqlSelectltrim(‘你好’)返回你好Selectreplace(‘連玉龍’,‘龍’,‘鳳")返回:連玉鳳Selectstudiff("ABCDEFG",2,3,"我的音‘瑪麗蓮.夢露,2’)夢露從字符串右邊返回指定數(shù)目字符Selectright(長度的字符,并在該位置插入一個新的字符串樂我的世界")返回:A我的音樂我的世界EFG日期函數(shù)GetdateDateaddDatediffDatenameDatepart

數(shù)學(xué)函數(shù)ConvertCurrent_userDatalengthHost_name備注:

日期函數(shù)中datediff可以用來計(jì)算時間差(例如,年齡)getdate()用來設(shè)置默認(rèn)這些函數(shù)容易記也容易忘,尤其是書寫的格式規(guī)范。

用來轉(zhuǎn)變數(shù)據(jù)類型返回當(dāng)前用戶的名字給指定表達(dá)式的字節(jié)數(shù)返回當(dāng)前用戶所登錄的計(jì)算機(jī)名字Selectconvert(varchar(5),1234)Selectcurrent_user,返回你登錄的用戶名Selectdatalegth(‘中國’)Selectuser_name(1)返回:從任何數(shù)據(jù)庫中返回‘a(chǎn)bo’取得當(dāng)前的系統(tǒng)日期將指定的數(shù)值添加到指定的日期后面的日期兩個日期之間的指定日期日期中指定日期部分的字符串日期中指定日期部分的整數(shù)形式Selectgetdate()Selectdateadd(mm,4,’01/01/1999’)返回05/01/19999Selectdatediff(mm,’01/01/1999’,’05/01/1999’)Selectdatename(dw,‘01/01/201*’)Selectdatepart(day,‘01/15/201*’)5like用法

*通配符

*%包含零個或更多字符串*_(下劃線)任何單個字符

*[]指定范圍([a-f])或集合[abcdf]中任何的一個單個字符*[^]不屬于指定范圍[a-f]或集合[abcdef]的任何單個字符例

SELECT*FROM數(shù)據(jù)表

WHERE編號LIKE‘00[^8]%[AC]%’

可能會查詢出的編號值為(a)。

A、0090ACDB、007_AFFC、008&DCGD、008C6.聚合函數(shù)

*Count(),*Max(),*Min(),*Avg(),sum()

6.1分組查詢groupbyhavingSelect任職部門,count(*)Fromlucia工作室

Where目前的薪資>=201*Groupby任職部門Havingcount(*)>4

7.多表查詢

*innerjoin內(nèi)連接:兩張表的順序顛倒對結(jié)果沒有影響*leftjoin左連接:左邊的表是主表,表的順序不能顛倒*rightjoin右連接:右邊的表是主表,表的順序不能顛倒例

SELECTS.姓名,C.課程編號,C.筆試成績FROMStudentInfoASSINNERJOINScoreInfoASCONC.學(xué)號=S.學(xué)號

8.建表的三大范式

第一范式的目標(biāo)是確保每列的原子性

如果每列都是不可再分的最小數(shù)據(jù)單元(也稱為最小的原子單元),則滿足第一范式(1NF)

如果一個表中個字段關(guān)系滿足1NF,并且除了主鍵以外的其它列,都依賴于該主鍵,則滿足第二范式(2NF)

第二范式要求每個表只描述一件事情(去除不依賴主鍵或部分依賴主鍵的列)

由第二范式可知:產(chǎn)品價(jià)格不是依賴訂單的編號如果一個關(guān)系滿足2NF,并且除了主鍵以外的其它列都不傳遞依賴于主鍵列,則滿足第三范式(3NF)

第三范式的目標(biāo)是確保每列都直接依賴主鍵

由第三范式可知:產(chǎn)品的結(jié)果是依賴產(chǎn)品編號而不是直接依賴訂單編號的

9.主鍵(primarykey),外鍵(foreignkey)創(chuàng)建/添加語法

ConstraintPK_主鍵名稱primarykey(主鍵名稱)

ConstraintFK_外鍵的名稱foreignkey(外鍵名稱)References父表(父表字段)修改

Altertable子表

AddConstraintFK_外鍵的名稱foreignkey(外鍵名稱)References父表(父表字段)

(b)其他約束:唯一約束

AlterconstraintUQ_stuIDunique(stuID)默認(rèn)約束

AlterconstraintDF_addressdefault("地址不詳")foraddress檢查約束

AlterconstraintCK_stuAgecheck(stuAgebetween15and40)

10變量(局部變量,全局變量)

局部變量

*聲明局部變量

DECLARE@變量名數(shù)據(jù)類型*賦值

*SET@變量名=值*SELECT@變量名=值全局變量

是系統(tǒng)的,是不能改變的較常用的是:變量@@ERROR@@IDENTITY@@LANGUAGE@@MAX_CONNECTIONS@@ROWCOUNT@@SERVERNAME@@TRANCOUNT@@VERSION變量含義最后一個T-SQL錯誤的錯誤號最后一次插入的標(biāo)識值當(dāng)前使用的語言的名稱可以創(chuàng)建的同時連接的最大數(shù)目受上一個SQL語句影響的行數(shù)本地服務(wù)器的名稱當(dāng)前連接打開的事務(wù)數(shù)SQLServer的版本信息11.if……else,while,caseend,whenthen用法例題

=============ifelse===================

ifexists(select*fromsysobjectswherename="NewTable")droptableNewTable

select姓名,S.學(xué)號,筆試成績,機(jī)試成績,

是否通過=case

when筆試成績>60and機(jī)試成績>60then1else0

endintoNewTablefromstudentinfoassleftjoinscoreinfoascons.學(xué)號=c.學(xué)號go

==============while===================declare@writtenAvgdecimaldeclare@labavgdecimal

select@writtenAvg=avg(筆試成績)fromstudentscoreselect@labavg=avg(機(jī)試成績)fromstudentscoreif(@writtenAvg>@labavg)begin

print("筆試成績大于機(jī)試成績")while(1=1)begin

updatestudentscoreset機(jī)試成績=機(jī)試成績+1if(selectmax(機(jī)試成績)fromstudentscore)>=97breakendendelsebegin

print("機(jī)試成績大于筆試成績")while(1=1)begin

updatestudentscoreset筆試成績=筆試成績+1if(selectmax(筆試成績)fromstudentscore)=97breakendendgo

select*fromstudentscorego

============caseend==============select姓名,學(xué)號,筆試成績=case

when筆試成績isnullthen"缺考"elseconvert(varchar(5),筆試成績)end,機(jī)試成績=casewhen機(jī)試成績isnullthen"缺考"elseconvert(varchar(5),機(jī)試成績)end,是否通過=casewhen是否通過=1then"是"when是否通過=0then"否"endfromNewTablego

===========whenthen=====================ifexists(select*fromsysobjectswherename="NewTable")droptableNewTable

select姓名,S.學(xué)號,筆試成績,機(jī)試成績,是否通過=case

when筆試成績>60and機(jī)試成績>60then1else0end

intoNewTablefromstudentinfoassleftjoinscoreinfoascons.學(xué)號=c.學(xué)號go

select*fromnewTable

12子查詢(in,exists)

SELECT姓名FROMStudentInfoWHERE學(xué)號IN(SELECT學(xué)號FROMScoreInfo)GO注意:

基本上in可以等價(jià)于“=”可是“=”只能是子查詢返回的是單個結(jié)果,如果是多個查詢結(jié)果只能用in

Exists用法用例:

IFEXISTS(SELECT*FROMsysdatabasesWHEREname=‘LuciaBank")DROPDATABASELuciaBank

14存儲過程

優(yōu)點(diǎn):

執(zhí)行的速度更快

允許模塊化程序設(shè)計(jì)提高系統(tǒng)安全性減少網(wǎng)絡(luò)流通量14.1分類

系統(tǒng)存儲過程

“sp_”或者是“XP_”常用系統(tǒng)存儲過程

Sp_database:列出服務(wù)器上的所有數(shù)據(jù)庫

Sp_helpdb:報(bào)告有關(guān)指定數(shù)據(jù)庫或所有數(shù)據(jù)庫的信息Sp_rename:更改數(shù)據(jù)庫的名稱

Sp_tables:返回當(dāng)前環(huán)境下可查詢的對象的列表sp_columns:返回某個表列的信息sp_help:查看某個表的所有信息sp_helpconstraint:查看某個表的約束sp_helpindex:查看某個表的索引

sp_password:添加或修改登錄帳戶的密碼sp_helptext:顯示默認(rèn)值、未加密的存儲過程、用戶定義的存儲過程、觸發(fā)器或視圖的實(shí)際文本

14.2自定義的存儲過程

14.2.1定義存儲過程的語法和調(diào)用的語法

CREATEPROC[EDURE]存儲過程名@參數(shù)1數(shù)據(jù)類型=默認(rèn)值OUTPUT,……,

@參數(shù)n數(shù)據(jù)類型=默認(rèn)值OUTPUTAS

SQL語句

調(diào)用的語法

EXEC過程名[參數(shù)]

14.2.2不帶參數(shù)的存儲過程

/*------------------------------------------------------存儲過程(不帶參數(shù))

題目:查看本次考試的平均分?jǐn)?shù),并查看沒有通過的學(xué)生的名單----------------------------------------------------------*/createprocedurep_scoreInfoas

declare@writtenAvgdecimaldeclare@labAvgdecimal

select@writtenAvg=avg(筆試成績),@labAvg=avg(機(jī)試成績)fromstudentscoreprint"筆試成績的平均分"+convert(nvarchar(5),@writtenAvg)print"機(jī)試成績的平均分"+convert(nvarchar(5),@labAvg)if(@writtenAvg>60and@labAvg>60)print"本班的成績優(yōu)秀"else

print"本班的成績很差"

print"-------------------------------------------------------"print"本班成績不及格的人名單"

selects.學(xué)號,姓名,筆試成績,機(jī)試成績fromstudentinfos,studentscorecwheres.學(xué)號=c.學(xué)號and筆試成績可以規(guī)定及格的分?jǐn)?shù)

-----------------------------------------------------------------*/createprocedureproc_scoreinfoHaveParams(

@writePassdecimal,--默認(rèn)值是60@labPassdecimal)as

declare@writtenAvgdecimaldeclare@labAvgdecimal

select@writtenAvg=avg(筆試成績),@labAvg=avg(機(jī)試成績)fromstudentscoreprint"筆試成績的平均分"+convert(nvarchar(5),@writtenAvg)print"機(jī)試成績的平均分"+convert(nvarchar(5),@labAvg)if(@writtenAvg>@writePassand@labAvg>@labPass)print"本班的成績優(yōu)秀"else

print"本班的成績很差"

print"-------------------------------------------------------"print"本班成績不及格的人名單"

selects.學(xué)號,姓名,筆試成績,機(jī)試成績fromstudentinfos,studentscorecwheres.學(xué)號=c.學(xué)號and筆試成績@labPass)print"本班的成績優(yōu)秀"else

print"本班的成績很差"print"-------------------------------------------------------"

select@sumNotPass=count(*)fromstudentscorewhere筆試成績=3

print"本班成績不及格的人數(shù)是"+convert(varchar(5),@sum)+"及格人太少,及格分?jǐn)?shù)要在調(diào)低"else

print"及格人數(shù)適中,及格分?jǐn)?shù)線可以"dropprocproc_outputscoreInfogo

14.2.4RAISERROR用法語法:

RAISERROR(msg_id|msg_str,severity,stateWITHoption[,...n]])msg_id:在sysmessages系統(tǒng)表中指定用戶定義錯誤信息msg_str:用戶定義的特定信息,最長255個字符

severity:定義嚴(yán)重性級別。用戶可使用的級別為018級state:表示錯誤的狀態(tài),1至127之間的值

option:指示是否將錯誤記錄到服務(wù)器錯誤日志中/*--------------------------------------------------------------帶參數(shù)(輸出)的存儲過程

題目:查看本次考試的平均分?jǐn)?shù),并查看沒有通過的學(xué)生的人數(shù)當(dāng)輸入的及格分?jǐn)?shù)不再1到100之間則報(bào)錯

-----------------------------------------------------------------*/declare@sumint,@tint

execproc_outputscoreInfo@sumoutput,80set@t=@@error

print"錯誤號:"+convert(nvarchar(10),@t)if@t0

raiserror("及格線錯誤,請重新輸入(1100之間)",16,1)return

print"***************************************"if@sum>=3

print"本班成績不及格的人數(shù)是"+convert(varchar(5),@sum)+"及格人太少,及格分?jǐn)?shù)要在調(diào)低"else

print"及格人數(shù)適中,及格分?jǐn)?shù)線可以"dropprocproc_outputscoreInfogo

15事物15.1事物概念

事務(wù)(TRANSACTION)是作為單個邏輯工作單元執(zhí)行的一系列操作這些操作作為一個整體一起向系統(tǒng)提交,要么都執(zhí)行、要么都不執(zhí)行事務(wù)是一個不可分割的工作邏輯單元15.2事物四個屬性

原子性(Atomicity):事務(wù)是一個完整的操作。

事務(wù)的各步操作是不可分的(原子的);要么都執(zhí)行,要么都不執(zhí)行

一致性(Consistency):當(dāng)事務(wù)完成時,數(shù)據(jù)必須處于一致狀態(tài)隔離性(Isolation):對數(shù)據(jù)進(jìn)行修改的所有并發(fā)事務(wù)是彼此隔離的,這表明

事務(wù)必須是獨(dú)立的,它不應(yīng)以任何方式依賴于或影響其他事務(wù)永久性(Durability):事務(wù)完成后,它對數(shù)據(jù)庫的修改被永久保持,事務(wù)日

志能夠保持事務(wù)的永久性

15.3管理事務(wù)T_SQL語句

開始事務(wù):beigintransaction提交事務(wù):committransaction回滾事物:rollbacktransaction15.4判斷出錯的語句@@ERROR

15.5事務(wù)的分類:

顯性事務(wù):用BEGINTRANSACTION明確指定事務(wù)的開始,這是最常用的

事務(wù)類型

隱性事務(wù):通過設(shè)置SETIMPLICIT_TRANSACTIONSON語句,將隱性事

務(wù)模式設(shè)置為打開,下一個語句自動啟動一個新事務(wù)。當(dāng)該事務(wù)完成時,再下一個T-SQL語句又將啟動一個新事務(wù)

自動提交事務(wù):這是SQLServer的默認(rèn)模式,它將每條單獨(dú)的T-SQL語

句視為一個事務(wù),如果成功執(zhí)行,則自動提交;如果錯誤,則自動回滾

15.6例題

-----------------------------------轉(zhuǎn)賬事物處理

--------------------------------begintransactiondeclare@errorcountintset@errorcount=0

updateclientAccountset余額=余額-1000where賬號="6226900707220987"set@errorcount=@errorcount+@@error

updateclientAccountset余額=余額+1000WHERE賬號="6226900707220654"set@errorcount=@errorcount+@@errorif@errorcount0begin

print"交易失敗,回滾事物"rollbacktransactionendelsebeginprint"交易成功"

committransactionendgo

print"查看轉(zhuǎn)賬事物后余額"

select*fromBankAccountgo

16索引(提高查詢速度,但是占空間)是SQLServer編排數(shù)據(jù)的內(nèi)部方法

16.1索引的類型

唯一索引:唯一索引不允許兩行具有相同的索引值

主鍵索引:為表定義一個主鍵將自動創(chuàng)建主鍵索引,主鍵索引是唯一索引的特殊類

型。主鍵索引要求主鍵中的每個值是唯一的,并且不能為空

聚集索引(Clustered):表中各行的物理順序與鍵值的邏輯(索引)順序相同,每個表

只能有一個

非聚集索引(Non-clustered):非聚集索引指定表的邏輯順序。數(shù)據(jù)存儲在一個位置,

索引存儲在另一個位置,索引中包含指向數(shù)據(jù)存儲位置的指針。可以有多個,小于249個

16.2語法

CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_name

ONtable_name(column_name…)[WITHFILLFACTOR=x]

UNIQUE表示唯一索引,可選

CLUSTERED、NONCLUSTERED表示聚集索引還是非聚集索引,可選

FILLFACTOR表示填充因子,指定一個0到100之間的值,值指示索引頁填滿的空間所占的百分比16.3索引創(chuàng)建的指定原則

請按照下列標(biāo)準(zhǔn)選擇建立索引的列

該列用于頻繁搜索

該列用于對數(shù)據(jù)進(jìn)行排序

請不要使用下面的列創(chuàng)建索引:

列中僅包含幾個不同的值

表中僅包含幾行。為小型表創(chuàng)建索引可能不太劃算,因?yàn)镾QLServer在索

引中搜索數(shù)據(jù)所花的時間比在表中逐行搜索所花的時間更長

17視圖

概念:視圖是一張?zhí)摂M表,它表示一張表的部分?jǐn)?shù)據(jù)或多張表的綜合數(shù)據(jù),其結(jié)構(gòu)和數(shù)據(jù)是建立在對表的查詢基礎(chǔ)上17.1視圖的用途

篩選表中的行

防止未經(jīng)許可的用戶訪問敏感數(shù)據(jù)降低數(shù)據(jù)庫的復(fù)雜程度將多個物理數(shù)據(jù)庫抽象為一個邏輯數(shù)據(jù)庫

17.2語法

CREATEVIEWview_nameAS

17.3例題

-------------------------------------------------

----創(chuàng)建CS_KC視圖,包括雇員名字,部門名字、其選修的課程號及成績收入在之間的雇員號碼

--------------------------------------------------createviewCS_KCas

selecte.nameas顧員姓名,d.departmentnameas部門名稱,e.EmployeeIDas雇員編號fromEmployeesase,Departmentsasd,Salaryasswheres.Incomebetween201*and3000and

e.departmentID=d.departmentIDande.employeeID=s.employeeID

18觸發(fā)器

觸發(fā)器是一種特殊的存儲過程,類似于事件函數(shù),SQLServer允許為INSERT、UPDATE、DELETE創(chuàng)建觸發(fā)器,即當(dāng)在表中插入、更新、刪除記錄時,觸發(fā)一個或一系列T-SQL語句。

18.1語法

創(chuàng)建觸發(fā)器用:CREATETRIGGERCREATETRIGGER觸發(fā)器名稱ON表名

FORINSERT、UPDATE或DELETEAS

T-SQL語句

18.2觸發(fā)器中用到兩個臨時表:Deleted和Inserted

一個數(shù)據(jù)庫系統(tǒng)中有兩個虛擬表用于存儲在表中記錄改動的信息,分別是:Deleted,Inserted

虛擬表Inserted

表記錄新增時,用來存放新增的數(shù)據(jù)記錄表記錄更新時,用來存放更新的新記錄表記錄刪除時,不存儲任何信息

虛擬表Deleted

表記錄新增時,不存放任何記錄

表記錄更新時,用來存放更新前的記錄表記錄刪除時,用來存放刪除前的數(shù)據(jù)記錄

18.4例題

-----------------------------------------------------------

--修改Departments表departmentID字段值時,該字段在Employees表中的對應(yīng)值也應(yīng)修改;

-----------------------------------------------------------------createtriggerdeparmentsudateondepartmentsforupdateasbegin

if(columns_updated()&01)>0

updateemployeessetdepartmentID=(selectins.departmentIDfrominsertedins)wheredepartmentID=(selectdepartmentIDfromdeleted)end

----------------------------------------------------------1.向Employees表添加一記錄時,該記錄的departmentID值在

--Departments表中應(yīng)存在createtriggeremployeesinsertonemployees-------------------------------------------------------------createtriggeremployeesinsertonemployeesforinsertupdateasbegin

if((selectins.departmentidfrominsertedins)notin(selectdepartmentidfromdepartments))rollbackend

------------------------------------------------------------------------1.3.刪除Departments表中一記錄時,該記錄departmentID字段值在Employees表中對應(yīng)的記錄也應(yīng)刪除

---------------------------------------------------------------------createtriggerdepartmentsdeleteondepartmentsfordeleteasbegin

deletefromemployeeswheredepartmentID=(selectdepartmentIDfromdeleted)endgo

友情提示:本文中關(guān)于《SQL學(xué)習(xí)總結(jié)》給出的范例僅供您參考拓展思維使用,SQL學(xué)習(xí)總結(jié):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


SQL學(xué)習(xí)總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://m.weilaioem.com/gongwen/747415.html