當前位置:首頁 » 編程語言 » 檢索sql

檢索sql

發布時間: 2024-07-07 10:30:36

❶ 如何檢索 sql 錯誤日誌或 DBCC 輸出錯誤

為查找問題,有必要經常檢查 DBCC 輸出和 SQL Server 錯誤日誌。這可能會引起錯誤,而且是一件極為煩瑣的過程,尤其是必須在幾台伺服器上進行檢查,而每台伺服器可能有多個資料庫時。Windows NT 在發布時提供一個功能強大的模式搜索工具(稱為 Findstr.exe),該工具可以被用來從很大程度上自動處理該任務。根據是否找到某些錯誤字元串,還可以使用該工具有條件地執行批處理文件。本文講述如何使用 Findstr 工具。
更多信息
Findstr 是一個高性能的模式搜索工具,它使用 Win32 非同步和文件映射 I/O 以獲取最佳的吞吐量。該工具允許使用常規表達式、向下遞歸搜索目錄樹、和排除模式的功能,這樣可以獲得 NOT 功能。有關其它信息,請參閱 Windows NT 文檔。

有兩種使用 Findstr.exe 搜索 SQL Server 錯誤日誌或 DBCC 輸出以查找錯誤的基本方法:

明確說明要查找的字元串。

說明不想查找的字元串(這樣將顯示除這些字元串之外的所有字元串)。
在第一種方法中,可以創建一個字元串列表來定義錯誤,讓 Findstr 進行匹配。該字元串列表可以作為輸入文件提供給 Findstr。

例如,假如您要查找所有的「table corrupt」字元串(該字元串帶有許多嚴重的數據錯誤)以及所有「msg 605」字元串(一種特定的錯誤類型)。請將這些字元串放到一個文件中,其內容類似於:

table corrupt
msg 605

使用下列語法對 DBCC 輸出文件運行 Findstr.exe:

findstr /i /g:search.txt dbcc.* > findstr.out

其中,search.txt 是包含搜索字元串的文件,dbcc.* 對應於一組要搜索的 DBCC 輸出文件,而 findstr.out 是存放搜索結果的文件。

使用該方法要求事先知道要搜索的錯誤字元串。但遺憾地是,並沒有一個全面的 SQL Server 錯誤字元串列表可以涵蓋所有可能的 DBCC、伺服器與內核錯誤。對於 7.0 版以前的版本,只對以下字元串進行搜索就可能提供相當全的范圍作為起始點:「table corrupt」、「level 16」 – 「level 21」以及「Severity: 16」-「Severity: 21."

使用一個小試驗,通常有可能對此做進一步的改進,並得到相當可靠的檢查結果(當然比通過肉眼進行查找要可靠得多)。

另外,還可以使用 Findstr 的「反向匹配」功能排除搜索字元串的列表。該方法應用於 DBCC 輸出比應用於錯誤日誌輸出要簡便得多,這是因為需要排除的獨特的字元串比較少。從某種程度上講,該方法(如果可以使用)要安全得多,因為只需明確地說明不要匹配的內容,而且在默認情況下任何新的或意想不到的錯誤將會被顯示。

由於 7.0 版目前遇到的錯誤消息非常有限,因此「反向匹配」方法可能是適用於這一版本的最好方法。

舉個例子,假設您要將一系列 DBCC 輸出文件中的「The total number」、「Table has」和「Checking」字元串排除在外。這將排除許多不重要的 DBCC 狀態消息,而且不會導致任何錯誤消息的丟失。對於 7.0 版之前的版本,將這些字元串放到內容類似如下文件中:

The total number
Table has
Checking

使用以下語法對 DBCC 輸出文件運行 Findstr:

findstr /v /i /g:search.txt dbcc.* > findstr.out

其中 search.txt 是包含搜索字元串的文件,dbcc.* 與要搜索的一組輸出文件匹配,而 findstr.out 是存放搜索結果的文件。/v 參數表明是「反向匹配」,這可以有效地匹配除列表中這些字元串之外的所有字元串。

對於 7.0 版,做法與上述方法類似,但使用下列字元串:

pages for object
DBCC results
DBCC execution completed

下面是錯誤日誌排除列表的一個示例,該排除列表將篩選出不重要的消息並查找最為重要的錯誤。該示例並不全面,僅作為示例使用。可以根據您的需要對其進行修改。

Copyright
All rights reserved
Logging SQL Server
initconfig: number
SQL Server is start
initializing virtual
Opening Master Data
Loading SQL Server
Recovering Database
Recovery dbid
transactions roll
Activating disk
initializing virtual
server name is
Clearing
Using 'SQLEVENT.DLL
Using 'OPENDSNT.DLL
Using 'NTWDBLIB.DLL
Using 'SSNMPNTW.DLL
rolled forward
default sort
nocase
default character
recovery complete
terminating e
windows nt
(id =
killed by hostname
17824
17825
1608
17832
OS error : 109
OS error : 232
unable to write to
restrictions
contracts
server is unnamed
no_log
working thread
Sybase
network error
united states
unable to read login
plication
subdivision
clause
number of buffers
using asynchronous disk
pipe name is
number of proc buffers
network information
file descriptors
transactions before ckpt
shutdown by request

在某些情況下,將這兩種方法結合使用可以將兩者的優點結合在一起,或者至少可以避過因使用其中一個方法而出現的問題。

例如,假設您在搜索錯誤日誌查找「Severity:16」到「Severity:21」字元串,這些字元串應當能匹配最嚴重的錯誤。但是您會在搜索輸出結果中發現幾個與通信相關的錯誤,如 1608 和 17832,這些錯誤通常不表示嚴重的問題。您可以保留原來的搜索條件並只將這些特定的不必要錯誤從搜索結果中排除出去,其方法是將一個 Findstr 命令輸出到另一個中:

findstr /i /g:search.txt errorlog*.* | findstr
/v /i /g:exclude.txt > f.out

其中 search.txt 是包含搜索字元串的文件,errorlog*.* 是要搜索的 SQL Server 錯誤日誌文件,exclude.txt 是包含要排除的搜索字元串的文件,f.out 是存放搜索結果的文件。這種方法可以多級層疊使用,但不能在同一級連續多次層疊。

編寫批處理文件,有可能根據 Findstr 是否檢查到某個錯誤字元串有條件地執行操作。這種技術使用 Windows NT 的條件處理命令「&&」和「||」。如果在 seach.txt 文件中找到任何 SQL Server 錯誤字元串,下面的命令將執行批處理文件 batch1.bat:

findstr /i /g:search.txt errorlog*.* && batch1

Batch1.bat 能夠調用程序,甚至運行使用 SQL Server 的 xp_sendmail 功能發送郵件的 ISQL 作業,通知操作員出現的問題。

以上所說明的技術可以結合使用以執行多種任務。例如,下面的批處理文件將不斷運行 Findstr 命令,如果在 search.txt 文件中找到任何 SQL 錯誤字元串,該命令都會有條件地執行 batch1.bat 文件,排除 exclude.txt 中的字元串。

echo off
:start
findstr /i /g:search.txt errorlog*.* | findstr
/v /i /g:exclude.txt && (echo WARNING & batch1)
goto start

通過一個小的試驗,就會發現這些技術有助於減少搜索 SQL Server 錯誤日誌和 DBCC 輸出文件所花費的精力。上述這些技術也可用於對任何普通文本的搜索,而並非僅限於與 SQL Server 相關的內容。

有些情況下,Findstr 可能受到內部限制,而不能完成搜索任務。出現這種情況時,在輸出文件中會得到下列消息:

FINDSTR:Write error.
如果出現這種情況,請減少所使用的匹配字元串數,嘗試使用正向匹配替代反向匹配,或者使用其它搜索工具,比如 Perl(以下對此進行更多的介紹)。

相關主題是 Windows NT 命令行工具的使用。啟動 Windows NT 4.0 可以得到增強的命令擴展。運行 cmd /x /? 查看列表。增強的 FOR 命令就是一個示例。執行 for /? 查看語法。下面的例子說明如何在一行中使用 FOR 語句連續 5 次運行 isql,並將每次的輸出結果保存到具有不同稱的文件中:

FOR /L %f IN (1, 1, 5) do isql /Usa /P /itest.sql /otest%f.out

下面的例子說明如何將包含某個錯誤字元串的所有文件移到公共目錄中。這對於從一大堆沒有錯誤的錯誤日誌中剔除包含錯誤的錯誤日誌是很有用的,這樣可以將這些錯誤日誌發送給某些專家進一步研究。下面將舉例說明如何在包含名稱列表的文件中對每個文件名執行程序。

findstr /s /i /c:"error.*605" errorlog*.* > srch.out
FOR /F %f IN (srch.out) do %f c:\results

除命令擴展之外,Windows NT 資源工具包中還包含 Perl 版本。Perl 是一種類似於 C 的解釋性語言,該語言在很大程度上優化了對文件和字元串的處理。使用 Perl 語言很容易實現復雜的模式匹配和編輯/替代操作。Perl 可以和 Windows NT 命令行結合使用以提供非常強大的功能。有許多關於 Perl 的書籍和站點信息資源。

❷ sql語言中,實現數據檢索的語句是

一、檢索單個列

命令:

SELECT 列名 FROM 表名;

注意:語句將返回表中所有行,數據沒有過濾(過濾將得出結果集的一個子集),也沒有排序。

二、檢索多個列

命令:

SELECT 列名1,列名2,?? FROM 表名;

注意:在選擇多個列時,一定要在列名之間加上逗號,但是最後一個列名後不加。

三、檢索所有列

命令(也可以按照檢索多個列的方法把所有列名列出,等價於用 * 符號)

SELECT * FROM 表名;

(2)檢索sql擴展閱讀:

注意事項

基本查詢語句

select 列名1,列名2 from 表名;

查看錶的所有信息:select * from 表名;

書寫標准:

1、不區分大小寫

2、可以換行

3、關鍵詞不可以跨行或者分割書寫

4、通常一個句子一行(排版可以增加可讀性)

5、「;」代表結尾,結尾必須使用

❸ sql中全文檢索的具體細節

全文索引和全文檢索是sql server 7.0的新增功能,它能夠對數據中的字元類型列(如varchar、text等類型列)進行索
引,並通過索引實現全文搜索查詢。sql server常規索引與全文檢索相比,二者的區別如下:

常規索引 全文索引
使用create index或約束定義創建 使用全文索引存儲過程創建和刪除
通過刪除或執行drop index語句刪除

當插入、修改或刪除數據時,sql server 只能通過任務調度或執行存儲過
能夠自動更新常規索引內容 程來填充全文索引

每個表可以建立多個常規索引 每個表只能有一個全文索引
索引不能分組 同一個資料庫中的多個全文索引可
以組織為一個全文目錄
常規索引存儲在資料庫文件中 全文索引存儲在文件系統中

為了支持全文索引操作,sql server 7.0新增了一些新存儲過程和transact-sql語句,使用這些存儲過程創建全文索引的
具本步驟為(括弧內為每步所調用的存儲過程名稱):

(1)啟動資料庫的全文處理功能(sp_fulltext_datebase);
(2)建立全文目錄(sp_fulltext_catalog);
(3)在全文目錄中注冊需要全文索引的表(sp_fulltext_table);
(4)指出表中需要全文檢索的列名(sp_fulltext_column)
(5)為表創建全文索引(sp_fulltext_table);
(6)填充全文索引(sp_fulltext_catalog)。

例:
use pubs
go
exec sp_fulltext_database 'enable'
--為titles表建立全文索引數據元,其中create為建立,activate為激活,deactivate為關閉表全文索引的激活狀態,使
它不再參加全文目錄填充,drop為刪除;create參數中,後面跟的是全文目錄名稱和索引列名。
--下面語句為pubs資料庫中的titles表創建全文索引數據元,存儲該數據元的全文目錄為FT_pubs,所使用的唯一索引為
UPKCL_titleidind(title表中為title_id列的PRIMARY KEY約束所建立的唯中索引)
sp_fulltext_table titles,'create','FT_pubs','upkcl_titledind'

--激活它
sp_fulltext_table titles,'activate'

--指定參加全文索引的列
sp_fulltext_column 'titles','title','add'
sp_fulltext_column 'titles','notes','add'

下面是一個完整的例子:
--在執行該腳本程序之前啟動sql server的全文搜索服務,即microsoft search服務
use pubs --打開資料庫
go
--檢查pubs是否支持全文索引,如果不支持全文索引,則使用sp_fulltext_datebase打開該功能
if (select databaseproperty ('pubs','IsFulltextEnables'))=0
execute sp_fulltext_database 'enable'
--建立全文目錄FT_pubs
execute sp_fulltext_catalog 'FT_pubs','create'
--為titles表建立全文索引數據元
execute sp_fulltext_table 'titles','FT_pubs','UPKCL_titleidind'
--設置全文索引列名
execute sp_fulltext_column 'titles','title','add'
execute sp_fulltext_column 'titles','notes','add'
--建立全文索引
execute sp_fulltext_table 'FT_pubs','activate'
--填充全文索引目錄
execute sp_fulltext_catalog 'FT_pubs','start_full'
GO
--檢查全文目錄填充情況
WHILE FulltextCatalogProperty("FT_pubs','PopulateStatus')<>0
BEGIN
--如果全文目錄正處於填充狀態,則等待30秒後再檢測一次
WAITFOR DELAY 『0:0:30』
END
--全文目錄填充完成後,使用全文目錄檢索

--查詢title列或notes列中包含有database或computer字元串的圖書名稱
SELECT title
FROM title
where CONTAINTS(title,'database')
or contains(notes,'database')
or contains(title,'computer')
or contains(notes,'computer')

❹ 建立全文檢索的sql語句

前言:微軟的SQL Server資料庫是一個在中低端企業應用中佔有廣泛市場的關系型資料庫系統,它以簡單、方便、易用等特性深得眾多軟體開發人員和資料庫管理人員的鍾愛。但SQL Server 7.0以前的資料庫系統由於沒有全文檢索功能,致使無法提供像文本內容查找此類的服務,成為一個小小的遺憾。從SQL Server 7.0起,到如今的SQL Server 2000終於具備了全文檢索功能,使用戶可以高效地檢索存儲在資料庫char、varchar、text、ntext、nchar、nvarchar等數據類型列中的文本數據。
建立全文索引
在進行全文檢索之前,必須先建立和填充資料庫全文索引。為了支持全文索引操作,SQL Server 7.0新增了一些存儲過程和Transact-SQL語句。使用這些存儲過程創建全文索引的具體步驟如下(括弧內為調用的存儲過程名稱):
1. 啟動資料庫的全文處理功能(sp_fulltext_
database);;
2. 建立全文檢索目錄(sp_fulltext_catalog);
3.在全文檢索目錄中注冊需要全文索引的表(sp_fulltext_table);
4. 指出表中需要全文檢索的列名(sp_fulltext_
column);;
5. 為表創建全文索引(sp_fulltext_table);;
6. 填充全文檢索目錄(sp_fulltext_catalog)。
下面舉例說明如何創建全文索引,在本例中,對Test資料庫Book表中Title列和Notes列建立全文索引。
use test //打開資料庫
//打開全文索引支持,啟動SQL Server的全文搜索服務
execute sp_fulltext_database 『enable』
//建立全文檢索目錄ft_test
execute sp_fulltext_catalog 『ft_test』, 『create』
為Title列建立全文索引數據元,pk_title為Book表中由主鍵所建立的唯一索引,這個參數是必需的。
execute sp_fulltext_table 『book』,『create』, 『ft_test』,『pk_title』
//設置全文索引列名
execute sp_fulltext_column 『book』, 『title』, 『add』
execute sp_fulltext_column 『book』,『notes』, 『add』
//建立全文索引
execute sp_fulltext_table 『book』, 『activate』
//填充全文索引目錄
execute sp_fulltext_catalog 『ft_test』, 『start_full』
至此,全文索引建立完畢。
進行全文檢索
SQL Server 2000提供的全文檢索語句主要有CONTAINS和FREETEXT。CONTAINS語句的功能是在表的所有列或指定列中搜索:一個字或短語;一個字或短語的前綴;與一個字相近的另一個字;一個字的派生字;一個重復出現的字。
CONTAINS語句的語法格式為:
CONTAINS({column | *}), <contains_search_condition> )
其中,column是搜索列,使用「*」時說明對表中所有全文索引列進行搜索。Contains_search_
condition 說明CONTAINS語句的搜索內容,其語法格式為:
{||||}[{{AND|AND NOT|OR}}] [...n]
下面就simple_term和prefix_term參數做簡要說明:
simple_term是CONTAINS語句所搜索的單字或短語,當搜索的是一個短語時,必須使用雙引號作為定界符。其格式為:
{『word』|「 phrase」}
prefix_term說明CONTAINS語句所搜索的字或短語前綴,其格式為:
{「word*」 | 「phrase*」}
例如,下面語句檢索Book表的Title列和Notes列中包含「database」或「computer」字元串的圖書名稱及其注釋信息:
select title, notes
from book
where contains(tilte, 『database』) or contains(notes,『database』)
or contains(title,『computer』) or contains(notes,『computer』)
FREETEXT語句的功能是在一個表的所有列或指定列中搜索一個自由文本格式的字元串,並返回與該字元串匹配的數據行。所以,FREETEXT語句所執行的功能又稱做自由式全文查詢。
FREETEXT語句的語法格式為:FREETEXT({column | * },『freetext_string』)
其中,column是被搜索列,使用「*」時說明對表中的所有全文索引列進行搜索。Freetext_string參數指出所搜索的自由文本格式字元串。
例如,下面語句使用FREETEXT語句搜索Book表中包含「Successful Life」字元串的數據行:
select title, notes
from book
where freetext(*,『Successful Life』)

❺ SQL server鏁版嵁搴撴煡璇㈣鍙ヤ嬌鐢ㄦ柟娉曡︾粏璁茶В

涓銆 綆鍗曟煡璇

綆鍗曠殑Transact-SQL鏌ヨ㈠彧鍖呮嫭閫夋嫨鍒楄〃銆丗ROM瀛愬彞鍜學HERE瀛愬彞銆傚畠浠鍒嗗埆璇存槑鎵鏌ヨ㈠垪銆佹煡璇㈢殑琛ㄦ垨瑙嗗浘銆佷互鍙婃悳緔㈡潯浠剁瓑銆

渚嬪傦紝涓嬮潰鐨勮鍙ユ煡璇testtable琛ㄤ腑濮撳悕涓衡滃紶涓夆濈殑nickname瀛楁靛拰email瀛楁點

               

   SELECT nickname,email

   FROM testtable

   WHERE name='寮犱笁'

(涓) 閫夋嫨鍒楄〃

閫夋嫨鍒楄〃(select_list)鎸囧嚭鎵鏌ヨ㈠垪錛屽畠鍙浠ユ槸涓緇勫垪鍚嶅垪琛ㄣ佹槦鍙楓佽〃杈懼紡銆佸彉閲(鍖呮嫭灞閮ㄥ彉閲忓拰鍏ㄥ矓鍙橀噺)絳夋瀯鎴愩

1銆侀夋嫨鎵鏈夊垪

渚嬪傦紝涓嬮潰璇鍙ユ樉紺簍esttable琛ㄤ腑鎵鏈夊垪鐨勬暟鎹:

               

   SELECT *

   FROM testtable

2銆侀夋嫨閮ㄥ垎鍒楀苟鎸囧畾瀹冧滑鐨勬樉紺烘″簭

鏌ヨ㈢粨鏋滈泦鍚堜腑鏁版嵁鐨勬帓鍒楅『搴忎笌閫夋嫨鍒楄〃涓鎵鎸囧畾鐨勫垪鍚嶆帓鍒楅『搴忕浉鍚屻

渚嬪:

               

   SELECT nickname,email

   FROM testtable

3銆佹洿鏀瑰垪鏍囬

鍦ㄩ夋嫨鍒楄〃涓錛屽彲閲嶆柊鎸囧畾鍒楁爣棰樸傚畾涔夋牸寮忎負:

鍒楁爣棰=鍒楀悕

鍒楀悕 鍒楁爣棰

濡傛灉鎸囧畾鐨勫垪鏍囬樹笉鏄鏍囧噯鐨勬爣璇嗙︽牸寮忔椂錛屽簲浣跨敤寮曞彿瀹氱晫絎︼紝渚嬪傦紝涓嬪垪璇鍙ヤ嬌鐢ㄦ眽瀛楁樉紺哄垪鏍囬:

               

   SELECT 鏄電О=nickname,鐢靛瓙閭浠=email

   FROM testtable

4銆佸垹闄ら噸澶嶈

SELECT璇鍙ヤ腑浣跨敤ALL鎴朌ISTINCT閫夐」鏉ユ樉紺鴻〃涓絎﹀悎鏉′歡鐨勬墍鏈夎屾垨鍒犻櫎鍏朵腑閲嶅嶇殑鏁版嵁琛岋紝榛樿や負ALL銆備嬌鐢―ISTINCT閫夐」 鏃訛紝瀵逛簬鎵鏈夐噸澶嶇殑鏁版嵁琛屽湪SELECT榪斿洖鐨勭粨鏋滈泦鍚堜腑鍙淇濈暀涓琛屻

5銆侀檺鍒惰繑鍥炵殑琛屾暟

浣跨敤TOP n [PERCENT]閫夐」闄愬埗榪斿洖鐨勬暟鎹琛屾暟錛孴OP n璇存槑榪斿洖n琛岋紝鑰孴OP n PERCENT鏃訛紝璇存槑n鏄琛ㄧず涓鐧懼垎鏁幫紝鎸囧畾榪斿洖鐨勮屾暟絳変簬鎬昏屾暟鐨勭櫨鍒嗕箣鍑犮

渚嬪:

               

   SELECT TOP 2 *FROM testtable SELECT TOP 20 PERCENT * FROM testtable

(浜)FROM 瀛愬彞

FROM瀛愬彞鎸囧畾SELECT璇鍙ユ煡璇㈠強涓庢煡璇㈢浉鍏崇殑琛ㄦ垨瑙嗗浘銆傚湪FROM瀛愬彞涓鏈澶氬彲鎸囧畾256涓琛ㄦ垨瑙嗗浘錛屽畠浠涔嬮棿鐢ㄩ楀彿鍒嗛殧銆

鍦‵ROM瀛愬彞鍚屾椂鎸囧畾澶氫釜琛ㄦ垨瑙嗗浘鏃訛紝濡傛灉閫夋嫨鍒楄〃涓瀛樺湪鍚屽悕鍒楋紝榪欐椂搴斾嬌鐢ㄥ硅薄鍚嶉檺瀹氳繖浜涘垪鎵灞炵殑琛ㄦ垨瑙嗗浘銆備緥濡傚湪usertable鍜 citytable琛ㄤ腑鍚屾椂瀛樺湪cityid鍒楋紝鍦ㄦ煡璇涓や釜琛ㄤ腑鐨刢ityid鏃跺簲浣跨敤涓嬮潰璇鍙ユ牸寮忓姞浠ラ檺瀹:

               

   SELECT username,citytable.cityid

   FROM usertable,citytable

   WHERE usertable.cityid=citytable.cityid

鍦‵ROM瀛愬彞涓鍙鐢ㄤ互涓嬩袱縐嶆牸寮忎負琛ㄦ垨瑙嗗浘鎸囧畾鍒鍚:

琛ㄥ悕 as 鍒鍚

琛ㄥ悕 鍒鍚

渚嬪備笂闈㈣鍙ュ彲鐢ㄨ〃鐨勫埆鍚嶆牸寮忚〃紺轟負:

               

   SELECT username,b.cityid

   FROM usertable a,citytable b

   WHERE a.cityid=b.cityid

SELECT涓嶄粎鑳戒粠琛ㄦ垨瑙嗗浘涓媯緔㈡暟鎹錛屽畠榪樿兘澶熶粠鍏跺畠鏌ヨ㈣鍙ユ墍榪斿洖鐨勭粨鏋滈泦鍚堜腑鏌ヨ㈡暟鎹銆

渚嬪:

               

   SELECT a.au_fname+a.au_lname

   FROM authors a,titleauthor ta

   (SELECT title_id,title

   FROM titles

   WHERE ytd_sales10000

   ) AS t

   WHERE a.au_id=ta.au_id

   AND ta.title_id=t.title_id

姝や緥涓錛屽皢SELECT榪斿洖鐨勭粨鏋滈泦鍚堢粰浜堜竴鍒鍚峵錛岀劧鍚庡啀浠庝腑媯緔㈡暟鎹銆

(涓) 浣跨敤WHERE瀛愬彞璁劇疆鏌ヨ㈡潯浠

WHERE瀛愬彞璁劇疆鏌ヨ㈡潯浠訛紝榪囨護鎺変笉闇瑕佺殑鏁版嵁琛屻備緥濡備笅闈㈣鍙ユ煡璇㈠勾榫勫ぇ浜20鐨勬暟鎹:

               

   SELECT *

   FROM usertable

   WHERE age20

WHERE瀛愬彞鍙鍖呮嫭鍚勭嶆潯浠惰繍綆楃:

姣旇緝榪愮畻絎(澶у皬姣旇緝):銆=銆=銆併=銆併!銆!

鑼冨洿榪愮畻絎(琛ㄨ揪寮忓兼槸鍚﹀湪鎸囧畾鐨勮寖鍥):BETWEEN鈥AND鈥

NOT BETWEEN鈥AND鈥

鍒楄〃榪愮畻絎(鍒ゆ柇琛ㄨ揪寮忔槸鍚︿負鍒楄〃涓鐨勬寚瀹氶」):IN (欏1,欏2鈥︹)

NOT IN (欏1,欏2鈥︹)

妯″紡鍖歸厤絎(鍒ゆ柇鍊兼槸鍚︿笌鎸囧畾鐨勫瓧絎﹂氶厤鏍煎紡鐩哥):LIKE銆丯OT LIKE

絀哄煎垽鏂絎(鍒ゆ柇琛ㄨ揪寮忔槸鍚︿負絀):IS NULL銆丯OT IS NULL

閫昏緫榪愮畻絎(鐢ㄤ簬澶氭潯浠剁殑閫昏緫榪炴帴):NOT銆丄ND銆丱R

1銆佽寖鍥磋繍綆楃︿緥:age BETWEEN 10 AND 30鐩稿綋浜巃ge=10 AND age=30

2銆佸垪琛ㄨ繍綆楃︿緥:country IN ('Germany','China')

3銆佹ā寮忓尮閰嶇︿緥:甯哥敤浜庢ā緋婃煡鎵撅紝瀹冨垽鏂鍒楀兼槸鍚︿笌鎸囧畾鐨勫瓧絎︿覆鏍煎紡鐩稿尮閰嶃傚彲鐢ㄤ簬char銆乿archar銆乼ext銆乶text銆 datetime鍜宻malldatetime絳夌被鍨嬫煡璇銆

涓婁竴欏12 涓嬩竴欏

❻ sql server 2000的查詢方式有哪些

這個?
sql查詢方式總結

簡單查詢
1,檢索表中所有列
select * from <表名>
2,檢索表中特定列
select <列名表列> from <表名>
3,重排列順序
select cloumn_3,cloumn_1 from <表名>
4,用單引號加入字元串
select cloumn_3,cloumn_1 '所要加的欄位名' from<表名>
5,改變列標題
select cloumn_3,cloumn_1 as '新列名' from <表名>
6,消除重復行
select distinct cloumn_3 from <表名>
7,返回有限的結果
select top n [percent]* from <表名>
8,使用算數運算符操縱列
example:
select cloumn_1+'('+cloumn_2+')' [as] '新列名',cloumn_3*cloumn_4 '新列名' from <表名>
9,使用函數操縱列
--常用函數有substring()[取子字元串]、getdate()[返回當前日期和時間]、year(data)[返回日期中的年份]、convert()[類型轉換]
example:
select distinct substring(title,1,5) from pubs
又如:返回當前伺服器的用戶名
select 'login'=suser_sname()
再如查詢pubs資料庫的titles表中所有書的價格信息,對於書名長度超過38個字元的,將其餘部分截掉
use pubs
select convert(char(38),title)+'IS $'+ convert(varchar(10),price) from titles

選擇行查詢
1,基於比較選擇行
example:
select 價格,* from goods where 價格>=1000
2,基於范圍選擇行
select * from goods where 價格 between 20 and 2000
--3,基於列表選擇行
select * from goods where 品名 not in('方正A','聯想')
4,基於字元串選擇行
--百分號(%):代表任意多個字元
--下劃線(_):代表單個字元
--中括弧([]):代表指定范圍內的單個字元
--復合符號([^]):代表不在指定范圍內的單個字元
--5,基於未知選擇行
--使用IS NULL IS not NULL
select 姓名,職業 from students where 聯系電話 IS null
--6,基於多個搜索條件選擇行
select 姓名,職業,聯系電話,地址 from students
where (聯系電話 like '%3%'or 聯系電話 like '%5%')
and (地址 like '河南')
--7,結果排序
select * from goods
select 價格 from goods
order by 價格 ASC

生成總結查詢
使用SQL查詢語言,用戶可以方便地為查詢到的結果進行分組、計算或對其進行過濾等,從而得到總結性的數據結果集。
1,使用集合函數進行統計
(1)AVG 該函數用於計算查詢結果的平均值。其語法格式如下:
AVG([all | distinct] 算數表達式) 其中各參數的意義如下:
all:全部數據都參與計算,為默認的選項。
distinct:消除重復的數據,只計算不同的值的平均值。
算數表達式:該表達式即可以只涉及一列,也可涉及多列
example:要計算Sales資料庫中Goods表中的所有貨品的平均價格
use Sales
select avg(價格) from goods
(2)min、max 這兩個函數用於查詢最小值和最大值,語法格式如下:
min([all | distinct] 算數表達式)
(3)sum 該函數用於計算查詢到的數據值得總和
example:計算Pubs資料庫中的titles表中所有商業類書籍的平均預付款和本年度迄今為止的全部銷售額。
use pubs
select avg(advance),sum(ytd_sales) from titles where type='business'
(4)count 該函數可以計算查詢到的結果的數目
example:查詢sales資料庫中customers表中客戶地址的數量。
use sales
select count(distinct 地址) from customers
2,數據分組
(1)group by子句
在SQL Sever中,可以按照一定的條件對查詢到的結果進行分組,然後對每一組數據計算統計信息。
說明:1,使用group by 子句能按列或表達式分組,一般與集合函數一起使用,每組差生一個值。
2,在包含group by子句的查詢語句中,select語句後的所有欄位列表,除集合函數外,都應該包含 在group by子句中,否則會出錯。
3,對數據進行分組時,也可以用條件進行選擇,這就是having子句。
(2)having子句
having子句可以用來向使用Group by子句的查詢中添加過濾准則,即檢查分組之後的各組是否滿足條件。having子句語法與where子句一樣,但兩者之間還是存在一定區別,具體如下:
1,where子句的作用是檢查每條記錄是否滿足條件,而having子句是檢查分組之後的各組是否滿足條件。
2,having子句是針對Group by子句的,沒有Group by子句時不能使用having子句。
3,having子句可以在條件中包含集合函數,但where子句不行
exam:顯示sales資料庫中Goods表中存貨量大於70的貨品及庫存數量,具體代碼如下:
use sales
----select 品名,庫存數量 from Goods where 庫存數量>70
select 品名,庫存數量=sum(庫存量) from Goods group by 品名 having sum(庫存量)>7
①where子句排出不滿足條件的行
②group by子句收集滿足where子句的搜索行,並將這些行分組
③having子句排出不符合其條件的組
此外,使用group by all能夠顯示所有的組,即便是被where子句排除的組也將會顯示出來
3,計算匯總數據
(1)compute子句
可以使用該子句計算匯總數據,該匯總數據將作為附加的匯總列出現在結果集的最後
exam:在pubs資料庫的titles表中查詢類型是以cook結尾的書的價格和總價
use pubs
select type,price from titles where type like '%cook'
order by type,price
compute sum(price)
(2)compute by 子句
在查詢中使用該子句可以按給定的條件將查詢結果分組,並為每種結果計算匯總數據。
exam:在pubs資料庫的titles表中查詢類型是以cook結尾的書的價格和每種類型的總價
use pubs
select type,price from titles where type like '%cook'
order by type,price
compute sum(price) by type
(3)計算匯總數據時的注意事項
在使用compute子句和compute by 子句時,應注意下面的限制條件:
1,關鍵字distinct不允許同集合函數一起使用
2,compute子句中的列必須在select後面的選擇列表
3,select into 不能和compute子句一塊使用
4,若使用compute by子句,則必須使用order by子句。此時,compute by子句後出現的列必須與order by後出現的列相同,最少也應該是其子集,而且必須具有相同的從左到右的順序並且以相同的表達式開頭,不能跳過任何錶達式。

http://hi..com/wmaple/blog/item/6de746d0d3ba708aa1ec9c1b.html

熱點內容
phpcms資料庫備份文件 發布:2024-11-26 12:33:14 瀏覽:834
福州雲伺服器找哪家 發布:2024-11-26 12:25:12 瀏覽:84
官服安卓是什麼意思 發布:2024-11-26 12:24:21 瀏覽:528
阿里雲伺服器修改埠 發布:2024-11-26 12:18:21 瀏覽:9
網路存儲器哪個好 發布:2024-11-26 12:03:34 瀏覽:938
crabgame怎麼換伺服器 發布:2024-11-26 12:01:26 瀏覽:250
打開一百兆cad不卡要什麼配置 發布:2024-11-26 11:54:17 瀏覽:616
qq為什麼密碼修改好了就進不去 發布:2024-11-26 11:37:05 瀏覽:383
電容為啥耐壓越大存儲量越小 發布:2024-11-26 11:31:52 瀏覽:190
天然氣車載儲氣瓶泄露處置腳本 發布:2024-11-26 11:17:36 瀏覽:255