sql 資料庫知識整理

2021-09-24 03:47:20 字數 2265 閱讀 8943

一、

乙個以數字符號(#)開頭的識別符號代表乙個臨時表或者過程。

乙個以兩個數字符號(##)開頭的識別符號標識的是乙個全域性臨時物件

create table #matchresult

(gbid varchar(40),

orgno varchar(12),

orgname varchar(100),

scene varchar(12),

scenename varchar(100))二、

儲存過程 with子查詢

是用來定義乙個sql片斷,該sql片斷會被整個sql語句所用到。

這個語句算是公用表表示式(cte)。

1.使用with子句可以讓子查詢重用相同的with查詢塊,通過select呼叫(with子句只能被select查詢塊引用),一般在with查詢用到多次情況下。在引用的select語句之前定義,同級只能定義with關鍵字只能使用一次,多個用逗號分割。

2.with子句的返回結果存到使用者的臨時表空間中,只做一次查詢,反覆使用,提高效率。

3.在同級select前有多個查詢定義的時候,第1個用with,後面的不用with,並且用逗號隔開。

4.最後乙個with 子句與下面的查詢之間不能有逗號,只通過右括號分割,with 子句的查詢必須用括號括起來

5.如果定義了with子句,而在查詢中不使用,那麼會報ora-32035 錯誤:未引用在with子句中定義的查詢名。

(至少乙個with查詢的name未被引用,解決方法是移除未被引用的with查詢),

注意:只要後面有引用的就可以,不一定非要在主查詢中引用,比如後面的with查詢也引用了,也是可以的。

6.前面的with子句定義的查詢在後面的with子句中可以使用。但是乙個with子句內部不能巢狀with子句。

7.當乙個查詢塊名字和乙個表名或其他的物件相同時,解析器從內向外搜尋,優先使用子查詢塊名字。

8.with查詢的結果列有別名,引用的時候必須使用別名或*。

with的例子

三、select bulkcolumn from openrowset(bulk 'd:\kedasb\kdsbxx.xml', single_blob) as x

sp_xml_preparedocument

sys.sp_xml_removedocument 

sp_xml_preparedocument

四、select into from 和 insert into select都是用來複製表,

兩者的主要區別為: select into from 要求目標表不存在,因為在插入時會自動建立。

insert into select from 要求目標表存在

五、case when then 

六、isnull

七、charindex作用

寫sql語句我們經常需要判斷乙個字串中是否包含另乙個字串,但是sql server中並沒有像c#提供了contains函式,

不過sql server中提供了乙個叫chaeindx的函式,顧名思義就是找到字元(char)的位置(index),

既然能夠知道所在的位置,當然就可以判斷是否包含在其中了。

通過charindex如果能夠找到對應的字串,則返回該字串位置,否則返回0。

基本語法如下:

charindex ( expressiontofind , expressiontosearch [ , start_location ] )

expressiontofind :目標字串,就是想要找到的字串,最大長度為8000 。

expressiontosearch :用於被查詢的字串。

start_location:開始查詢的位置,為空時預設從第一位開始查詢。

例如:select charindex('test','this test is test')

select charindex('雲','肖錢云');

patindex

和charindex類似,patindex也可以用來判斷乙個字串中是否包含另乙個字串,兩種的差異在於,前者是全匹配,後者支援模糊匹配。

1.簡單示例

select patindex('%ter%','interesting data')

注意事項:

1、增加開始位置

select charindex('test','this test is test',7)

2、大小寫敏感

select charindex('test','this test is test'collate latin1_general_cs_as)

資料庫SQL面試知識點整理

一 什麼是儲存過程?有哪些優缺點?儲存過程是一些預編譯的sql語句。更加直白的理解 儲存過程可以說是乙個記錄集,它是由一些t sql語句組成的 塊,這些t sql語句 像乙個方法一樣實現一些功能 對單錶或多表的增刪改查 然後再給這個 塊取乙個名字,在用到這個功能的時候呼叫他就行了。儲存過程是乙個預編...

資料庫知識整理(一)

檢視 view 是從乙個或多個表 或 檢視 匯出的表。檢視與表 有時為與檢視區別,也稱表為基本表 base table 不同,檢視是乙個虛表,即檢視所對應的資料不進行實際儲存,資料庫中只儲存檢視的定義,在對檢視的資料進行操作時,系統根據檢視的定義去操作與檢視相關聯的基本表。建立檢視 create v...

mysql 資料庫知識整理

資料庫索引b 數,hash b 數是乙個平衡大多叉樹,搜尋效率基本相當 雜湊索引 採用一定的雜湊演算法,把鍵值換成新的雜湊值,檢索時不需要類似b 1 所有的非葉子節點只儲存關鍵字資訊。2 所有衛星資料 具體資料 都存在葉子結點中。3 所有的葉子結點中包含了全部元素的資訊。4 所有葉子節點之間都有乙個...