sql知識點歸納總結(jié)
1Case的使用
Case具有兩種格式,簡單Case函數(shù)和Case搜索函數(shù)1)Casesexwhen‘1’then‘男’
When‘2’then‘女’
Else‘其他’end
2)Casewhensex=‘1’then‘男’
Whensex=‘2’then‘女’
Else‘其他’end
注:1)只返回第一個符合條件的值,剩下的Case部分將會被自動忽略2union/unionall的使用
1)select*fromtable1
unionall
select*fromtable22)select*fromtable1
union
select*fromtable2
注:1)不合并重復(fù)的行,2)會合并重復(fù)的行3數(shù)據(jù)表的連接
1)、內(nèi)連接(自然連接):只有兩個表相匹配的行才能在結(jié)果集中出現(xiàn)2)、外連接:包括
(1)左外連接(左邊的表不加限制)(2)右外連接(右邊的表不加限制)(3)全外連接(左右兩表都不加限制)3)、自連接(連接發(fā)生在一張基表內(nèi))
selecta.studentno,a.studentname,b.classnamefromstudentsa,classesbwherea.classid(+)=b.classid;STUDENTNOSTUDENTNAMCLASSNAME--------------------------------------------------1周虎一年級一班2周林一年級二班一年級三班以上語句是右連接:
即"(+)"所在位置的另一側(cè)為連接的方向,右連接說明等號右側(cè)的所有記錄均會被顯示,無論其在左側(cè)是否得到匹配。也就是說上例中,無論會不會出現(xiàn)某個班級沒有一個學(xué)生的情況,這個班級的名字都會在查詢結(jié)構(gòu)中出現(xiàn)。反之:
selecta.studentno,a.studentname,b.classnamefromstudentsa,classesbwherea.classid=b.classid(+);STUDENTNOSTUDENTNAMCLASSNAME--------------------------------------------------1周虎一年級一班2周林一年級二班3鐘林達(dá)
則是左連接,無論這個學(xué)生有沒有一個能在一個班級中得到匹配的部門號,這個學(xué)生的記錄都會被顯示。
selecta.studentno,a.studentname,b.classnamefromstudentsa,classesbwherea.classid=b.classid;
這個則是通常用到的內(nèi)連接,顯示兩表都符合條件的記錄總之,
左連接顯示左邊全部的和右邊與左邊相同的右連接顯示右邊全部的和左邊與右邊相同的內(nèi)連接是只顯示滿足條件的!
4Distinct(去重)
5組函數(shù):如sum(),avg(),count()
1數(shù)據(jù)類型數(shù)字:number(n)數(shù)字number(n,m)浮點字符串:char(n)定長,方便查詢,varchar(n)變長,節(jié)省空間,varchar2(n)oracle自定義變長日期:date
創(chuàng)建表createtable表名(列名列類型,…)插入數(shù)據(jù)insertinto表名values(列值,…)
注:數(shù)據(jù)庫中字符用單引號表示,數(shù)字不用Commit;
查詢select*from表名刪除表droptabledept_xxx查詢“||”符號表示兩個數(shù)據(jù)串接起來Distinct只能跟在select后邊如:selectdistinctjobfromemp_xxxWhere條件查詢注:sql語句大小寫不敏感,但數(shù)據(jù)大小寫敏感
如:select*fromemp_xxxwherejob=’Analyst’如果數(shù)據(jù)上analyst就查不出來
Between低值and高值In(列表)如:select*fromemp_xxxwherejob=’Manager’orjob=’Analyst’
Select*fromemp_xxxwherejobin(‘Manager’,’Analyst’)模糊匹配like%“%”表示0至多個字符,跟like配合使用“_”下劃線表示一個字符
如:select*fromemp_xxxwherejoblike‘%sale_’查詢哪些員工沒有獎金Select*fromemp_ningwherebonusisnull;注:這里用的是is而不是=
否定形式:isnotnull,notbetween…and..,notin
Commit提交數(shù)據(jù),rollback數(shù)據(jù)回滾數(shù)字函數(shù)Round(數(shù)字,小數(shù)點后的位數(shù))用于數(shù)字的四舍五入Trunc(數(shù)字,小數(shù)點后的位數(shù))用于截取注:如果沒有延續(xù)二個參數(shù),默認(rèn)是0轉(zhuǎn)換函數(shù)To_date()將字符串?dāng)?shù)據(jù)按指定格式,轉(zhuǎn)換為日期數(shù)據(jù)To_char()將日期數(shù)據(jù)按指定格式轉(zhuǎn)換為字符串?dāng)?shù)據(jù)To_char(日期數(shù)據(jù),格式):把日期數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)Selectto_char(sysdate,’yyyy-mm-ddhh24:mi:ss’)fromdual;日期格式:
To_date按指定時間格式插入數(shù)據(jù)Insertintoemp_xxx(empno,ename,hiredate)values(1012,’any’,to_date(‘201*-10-10’,’yyyy-mm-dd’))
Case語句,decode函數(shù)
函數(shù)的嵌套:f3(f2(f1(p1,p2),p3),p4)
查詢結(jié)果排序orderby***desc,asc注:排序可以用列名,列別名,表達(dá)式,函數(shù),甚至可以用數(shù)字,表示按第幾列排序
組函數(shù)Count(*),avg(),sum(),max(),min();注:組函數(shù):count/avg/sum/max/min如果函數(shù)中寫列名,默認(rèn)忽略空值A(chǔ)vg/sum針對數(shù)字的操作Max/min對所有數(shù)據(jù)類型都可以操作
分組查詢groupby***Groupby列名:表示按指定列分組查詢例:每個部門的薪水總和和平均薪水Selectdeptno,sum(salary)sum_s,avg(nvl(salary,0))avg_sfromemp_xxxGroupbydeptno;
Having子名用于對分組后的數(shù)據(jù)進(jìn)行過濾
注:區(qū)別where是對表中數(shù)據(jù)的過濾,having是對分組得到的結(jié)果數(shù)據(jù)進(jìn)一步過濾
如:平均薪水大于5000無的部門數(shù)據(jù),沒有部門的不算在內(nèi)
Selectdeptno,avg(nvl(salary,0))avg_sfromemp_xxxwheredetnoisnotnullgroupbydeptnohavingavg(nvl(salary,0))>5000
子查詢查詢最高薪水的是誰Selectenamefromemp_xxxwheresalary=(selectmax(salary)fromemp_xxx)
總結(jié):查詢語句的基本格式:Select字段1,字段2,字段3,表達(dá)式,函數(shù),。。。From表名Where條件Groupby列名Having帶組函數(shù)的條件
Orderby列名
組函數(shù):count/avg/sum/max/min單行函數(shù)Trim,replace,lengthTo_number
子查詢:單行比較運(yùn)算符><>=6000表關(guān)聯(lián),
主鍵(primarykey,pk)主鍵要求不重復(fù),不能是空值外鍵(Foreignkeyfk)外鍵參照主鍵的數(shù)據(jù)
3內(nèi)連接,匹配表,驅(qū)動表
Rownum關(guān)鍵字是Oracle數(shù)據(jù)庫提供的,代表秸民
更新數(shù)據(jù)Update表名set列名=新列值,列名=新的列值
注:更新(update)數(shù)據(jù)表時,注意條件,如果不加條件,修改的是全部表記錄
刪除數(shù)據(jù)Delete[from]表名where條件
Drop刪除表(刪除結(jié)構(gòu)和全部的表數(shù)據(jù))Droptable表名操作將刪除數(shù)據(jù)存儲到臨時空間中,不直接刪除,可以回退
Truncate保留表結(jié)構(gòu),刪除表中所有數(shù)據(jù)
Truncatetable表名;在功能上等同于Delete+commit,直接刪除,不占用臨時空間,不能回退
擴(kuò)展閱讀:SQL SERVER重要知識點歸納
1,數(shù)據(jù)模型:由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的完整性約束組成。
2,在E-R概念模型中,信息由實體型、實體屬性和實體間聯(lián)系3種概念單元來表示。
3,第一范式(1NF):設(shè)R是一個關(guān)系模式,如果R中的每個屬性都是不可分解的,則稱R是第一范式;第二范式(2NF):如果關(guān)系模式R是第一范式,且每個非碼屬性都完全依賴于碼屬性,則稱R是第二范式;第三范式(3NF):如果關(guān)系模式是R第二范式,且沒有一個非碼屬性傳遞依賴于碼,則稱
R是第三范式。
4,Transact-SQL語句的分類如下所示:
1變量聲明Transact-SQL語言可以使用兩類變量,局部變量和全局變量!
2數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL),用來建立數(shù)據(jù)庫及數(shù)據(jù)庫對象,絕大部分○
以Create開頭,如CreateTable等
3數(shù)據(jù)控制語言(DataControlLanguage,DCL),用來控制數(shù)據(jù)庫組件的存取訪問、權(quán)限等命○
令,如GRANT、REVOKE等
4數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),用來操縱數(shù)據(jù)庫中數(shù)據(jù)的命令,如○
SELECT、UPDATE等
5流程控制語言(FlowControlLanguage,FCL),用于控制應(yīng)用程序流程的語句,如IF、CASE○
等。
5,數(shù)據(jù)類型:整數(shù)型:
bigint(8個字節(jié),-263~263-1),int(4個字節(jié),-231~231-1),
smallint(2個字節(jié),-215~215-1),tingyint(1個字節(jié),0~255);
小數(shù)數(shù)據(jù)類型:
decimal[(p[,s])]p精度:指定小數(shù)點左邊和右邊可以存儲的十進(jìn)制數(shù)字的最大個數(shù)。1~38s小數(shù)位數(shù):0~p之間的值;numeric[(p[,s])]近似數(shù)值型:
float[(n)]n:1~53取值范圍:-1.79308~1.79308real取值范圍:-3.4038~3.4038
字符型(字符常量必須包含在單引號或雙引號中):
char[(n)]:長度為n個字節(jié)的固定長度且非Unicode的字符數(shù)據(jù),存儲大小為n個字節(jié)。n必須是一個介于1和8000之間的數(shù)值。
varchar[(n)]:長度為n個字節(jié)的可變長度且非Unicode的字符數(shù)據(jù)。n必須是一個介于1和8000之間的數(shù)值。存儲大小為輸入數(shù)據(jù)的字節(jié)的實際長度,而不是n個字節(jié),所輸入的數(shù)據(jù)字符長度可以為0
text:用來聲明變長的字符數(shù)據(jù)。在定義的過程中,不需要指定字符的長度,最大長度為231-1(2147483647)個字符。當(dāng)服務(wù)器代碼頁使用雙字節(jié)字符時,存儲量仍是2147483647字節(jié)。存儲大小可能小于2147483647字節(jié)(取決于字符串)邏輯數(shù)值型:
bit:可以存儲整數(shù)型數(shù)據(jù)1、0或NULL。如果輸入0以外的其他值,SQLServer均將其作為1看待。貨幣型:
money:可存儲的貨幣數(shù)值介于-263~263-1之間,精確到貨幣單位的萬分之一,貨幣數(shù)據(jù)的存儲精確度為4位小數(shù),存儲大小為8個字節(jié);
smallmoney:可存儲的貨幣數(shù)據(jù)值介于-214748.3648~214748.3647,貨幣數(shù)據(jù)的存儲精確度為4位小數(shù),精確到貨幣單位的萬分之一,存儲大小為4個字節(jié)。Unicode字符型:
nvarchar:當(dāng)列中各項所包含的Unicode字符數(shù)不同時(至多為4000)時使用;nchar:當(dāng)列中各項為一固定長度時(至多為4000個Unicode字符)時使用;ntext:最大長度為2-1.當(dāng)列中任意項超過4000個Unicode字符時使用。
它們分別與字符型的varchar[(n)]、char[(n)]和text類型相對應(yīng)。使用Unicode字符時,應(yīng)該在前面加一個標(biāo)識符N,但是存儲時并不存儲該標(biāo)識符。
日期時間類型:
datetime:從1753年1月1日到9999年12月31日的日期和時間數(shù)據(jù),精確度為千分之三(3ms或0.003s)
smalldatetime:從1900年1月1日到2079年6月6日的日期和時間數(shù)據(jù),精確到分鐘。29.998
或更低的smalldatetime值向下舍入為最接近的分鐘,29.999s或更高的smalldatetime值向上舍入為最接近的分鐘。
例如:’4-16-201*03:48:39.257’,’04/16/201*13:30:20PM’
SQLServer可以識別的日期格式有字母格式、數(shù)字格式和無分隔字符串格式3種。字符格式允許使用以當(dāng)前語句給出的月全名(如April)或月的縮寫(如Apr)來指定日期數(shù)據(jù)。字符格式的日期需要放在單括號內(nèi)?捎玫淖址腿掌诟袷椒謩e為:Apr[il][15][,]201*Apr[il][15][,][20]06Apr[il]201*[15][15]Apr[il][,]201*15Apr[il][,][20]0615[20]06Apr[il]201*APR[IL][15]201*[15]APR[IL
]SQLServer可以識別以下數(shù)據(jù)格式。用單引號(’’)把每一種括起來。下面都是有效的時間格式:
14:30
14:30[:20:999]14:30[:20.9]4AM
4PM
[0]4[:30:20:500]AM
二進(jìn)制數(shù)據(jù)類型:
二進(jìn)制數(shù)據(jù)由十六進(jìn)制數(shù)表示。例如,十進(jìn)制245等于十六進(jìn)制數(shù)F5.在SQLServer201*中,二進(jìn)制數(shù)據(jù)使用binary、varbinary和image數(shù)據(jù)類型存儲。binary:在每行中都是固定的長度(最多為8KB)
varbinary:在每行中所包含的十六進(jìn)制數(shù)字的個數(shù)可以不同(最多為8kb)
image:可以用來存儲超過8KB的可變長度的二進(jìn)制數(shù)據(jù),如word文檔、excel電子表格、位圖圖像、圖形交換格式(GIF)文件和聯(lián)合圖像專家組(JPEG)文件。
其他數(shù)據(jù)類型:
1cursor游標(biāo)數(shù)據(jù)類型,用于創(chuàng)建游標(biāo)變量或者定義存儲過程的輸出參數(shù)。它是唯一的一○
種不能賦值給表的列(字段)的基本數(shù)據(jù)類型。
2Sql_variant數(shù)據(jù)類型,可以存儲除了text、ntext、timestamp和自己本身以外的其他所有○
類型的變量
3table數(shù)據(jù)類型,能夠保存函數(shù)結(jié)果,并將其作為局部變量數(shù)據(jù)類型,可以暫時存儲應(yīng)用○
程序的結(jié)果,以便在以后用到。
4uniqueidentifier數(shù)據(jù)類型,全局唯一標(biāo)示符,是一個16字節(jié)長的二進(jìn)制數(shù)據(jù)類型,是○
SQLServer根據(jù)計算機(jī)網(wǎng)絡(luò)適配器和主機(jī)CPU時鐘產(chǎn)生的唯一號碼而生成的全局唯一標(biāo)示符。唯一標(biāo)示符代碼可以通過調(diào)用NEWID函數(shù)或者其他SQLServer應(yīng)用程序編程接口來獲得。5timestamp時間戳數(shù)據(jù)類型,可以反映數(shù)據(jù)庫中數(shù)據(jù)修改的相對順序。○
6,在查詢分析器中輸入如下命令并執(zhí)行即可創(chuàng)建用戶定義數(shù)據(jù)類型:Sp_addtype@typename=address,@phystype=’char(30)’,@nulltype=’notnull’
7,定義變量:
DECLARE@variable_namedatatype[,…]
變量不能是text、ntext或image數(shù)據(jù)類型。變量最大長度為30個字符賦值:
通常用SET和SELECT語句為變量賦值,其語法格式為:SET@variable_name=expressionSELECT@variable_name=expression
在局部變量沒有被賦值之前,其值是NULL,如果要在程序體重引用,特別是在循環(huán)結(jié)構(gòu)中,必須先為其賦值。
全局變量通常用來跟蹤服務(wù)器范圍和特定會話期間的信息,不能明顯地被賦值或聲明。全局變量不能由用戶定義,也不能由應(yīng)用程序在處理器之間交叉?zhèn)鬟f信息。8,SQLServer201*中較常用的全局變量變量@@connections@@cpu_busy@@cursor_rows@@datefirst@@dbts@@error@@fetch-status@@identity@@idle@@io_busy@@langid@@language@@LOCK_TIMEOUT@@max_precision@@nestlevel@@options@@pack_received@@pack_sent@@packet_errors@@procid@@remserver@@rowcount@@servername@@servicename@@textsize@@total_errors@@trancount@@transtate@@tranchained@@total_read@@version@@spid
說明SQLServer自啟動以來建立的連接數(shù)SQLServer自啟動以來系統(tǒng)處理的毫秒數(shù)打開游標(biāo)時滿足條件的行數(shù)值為1~7,指定每周的星期幾為第一天最后一次的timestamp值前一條SQL語句報告的錯誤游標(biāo)中上條FETCH語句的狀態(tài)上次INSERT操作中使用的IDENTITY值上次啟動SQLServer以來閑置的毫秒數(shù)上次啟動SQLServer以來用于輸入輸出操作的毫秒數(shù)當(dāng)前所用語言的ID號當(dāng)前所用語言的名稱返回用SET語句設(shè)置的鎖定超時的值,以毫秒為單位返回decimal及numeric型數(shù)據(jù)的最大精度當(dāng)前執(zhí)行的存儲過程的嵌套層數(shù)返回當(dāng)前的SET選項的設(shè)置信息上次啟動SQLServer以來從網(wǎng)絡(luò)上接收的輸入包數(shù)上次啟動SQLServer以來從網(wǎng)絡(luò)上發(fā)送的輸出包數(shù)上次啟動SQLServer以來從網(wǎng)絡(luò)上發(fā)生的錯誤包的數(shù)目返回當(dāng)前執(zhí)行的存儲過程的ID號返回遠(yuǎn)程SQLServer數(shù)據(jù)庫服務(wù)器的名稱前一條命令處理的行數(shù)本地SQLServer的名稱正在運(yùn)行的SQLServer的注冊名用SET語句設(shè)置的當(dāng)前TEXTSIZE值,以字節(jié)為單位上次啟動SQLServer以來的磁盤讀寫錯誤數(shù)事務(wù)嵌套的級別事務(wù)的當(dāng)前狀態(tài)當(dāng)前事務(wù)的模式上次啟動SQLServer以來發(fā)生的讀磁盤數(shù)SQLServer和OS版本級別當(dāng)前進(jìn)程ID@@max_connections返回服務(wù)器允許的最大并發(fā)連接數(shù)9,SQLServer提供的比較運(yùn)算符:多出!(不大于)兩種
10,邏輯運(yùn)算符邏輯運(yùn)算符含義ALLANDANYBETWEENEXISTSINLINKNOTORSOME
11,通配符及其含義:通配符%_(下劃線)[a-f][acf][^a-f][^aef]含義代表0個或多個任意字符代表任意1個字符指定范圍([a~f])或集合([abcdef])中的任何單個字符代表字符a、c或f不屬于指定范圍([a~f])或集合([abcdef])的任何單個字符除了a、e或f之外的任意一個字符當(dāng)一組比較關(guān)系的值都為TRUE時,才返回TRUE當(dāng)要比較的兩個布爾表達(dá)式的值都為TRUE,才返回TRUE只要一組比較關(guān)系中有一個值為TRUE,就返回TRUE只有操作數(shù)在定義的范圍內(nèi),才返回TRUE如果在子查詢中存在,就返回TRUE如果操作數(shù)在所給的列表表達(dá)式中,則返回TRUE如果操作數(shù)與模式相匹配,則返回TRUE對所有其他的布爾運(yùn)算取反只要比較的兩個表達(dá)式有一個為TRUE,就返回TRUE如果一組比較關(guān)系中有一些為TRUE,則返回TRUE
12,字符串連接運(yùn)算符為加號(+),可以將兩個或多個字符串合并或連接成一個字符串。還可以連接二進(jìn)制字符串。
13,運(yùn)算符優(yōu)先級
1+(正)、-(負(fù))、~(按位NOT)○
2*(乘)、/(除)、%(模)○
3+(加)、+(連接)、-(減)○
4=、>、=、和!14,常用數(shù)學(xué)函數(shù)函數(shù)名稱ABSACOSASINATANATN2CEILINGCOSCOTDEGREEEXPFLOORLOGLOG10PIPOWERRADIANSRANDROUNDSINSQUARESQRTTAN函數(shù)功能簡述求絕對值反余弦函數(shù)反正弦函數(shù)反正切函數(shù)增強(qiáng)的反正切函數(shù)求僅此于最大值的值余弦函數(shù)余切函數(shù)角度轉(zhuǎn)弧度計算e的x次冪求僅次于最小值的值求自然對數(shù)增強(qiáng)的自然對數(shù)常量,圓周率求x的y次方角度轉(zhuǎn)弧度求隨機(jī)數(shù)指定小數(shù)的位數(shù)正弦函數(shù)開方求平方根正切函數(shù)
15,日期/時間函數(shù)
1、GETDATE()函數(shù):用于返回SQLServer系統(tǒng)中的當(dāng)前日期時間。
2、DATEADD()函數(shù):用于進(jìn)行兩個時間數(shù)據(jù)的相加,返回新的日期/時間3、DATEDIFF()函數(shù):用于返回兩個指定時間之間的間隔
4,DATENAME()函數(shù):用于返回一個指定的時間名字。例如:當(dāng)前的年、月或者日的名稱。5、DATEPART()函數(shù):和DATENAME()函數(shù)極其相似,只不過該函數(shù)返回的是具體的時間數(shù)
值而不是時間的名稱
16,聚合函數(shù)
聚合函數(shù)在結(jié)果集中通過對被選列值的收集處理并返回一個數(shù)值型的計算結(jié)果。(1)AVG()函數(shù)
該函數(shù)用于計算大量數(shù)據(jù)的平均值。
(2)COUNT()函數(shù)
在進(jìn)行數(shù)據(jù)查詢時,該函數(shù)可以返回參數(shù)中非NULL值的數(shù)目。(3)SUM()函數(shù)
該函數(shù)用于計算指定數(shù)據(jù)項的總和(4)MAX()和MIN()函數(shù)
MAX()和MIN()函數(shù)用于計算多個數(shù)據(jù)項當(dāng)中的極值(最大值和最小值)。17,常用字符串函數(shù):函數(shù)名稱ASCIICHARCHARINDEXDIFFRENCELEFTLENLOWERLTRIMNCHARPATINDEX函數(shù)功能簡述返回字符表達(dá)式最左端字符的ASCII代碼值將ASCII代碼轉(zhuǎn)換為字符的字符串函數(shù),ASCII碼應(yīng)是介于0~255的整數(shù),否則將返回NULL值返回字符串中指定表達(dá)式的起始位置以整數(shù)返回兩個字符表達(dá)式的SOUNDEX值之差,返回的整數(shù)是SOUNDEX值中相同字符的個數(shù),返回的值從0~4不等,4表示SOUNDEX值相同返回從字符串左邊開始指定個數(shù)的字符返回給定字符串表達(dá)式的字符個數(shù),其中不包含尾隨空格將大寫字符數(shù)據(jù)轉(zhuǎn)換為小寫字符數(shù)據(jù)后返回字符表達(dá)式刪除起始空格后返回字符表達(dá)式返回Unicode標(biāo)準(zhǔn)所進(jìn)行的定義,用給定整數(shù)代碼返回Unicode字符返回指定表達(dá)式中某模式第一次出現(xiàn)的起始位置;如果在全部有效的文本和字符數(shù)據(jù)類型中沒有找到該模式,則返回0SQLServer分隔標(biāo)識符REPLACEREPLICATEREVERSERIGHTSOUNDEXSPACESTRSTUFFSUBSTRINGUNICODEUPPER
用第三個表達(dá)式替換第一個字符串表達(dá)式中出現(xiàn)的所有第二個給定字符串表達(dá)式以指定的次數(shù)重復(fù)字符表達(dá)式返回字符表達(dá)式的反轉(zhuǎn)返回從字符串右邊開始指定個數(shù)的字符返回由4個字符組成的代碼(SOUNDEX),以評估兩個字符串的相似性返回由重復(fù)的空格組成的字符串返回由數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換來的字符數(shù)據(jù)刪除指定長度的字符并在指定的起始點插入另一組字符求子串函數(shù)按照Unicode標(biāo)準(zhǔn)的定義,返回輸入表達(dá)式的第一個字符的整數(shù)值返回將小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達(dá)式QUOTENAME返回帶有分隔符的Unicode串,分隔符的加入可使輸入的字符串稱為有效的18,控制流語句:
1.BEGIN…END語句:用于將多個T-SQL語句組合為一個程序塊。2.IF…ELSE語句:有條件地執(zhí)行語句3.CASE語句:可以進(jìn)行多個分支的選擇語法格式:
CASE
WHENTHEN[…n]
[ELSE]END搜索CASE格式:
CASE
WHENTHEN[…n]
[ELSE]
END
4.WHILE語句:通過布爾表達(dá)式來設(shè)置一個條件,當(dāng)這個條件成立時,重復(fù)執(zhí)行一個語句或語句塊,重復(fù)執(zhí)行的部分稱為循環(huán)體?梢允褂肂reak和Continue關(guān)鍵字在循環(huán)內(nèi)部控制WHILE循環(huán)中語句的執(zhí)行
5.GOTO語句:遇到GOTO語句后,直接跳轉(zhuǎn)到lable標(biāo)號處繼續(xù)執(zhí)行,而GOTO后面的語句將不被執(zhí)行。
6.RETURN:可以從查詢或過程中無條件退出?稍谌魏螘r候用于從過程、批處理或語句塊中退出,而不是執(zhí)行位于RETURN之后的語句。
如果沒有指定返回值SQLServer系統(tǒng)會根據(jù)程序執(zhí)行的結(jié)果返回一個內(nèi)定值,RETURN命令返回的內(nèi)定值
返回值含義
0-1-2-3-4-5-6-7-8
程序執(zhí)行成功找不到對象數(shù)據(jù)類型錯誤
死鎖
違反權(quán)限原則
語法錯誤
用戶造成的一般錯誤
資源錯誤如磁盤空間不足非致命的內(nèi)部錯誤已達(dá)到系統(tǒng)的極限
致命的內(nèi)部不一致性錯誤表或指針破壞數(shù)據(jù)庫破壞硬件錯誤
-9-10-11-12-13-14
7.WAITFOR語句:可以在指定的時間或者過了一定的時間后,執(zhí)行語句塊、存儲過程或者事務(wù)。語法格式為:
WAITFOR
8.PRINT語句:該語句將用戶定義的消息返回客戶端,其格式為:PRINT字符串|局部變量|函數(shù)|字符串表達(dá)式
19.使用DBCCSHRINKDATABASE命令收縮數(shù)據(jù)庫。
20.使用Transact-SQL命令查看數(shù)據(jù)庫語法:sp_helpdb[[@dbname=]’name’]示例:sp_helpdb‘Test_DB’
使用Transact-SQL命令查看數(shù)據(jù)庫的設(shè)置:DATABASEPROPERTYEX(database,property)
21。若要創(chuàng)建可移動數(shù)據(jù)庫,則必須使用sp_create_removable系統(tǒng)存儲過程,而不要使用
SQLServer企業(yè)管理器或CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫SP_CREATE_REMOVABLE系統(tǒng)存儲過程可以創(chuàng)建3個或更多文件
1一個文件包含系統(tǒng)表○
2一個文件包含事務(wù)日志○
3一個或多個文件包含數(shù)據(jù)庫○
重命名列:
采用sp_rename函數(shù)可以更改當(dāng)前數(shù)據(jù)庫中用戶創(chuàng)建對象(如表、列或用戶自定義類型)的名稱。
格式為:EXECsp_rename‘表名.列名’,’COLUMN’
UPDATE語句有日志記錄,如果要更改大量的text或image數(shù)據(jù),考慮使用UPDATETEXT或WRITETEXT語句,這兩個語句在默認(rèn)情況下午日志記錄。
友情提示:本文中關(guān)于《sql知識點歸納總結(jié)》給出的范例僅供您參考拓展思維使用,sql知識點歸納總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。