freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

sqlserver的使用(2)(參考版)

2025-05-04 18:39本頁(yè)面
  

【正文】 ?向存儲(chǔ)過(guò)程傳遞參數(shù) 存儲(chǔ)過(guò)程聲明中可以包含參數(shù),作為存儲(chǔ)過(guò)程和調(diào)用者之間交換數(shù)據(jù)的一種方法。所屬的城市信息會(huì)隨時(shí)間變化。現(xiàn)網(wǎng)絡(luò)擁塞,為減少網(wǎng)絡(luò)通信量,可采用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)該查詢。 創(chuàng)建存儲(chǔ)過(guò)程 ? 創(chuàng)建存儲(chǔ)過(guò)程語(yǔ)法 : CREATE PROCEDURE proc_name AS BEGIN sql_statement1 sql_statement2 END ? 雖然在設(shè)計(jì)存儲(chǔ)過(guò)程時(shí),可以包含任意數(shù)據(jù)和類型的 SQL語(yǔ)句,但是下表列出的語(yǔ)句在設(shè)計(jì)存儲(chǔ)過(guò)程時(shí)不能使用。擴(kuò)展存儲(chǔ)過(guò)程允許以其他語(yǔ)言 (如 C)創(chuàng)建自己的外部存儲(chǔ)過(guò)程,其內(nèi)容并不存在 SQL SERVER中,而是以 DLL形式單獨(dú)存在。 ? 存儲(chǔ)過(guò)程的類型 ? :系統(tǒng)存儲(chǔ)過(guò)程一般以 “ sp_”為前綴,是由 SQL SERVER自己創(chuàng)建、管理和使用的一種特殊存儲(chǔ)過(guò)程,不需對(duì)其修改和刪除。 ? :用戶可以授權(quán)執(zhí)行存儲(chǔ)過(guò)程,盡管他們不擁有該過(guò)程。 ? 存儲(chǔ)過(guò)程的優(yōu)點(diǎn) (續(xù) ) ? :存儲(chǔ)過(guò)程在創(chuàng)建完畢后,可以在程序中多次被調(diào)用,而不必重新編寫該 SQL語(yǔ)句。 ? 存儲(chǔ)過(guò)程的優(yōu)點(diǎn) ? :因?yàn)?SQL SERVER會(huì)事先將存儲(chǔ)過(guò)程編譯成二進(jìn)制可執(zhí)行代碼,在運(yùn)行時(shí), SQL SERVER不需要再對(duì)存儲(chǔ)過(guò)程進(jìn)行編譯,可以加快執(zhí)行速度。 end from sc ?SQL SERVER存儲(chǔ)過(guò)程 ? 創(chuàng)建存儲(chǔ)過(guò)程 ? 執(zhí)行存儲(chǔ)過(guò)程 ? 向存儲(chǔ)過(guò)程傳遞參數(shù) ? 修改存儲(chǔ)過(guò)程 ? 從存儲(chǔ)過(guò)程返回值 ? 從存儲(chǔ)過(guò)程返回多個(gè)值 ? 存儲(chǔ)過(guò)程調(diào)用另一個(gè)存儲(chǔ)過(guò)程 ? 重編譯存儲(chǔ)過(guò)程 ? 刪除存儲(chǔ)過(guò)程 ? 存儲(chǔ)過(guò)程 —— 存儲(chǔ)過(guò)程是一組預(yù)先寫好的能實(shí)現(xiàn)某種功能的SQL程序,指定一個(gè)程序名并由 SQL SERVER編譯后將其存在 SQL SERVER中,以后要實(shí)現(xiàn)該功能,則可以調(diào)用這個(gè)程序來(lái)完成。 else 39。 when grade=60 and grade70 then 39。 when grade=70 and grade80 then 39。 when grade=80 and grade90 then 39。打印格式示例如圖: select sno,o,grade,分析結(jié)果 = case when grade=90 then 39。 when sgender=‘女 ’ then ‘girl’ else ‘未知 39。張三是個(gè) 39。not known39。girl39。女 39。boy39。男 39。張三 39。 DECLARE mark int SELECT mark=grade FROM SC WHERE Sno=‘95001’ AND Cno=‘1000’ IF mark60 PRINT ‘學(xué)生 95001的 1000號(hào)課程不及格 ’ ELSE BEGIN IF mark=60 and mark80 PRINT ‘學(xué)生 95001的 1000號(hào)課程成績(jī)及格 ’ ELSE PRINT ‘學(xué)生 95001的 1000號(hào)課程成績(jī)良好 ’ END ? CASE語(yǔ)句 CASE語(yǔ)法: CASE input_expression WHEN when_expression THEN result_expression [… n] [ ELSE else_result_expression ] END ? CASE語(yǔ)句 CASE語(yǔ)法: CASE WHEN boolean_expression THEN result_expression [… n] [ ELSE else_result_expression ] END 在簡(jiǎn)單的 case語(yǔ)法代碼中,系統(tǒng)會(huì)將 input_expression的值與每一個(gè) when_expression的值作比較,如果相同的話,返回then語(yǔ)句之后的表達(dá)式,如果和所有 when_expression的值都不相等的話,返回 else之后的表達(dá)式,如果沒(méi)有 else語(yǔ)句,則返回null。 DECLARE count int DECLARE sum int SET count=1 SET sum=0 WHILE count=100 BEGIN SELECT sum=sum+count SELECT count=count+1 END PRINT ‘1到 100的累加和 = ’+CONVERT(CHAR(4),sum) ? CASE語(yǔ)句 CASE語(yǔ)句也是條件判斷語(yǔ)句的一種,可以完成比 IF語(yǔ)句更強(qiáng)的判斷。 break語(yǔ)句是跳出目前所執(zhí)行的循環(huán), continue種植執(zhí)行代碼,跳回到 while的判斷語(yǔ)句重新進(jìn)行條件判斷,再根據(jù)判斷結(jié)果決定是否進(jìn)入循環(huán)。語(yǔ)法如下: WHILE Boolean_expression { sql_statement|statement_block } { BREAK } { sql_statement|statement_block } { CONTINUE } { sql_statement|statement_block } WHILE語(yǔ)句語(yǔ)法解釋: 當(dāng) boolean_expression為 true時(shí),循環(huán)執(zhí)行 while語(yǔ)句塊的代碼,直到 boolean_expression為 false為止。編寫一個(gè)批量,對(duì)于職工號(hào)為 000008的員工,如果他的測(cè)試成績(jī)高于 80分,則打印消息 ‘ Called for interview’ 和測(cè)試成績(jī),否則,打印消息 ‘ RejectedNot called for interview’。否則,打印消息 ‘ Employee not found! ’ IF EXISTS( SELECT * FROM Employee WHERE vFirstName=‘Angela’) BEGIN PRINT ‘The detail of the employee: ’ SELECT * FROM Employee WHERE vFirstName=‘Angela’ END ELSE PRINT ‘Employee not found!’ ? 例子:如果合同招聘人員的平均費(fèi)用 (siPercentageCharge)低于 20,那么所有合同招聘人員的 siPercentageCharge增加 5,否則只增加 3。語(yǔ)法: IF boolean_expression {sql_statement|statement_block} [ELSE boolean_expression] {sql_statement|statement_block} ? boolean_expression 是一個(gè)求值 TRUE或 FALSE的表達(dá)式 ? sql_statement是任意 SQL語(yǔ)句 ? statement_block是一組 SQL語(yǔ)句 ? BEGIN… END語(yǔ)句 BEGIN… END通常是用來(lái)表示一個(gè)語(yǔ)句塊,其內(nèi)可以包含一組TSQL語(yǔ)句,凡是在這個(gè)語(yǔ)句塊里的所有代碼,都屬于同一個(gè)控制流。編寫一個(gè)批量,對(duì)于職工號(hào)為 000008的員工,如果他的測(cè)試成績(jī)高于 80分,則打印消息 ‘ Called for interview’ 和測(cè)試成績(jī),否則,打印消息 ‘ RejectedNot called for interview’??刂屏髡Z(yǔ)句使得標(biāo)準(zhǔn) SQL具備了編程語(yǔ)言的能力。 注釋入口有兩種方式: ? 單行注釋入口 (兩個(gè)連字符 )開(kāi)始 ? 多行注釋入口包含在 /* 和 */之間 ? 控制流語(yǔ)句 控制流語(yǔ)句控制批量、存儲(chǔ)過(guò)程、觸發(fā)器和事務(wù)中 SQL語(yǔ)句的執(zhí)行流程。兩者有細(xì)微的差別。 ? 全局變量以兩個(gè) 符號(hào)最為前綴 ,它們是由服務(wù)器聲明的、通常由服務(wù)器賦值的變量。變量用 DECLARE聲明,語(yǔ)法如下: DECLARE variable_name data_type ? 注意在變量符號(hào)前的 符號(hào) 這個(gè)符號(hào)是必須的,查詢處理器用其來(lái)識(shí)別變量; ? 變量的賦值可以使用 SET或 SELECT賦值,其中 SET用于給變量賦予某個(gè)具體的值, SELECT可通過(guò)查詢將表中列的值賦給變量; ? 局部變量的生存期只在一個(gè)批量里; ? 例子:聲明變量并賦值 ① DECLARE x int SET x=100 ② DECLARE charge int SELECT charge=MAX(siPercentageCharge) FROM ContractRecruiter ③ DECLARE charge float SELECT charge=siPercentageCharge FROM ContractRecruiter ? 變量 —— 在 SQL SERVER中有兩類變量:局部變量和全局變量 ? 局部變量以一個(gè) 開(kāi)頭,在批量中聲明,當(dāng)批量執(zhí)行完后它就丟失。如果批量中有語(yǔ)法錯(cuò)誤,那么批量中沒(méi)有語(yǔ)句被執(zhí)行。 批量被分析、優(yōu)化、編譯和執(zhí)行。) ? 例: 有如下視圖 CREATE VIEW vwEmployeeCandidate AS SELECT ,vFirstName, vLastName,cPhone,siTestScore FROM Employee AS E JOIN InternalCandidate AS I ON = ? 續(xù)上例,對(duì)該視圖進(jìn)行更新,更新候選人代碼為‘ 000018’ 的測(cè)試成績(jī)和電話號(hào)碼,寫出如下的更新語(yǔ)句: UPDATE vwEmployeeCandidate SET cPhone=‘(614)3245634’,siTestScore=75 WHERE cCanidateCode=‘000018’ 該語(yǔ)句執(zhí)行時(shí)會(huì)產(chǎn)生一個(gè)錯(cuò)誤!原因是:視圖只允許一次更新一個(gè)基表。 ? 連接 視圖 的更新 ? 連接視圖 由多個(gè)表連接構(gòu)成的視圖。 該項(xiàng)的默認(rèn)值為 0,表示將葉子節(jié)點(diǎn)索引頁(yè)填滿,等于 100%。 CREATE NONCLUSTERED INDEX idxitemno ON test1(itemno DESC) 或者 CREATE INDEX idxitemno ON test1(itemno DESC) ? 索引的刪除 ? 語(yǔ)法 DROP INDEX ? 使用索引調(diào)節(jié)向?qū)В▽?shí)例說(shuō)明) 已經(jīng)在 Department表中創(chuàng)建了以下索引: CREATE NONCLUSTERED INDEX idxdepcode ON Department(cDepartmentCode) CREATE NONCLUSTERED INDEX idxdepname ON Department(vDepartmentName) CREATE NONCLUSTERED INDEX idxdephead ON Department(vDepartmentHead) CREATE NONCLUSTERED INDEX idxdeplocation ON Department(vLocation) 執(zhí)行下列查詢,分析 Department表中索引的使用情況: SELECT , ,vDepartmentName FROM Position JOIN Requisition ON = JOIN Department ON = ? 使用索引調(diào)節(jié)向?qū)В▽?shí)例說(shuō)明) 已經(jīng)在 Department表中創(chuàng)建了以下索引: CREATE NONCLUSTERED INDEX idxdepcode ON Department(cDepartmentCode) CREATE NONCLUSTERED INDEX idxdepname ON Department(vDepartmentName) CREATE NONCLUSTERED INDEX idxdephead ON Department(vDepartmentHead) CREATE NONCLUSTERED INDEX idxdeplocation ON Department(vLocation) ? 索引 ENHANCEMENTS Fill Factor(填充因子 ) 填充因子是指在創(chuàng)建索引頁(yè)時(shí),每個(gè)葉子節(jié)點(diǎn)的填入數(shù)據(jù)的填滿率。 ? 例子:在表 test1上,要求索引表中的值按照 itemno列的值的降序排列原則,創(chuàng)建一個(gè)聚集索引。只邏輯地組織數(shù)據(jù); ? idxname指出創(chuàng)建的索引名稱。索引對(duì)具有大量重復(fù)數(shù)據(jù)的列沒(méi)有多大用處; ? 當(dāng)修改索引列的數(shù)據(jù)時(shí),相關(guān)索引會(huì)被
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1