方法/步驟
1、找到要打開的資料庫文件,如圖
2、如圖所示,該資料庫文件後綴名為.mdf,是SQL Server資料庫的數據文件,這里將用SQL Server資料庫對該文件進行打開。啟動SQL Server資料庫,如圖
3、圖為啟動SQL Server Management Studio時的界面,登錄後可以管理資料庫數據。開啟之後的界面如圖
4、提示用戶輸入用戶名和登錄密碼,輸入正確後,點擊登錄,進入管理界面,如圖
5、進入管理界面後,右鍵選擇資料庫,再選擇【附加】功能,如圖
6、點擊【附加】後,出現窗口,如圖
7、在【附加資料庫】窗口中,點擊【添加】按鈕,提示選擇要附加的資料庫,如圖
8、選種要添加的資料庫,點擊確定,在管理界面中會出現添加的資料庫,如圖
9、打開資料庫,就可以看到資料庫中的表,表中的數據都可以看到。如圖
注意事項
按以上步驟來,就可以打開資料庫文件。
不要直接點右鍵進行打開,可能會對文件告成損壞。
⑵ SQL Server中SCAN 和SEEK的區別
SQL SERVER
使用掃描(scan)和查找(seek)這兩種演算法從數據表和索引中讀取數據。這兩種演算法構成了查詢的基礎,幾乎無處不在。Scan
會掃描並且返回整個表或整個索引。 而 seek
則更有效率,根據謂詞(predicate),只返索引內的一個或多個范圍內的數據。下面將以如下的查詢語句作為例子來分析 scan 和 seek:
select OrderDate from Orders where OrderKey = 2
Scan
使用 Scan 的方式,SQL Server 會去讀取 Orders 表中的每一行數據,讀取的時候評估是否滿足謂詞 「where
order=2」。如果滿足(數據行符合條件),則返回該行。這個例子里,我們將這個謂詞稱作「resial
predicate」。為了得到最優的性能,SQL 會盡可能地在掃描中使用「resial predicate」。但如果 resial
predicate 的開銷過於昂貴,SQL Server 可能會使用單獨的「filter iterator」. 「resial
predicate」以 where 關鍵字的形式出現在文本格式的 plan 中。對 XML 格式的
plan,則是<predicate>標記的形式。
下面這個掃描的文本格式的 plan 的結果:
–Table Scan (OBJECT:([ORDERS]), WHERE:([ORDERKEY]=(2)))
下圖說明了掃描的方式:
無論數據行是否滿足條件,掃描的讀取方式都會訪問表中的每一個數據,所以 scan 的成本和表的數據總量是成比例的。
因此,如果表很小或者表內的大多數數據多滿足謂詞,scan 是一種有效率的讀取方式。然而如果表很大或者絕大多數的數據並不滿足謂詞,
那麼這種方式會讓我們訪問到太多不需要的數據頁面,並執行更多的額外的 IO 操作。
Seek
繼續以上面的查詢為例子,如果在 orderkey 列上有一個索引,那麼 seek 可能會是一個好的選擇。使用 seek
的訪問方式,SQL Server 會使用索引直接導向到滿足謂詞條件的數據行。 這個例子里,我們將這個謂詞稱為「seek predicate」。
大多數情況下,SQL Server 不必將「seek predicate」重新評估為「resial predicate」。
索引會保證「seek」只返回符合條件的數據行。「seek predicate」以 seek 關鍵字的形式出現在文本格式的 plan 中。 對於
xml 格式的 plan,則以<seekpredicates>標記出現。
下面是使用 seek 的文本格式的 plan 的結果:
–Index Seek (OBJECT:([ORDERS].[OKEY_IDX]), SEEK:([ORDERKEY]=(2)) ORDERED FORWARD)
使用 seek 時,SQL Server
只會直接訪問到滿足條件的數據行和數據頁,因此它的成本只跟滿足條件的數據行的及其相應的數據頁面數量成比例, 和基表的數據量完全沒有關系。因此,如果
對於一個選擇性很高(通過這個謂詞,可以篩選掉表中的大部分數據)的謂詞條件,seek 是非常高效的。
下面的表格列出了 seek 和 scan 這兩種查找方式和堆表,聚簇索引和非聚簇索引的各種組合:
Scan
Seek
Heap
Table Scan
Clustered Index
Clustered Index Scan
Clustered Index Seek
Non-Clustered Index
Index Scan
Index Seek
⑶ 如何用SQL語句將查詢結果存儲到文本文件中
1.打開考生文件夾下的資料庫College,物理刪除該資料庫中的temp表,然後將3個自由表"教師表"、"課程表"和"學院表"添加到該資料庫中。 2.為"課程表"和"教師表"分別建立主索引和普通索引,欄位名和索引名均為"課程號",並為兩個表建立一對多的聯系。 3.使用SQL語句查詢"教師表"中工資大於等於4500的教師的全部信息, 將查詢結果按職工號升序排列, 查詢結果存儲到文本文件one.txt中 ,SQL語句存儲於文件two.prg中。
⑷ Excel Sql 連接文本文檔的語句怎麼寫
TEXT格式不定,所以無法用SQL連接。
以下是我錄的一段宏,應該可以理解吧,不懂的話可以看下QueryTables的幫助:
Sub xpt280()
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\abc.txt", Destination:=Range("$A$1"))
.Name = "abc"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 936
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
⑸ 如何利用SQL Server 2012資料庫操作事務管理
一、啟用FileTable
1、修改資料庫引擎的屬性
打開「SQL Server配置管理器」,修改SQL Server資料庫引擎的屬性。使用此頁可針對此 Microsoft SQL Server 2012安裝啟用 FILESTREAM。
(1)針對 Transact-SQL 訪問啟用 FILESTREAM
選中此項可針對 Transact-SQL 訪問啟用 FILESTREAM。 必須選中此控制選項,才能使用其他控制選項。如果不啟用此選項,就不能添加FileStream文件組。
(2)針對文件 I/O 流訪問啟用 FILESTREAM
選中此項可針對 FILESTREAM 啟用 Win32 流訪問。
(3)Windows 共享名
使用此控制選項可輸入將用來存儲 FILESTREAM 數據的 Windows 共享的名稱。默認為該SQL Server實例的名稱。
(4)允許遠程客戶端針對 FILESTREAM 數據啟用流訪問
選中此控制選項可允許遠程客戶端訪問此伺服器上的此 FILESTREAM 數據。
2、修改伺服器的屬性
打開「SQL Server Management Studio」,修改該實例的配置。默認配置如下:
上述選項解釋如下:
(1)「FILESTREAM 訪問級別」顯示 SQL Server 實例上支持的 FILESTREAM 的當前級別。若要更改訪問級別,請選擇以下值之一:
已禁用
無法將二進制大型對象 (BLOB) 數據存儲在文件系統中。此為默認值。即filestream access level=0
已啟用 Transact-SQL 訪問
可使用 Transact-SQL 訪問 FILESTREAM 數據,但不能通過文件系統進行訪問。即filestream access level=1
已啟用完全訪問
FILESTREAM 數據可使用 Transact-SQL 以及通過文件系統進行訪問。即filestream access level=0
注意:在首次啟用 FILESTREAM 時,您可能需要重新啟動計算機才能配置驅動程序。
(2)「FILESTREAM 共享名稱」顯示在安裝過程中選擇的 FILESTREAM 共享的只讀名稱。
在本次實驗中,我們將「FILESTREAM 訪問級別」 設定為:已啟用完全訪問。
如果是通過T-SQL腳本執行,則運行以下腳本:
EXEC sys.sp_configure N'filestream access level', N'2'
RECONFIGURE WITH OVERRIDE
注意:設置完成之後,重啟實例。
3、配置防火牆
若要在防火牆保護的環境中使用 FILESTREAM,客戶端和伺服器都必須能夠將 DNS 名稱解析為包含 FILESTREAM 文件的伺服器。FILESTREAM 要求 Windows 文件共享埠 139 和 445 處於打開狀態。
二、配置文件組
1、添加文件組
完成上述操作之後,就可以為該資料庫添加專用於FileStream的文件組。
如果是通過腳本操作,請運行以下腳本:
ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM
2、添加文件
完成上述操作之後,就可以為該資料庫添加FilStream類型的資料庫文件。
在本例中,系統並沒有為「FileStream數據」的文件類型創建mdf或ndf文件,而是在文件夾C:\SqlData下面自動創建以邏輯名稱命名的文件夾,即 C:\SqlData\FileData。其中filestream.hdr 文件是 FILESTREAM 容器的頭文件。當這個資料庫被刪除時,mdf、ndf、log連同這個文件夾都會被刪除。
如果是通過腳本操作,請運行以下腳本:
ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]
注意:在上例中,在運行腳本之前,必須存在C:\SqlData,建議使用右側的選擇按鈕選擇路徑。如果路徑不存在,就會報錯:
同時不能存在重復的文件夾,即不能存在C:\SqlData\FileData。否則也會報錯:
3、啟動非事務訪問
FileTable 使 Windows 應用程序可以獲取 FILESTREAM 數據的 Windows 文件句柄而不需要 SQL Server 事務。為了允許對 SQL Server 中存儲的文件進行此非事務性訪問,必須為要包含 FileTable 的每個資料庫在資料庫級別上指定所需的非事務性訪問級別。
選項解釋如下:
(1)FILESTREAM 非事務訪問
為從文件系統到 FileTables 中存儲的 FILESTREAM 數據的非事務性訪問指定以下選項之一:OFF、READ_ONLY 或 FULL。
如果在伺服器上未啟用 FILESTREAM,則該值將設置為 OFF 並且被禁用。在本次實驗中,將其設置為FULL。
(2)FILESTREAM 目錄名稱
為與所選資料庫相關聯的 FILESTREAM 數據指定目錄名稱。在 FileTable 文件夾層次結構中,此資料庫級目錄將成為在實例級別為 FILESTREAM 指定的共享名稱的子級以及在資料庫中創建的 FileTable 的父級。
如果啟用非事務性訪問時沒有提供目錄名稱,則在以後必須提供它,這樣才能在資料庫中創建 FileTable。
如果是通過腳本執行,如下:
ALTER DATABASE db01
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )
注意:更改現有資料庫時,調用帶 DIRECTORY_NAME FILESTREAM 選項的 ALTER DATABASE (Transact-SQL) 語句。使用這些選項更改目錄名稱時,資料庫必須以獨占方式鎖定,沒有打開的文件句柄。
說明:為檢查是否在資料庫上啟用了非事務性訪問,可以查詢目錄視圖,腳本如下:
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options
三、創建FileTable
1、創建第一個FileTable
「SQL Server Management Studio」只提供一個腳本模板,要想創建FileTable還是得用腳本完成:
USE db01
CREATE TABLE ImageTable1 AS FILETABLE
官方的範本為:
USE [db01]
CREATE TABLE [dbo].[ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]
WITH
(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)
2、創建第二個FileTable
CREATE TABLE ImageTable2 AS FILETABLE
3、獲取共享路徑
文件表創建之後,就會相應的產生一個文件表共享目錄,該目錄路徑可以通過內建函數獲取:
SELECT FileTableRootPath('ImageTable1')
本次實驗所返回的結果為:\\SQL1\SqlFile\ImageFiles\ImageTable1
4、查看
通過Windows資源管理器,可見已經創建了以GUID命名的文件夾。
通過SQL Server Management Studio,查看錶的結構。
四、操作
1、向文件夾中添加文件
通過 「Windows資源管理器」,向文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一個文件A01.GIF。然後運行腳本:
select * from ImageTable1
結果如下:
可見, SQL Server自動在Table中添加了記錄。
2、文件改名
運行以下腳本:
update ImageTable1 set name='Cup.GIF' where name='A01.GIF'
通過「Windows資源管理器」,查看文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1,可見文件A01.GIF已經被改名為Cup.GIF 。
3、查看共享文件夾
我們可以繼續復制其他文件,然後通過「Windows資源管理器」,查看文件夾。
4、刪除文件
可以使用腳本刪除,例如:
Delete ImageTable1 where name='Cup.GIF'
或者,通過「Windows資源管理器」直接刪除該文件。
五、備份和還原
1、備份資料庫
使用 SQL Server 備份資料庫時,FILESTREAM 數據將與資料庫中的結構化數據一起備份。
2、部分備份
如果不想將 FILESTREAM 數據與關系數據一起備份,則可以使用部分備份將 FILESTREAM 文件組排除在外。
⑹ sql怎麼寫注釋文檔
mysql 伺服器支持 # 到該行結束、-- 到該行結束 以及 /* 行中間或多個行 */ 的注釋方格:
mysql> SELECT 1+1; # 這個注釋直到該行結束
mysql> SELECT 1+1; -- 這個注釋直到該行結束
mysql> SELECT 1 /* 這是一個在行中間的注釋 */ + 1;
mysql> SELECT 1+
/*
這是一個
多行注釋的形式
*/
1;
注意 -- (雙長劃) 注釋風格要求在兩個長劃後至少有一個空格!
盡管伺服器理解剛才描述的注釋句法,但 MySQL 客戶端的語法分析在 /* ... */ 注釋方式上還有所限止:
單引號和雙引號被用來標志一個被引用字元串的開始,即使是在一個注釋中。如果注釋中的引號沒有另一個引號與之配對,那和語法分析程序就不會認為注釋結束。如果你以互動式運行 mysql,你會產生困惑,因為提示符從 mysql> 變為 '> 或 ">。
一個分號被用於指出當前 SQL 語句的結束並且跟隨它的任何東西表示下一行的開始。
不論你是以互動式運行 mysql 還是將命令放在一個文件中,然後以 mysql < some-file 告訴 mysql 讀取它的輸入,這個限制均存在。
請參考
⑺ sql server 表掃描和索引掃描的區別
表掃描是對表中的每一行數據進行判斷;
索引掃描是在表的索引中進行檢索判斷;
由於索引是演算法優化過的, 所以通常檢索速度要快得多.
「另外表掃描是整個表每一行裡面的每一列都會掃描碼?」:
對每一行數據進行檢索,是否會用到每個列就要看檢索條件是否涉及到每一列了
⑻ sql server資料庫課程設計(源程序和文檔)怎麼打開實現
.sql是SQL腳本文件,.mdf是數據文件,.sln是你的解決方案文件,打開它。現裝個VS2005/2008,安裝過程中記得裝上SQLServer 2005 express
⑼ 掃描槍掃出來的數據怎麼和sql資料庫中的數據聯系起來
掃描槍正常結尾有兩個字元一個是enter或者是tab 假如在textbox中輸入條碼你判斷它的textchanged事件, if (p == (char)Keys.Enter
|| p == (char)Keys.Tab)//回車,TAB
{
數據查詢綁定;
}
⑽ sql怎麼導入資料庫文件
第一步打開sql server資料庫,點擊文件->打開->文件,如下圖所示: