SQL server 2008 學習筆記(一)

2021-08-21 05:04:12 字數 3547 閱讀 3584

資料庫的基本操作分類:

1、資料庫的查詢及查詢語句;

2、資料庫資料修改;

select    union

單獨資料的查詢:

"%":表示任意0個或多個字元

oracle

sqlserver  

mysql  

支援支援支援

select * from 表名 where 列名 like '%' //查詢出全部   

select * from 表名 where 列名 like 'x' //完全匹配查詢  

select * from 表名 where 列名 like '%x' //右為x,前面可以有任意位字元  

select * from 表名 where 列名 like 'x%' //左為x,後面可以有任意位字元  

select * from 表名 where 列名 like '%x%' //中間為x,左右都可以有任意位字元 

例如:select * from  ******(表名)

where xmba1(列名) like  '%$%'

"_":表示單個字元

oracle

sqlserver  

mysql  

支援支援支援

select * from 表名 where 列名 like '_x' //右為x,前面有一位字元 

select * from 表名 where 列名 like '__x'  //右為x,前面有兩位位字元  

select * from 表名 where 列名 like 'x__'  //左為x,後面有兩位位字元 

"":表示括號內所列字元中的乙個

指定乙個字元、字串或範圍,要求所匹配物件為它們中的任乙個。

注:如 [ ] 內有一系列字元(01234、abcde之類的)則可略寫為「0-4」、「a-e」

1)sqlserver

select * from 表名 where 列名 like '[張李王]三' //將找出「張三」,「李三」,「王三」(而不是「張李王三」);  

select * from 表名 where 列名 like  '老[1-9]' //將找出「老1」,「老2」,……,「老9」;  

select * from 表名 where regexp_like(列名,'[張李王]三') 

select * from 表名 where 列名 rlike '[張李王]三'

select * from 表名 where 列名 regexp '[張李王]三'  

oracle

sqlserver  

mysql  

不支援不支援

支援

"[^]":表示不再括號列中的單個字元

其取值與相同,但它要求所匹配物件為指定字元意外的任一字元。

1)sqlserver

select * from 表名 where 列名 like '[^張李王]三' //將找出不姓「張」,「李」,「王」的「趙三」,「孫三」等;

select * from 表名 where 列名 like '老[^1-4]';  //將排除「老1」到「老4」,尋找「老5」,「老6」、……  

特殊字元模糊查詢

當要查詢的字串包含萬用字元的時候,可以採用下面的方法來查詢

1)sqlerver

用[ ]將特殊字元包含:

select * from 表名 where 列名 like '_[%]_'  

注:access的模糊查詢比較特殊是'?','*' 。 如 select * from 表名 where 列名 like '*b*'

二、將資料集ds1的sql語句修改為:

select * from 訂單 where 1=1$

注:where 1=1表示條件永真,防止沒有之後的引數條件時,where多出而導致出錯;len(area)==0表示引數area為空;"and 貨主地區='"+area+"'" 中間的area表示取引數值,'+' 為字串拼接符號。

$ 表示若引數area為空就不進行過濾,若不為空則貨主地區等於引數值。

此處引數名area與引數面板中新增的下拉框控制項area控制項名一致,即將引數控制項與資料集引數繫結到一起,實現引數的過濾。

1)雙擊a2單元格,選擇

過濾按鈕,給a2單元格增加過濾條件:貨主地區等於公式:

注:nofilter表示不過濾,

if(len($area)==0,nofilter,$area)

表示引數area為空,就不過濾,若不為空則以引數值進行過濾;if(len($province)==0,nofilter,$province)意義相同。

引數聯動,就是指後面乙個引數下拉框的值會根據前乙個引數的值的改變而改變。如下圖中,省份選項會跟隨地區選項而相應變動。

新建ds1資料集:

select * from 訂單  where 貨主地區='$' and 貨主省份='$'

,查詢訂單表,設定兩個查詢條件地區和省份,如下圖:

增加引數 開啟

模板》模板引數,定義乙個引數名為std的引數。

3.3 下拉框顯示值設定

切換到引數介面視窗,使用預設的引數介面,設定std引數的控制項型別為下拉框,資料字典為資料查詢,資料集名稱選擇ds1,實際值為序號,顯示值使用公式表示:

$$$ + " "+ value("ds1",1,2,$$$,1)+" "+ value("ds1",3,2,$$$,1),如下圖所示:

注:value("ds1",1,2,$$$,1)返回value("ds1",3,2,$$$,1)陣列的第1個值,找出對應學號的班級和學生姓名資訊。

相關函式說明:

$$$ :當前單元格的實際值;

value("ds1",1,2,$$$,1):返回ds1中第1列中的元素,這些元素對應的第2列的值為$$$。

value("ds1",3,2,$$$,1):返回ds1中第3列中的元素,這些元素對應的第2列的值為$$$。 

最後乙個引數說明:值小於0時,會取陣列的第乙個值,值大於陣列長度時,會取陣列的最後乙個值,最後將這些結果拼接成字串。

Sql Server 2008 收縮日誌

收縮日誌 alter database dnname set recovery with no wait goalter database dnname set recovery 簡單模式 gouse dnname godbcc shrinkfile n dnname log 11,truncate...

徹底解除安裝sql server2008

微軟的開發工具在按裝和解除安裝時都讓人頭疼,只能是裝在c盤,裝在其他盤時最容易出事 在重新按裝的時候一定要把以前的例項解除安裝完才行。要不就會出錯。在解除安裝sql server後,其實還沒有完成,還要把登錄檔資訊完全刪乾淨,下面就將教您徹底刪除sql server登錄檔的方法,供您參考。在解除安裝...

SQLServer2008語句查詢

1 判斷資料庫是否存在 if exists select from sys.databases where name 資料庫名 drop database 資料庫名 2 判斷表是否存在 if exists select from sysobjects where id object id 表名 an...