SQL Server 2008出現(xiàn)在微軟數(shù)據(jù)平臺愿景上是因?yàn)樗沟霉究梢赃\(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序,同時(shí)降低了管理數(shù)據(jù)基礎(chǔ)設(shè)施和發(fā)送觀察和信息給所有用戶的成本。
這個(gè)平臺有以下特點(diǎn):
1. 可信任的——使得公司可以以很高的安全性、可靠性和可擴(kuò)展性來運(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序。
2. 高效的——使得公司可以降低開發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時(shí)間和成本。
3. 智能的——提供了一個(gè)全面的平臺,可以在你的用戶需要的時(shí)候給他發(fā)送觀察和信息。
為了更好的將數(shù)據(jù)庫技術(shù)應(yīng)用到WIZnet公司,并用于數(shù)據(jù)的查詢、修改等,我對公司員工進(jìn)行了關(guān)于SQL Server 2008的培訓(xùn),旨在讓WIZnet員工在最短的時(shí)間內(nèi)熟悉SQL Server 2008,并進(jìn)行一些簡單的數(shù)據(jù)操作,便于工作。
我們采用SQL Server 2008 R2版本,安裝過程非常簡單,特別需要注意的是在“服務(wù)器配置”頁面中,需要將SQL server browser的啟動類型從“已禁用”改成“自動”,如圖1所示。
圖1:SQL Server 2008安裝過程中的服務(wù)器配置頁面
因?yàn)?span style="FONT-SIZE: 16px">當(dāng)SQL Server Browser 服務(wù)不運(yùn)行時(shí),如果您提供了正確的端口號或命名管道,仍可以連接到 SQL Server。例如,如果 SQL Server 的默認(rèn)實(shí)例在 1433 端口上運(yùn)行,則可以使用 TCP/IP 連接到此默認(rèn)實(shí)例。但是,如果 SQL Server Browser 服務(wù)未運(yùn)行,則以下連接無效:
1. 在未完全指定所有參數(shù)(例如 TCP/IP 端口或命名管道)的情況下,組件嘗試連接到命名實(shí)例。
2. 生成或傳遞其他組件隨后要用來進(jìn)行重新連接的服務(wù)器/實(shí)例信息的組件。
3. 未提供端口號或管道就連接到命名實(shí)例。
4. 在未使用 TCP/IP 1433 端口的情況下,將 DAC 連接到命名實(shí)例或默認(rèn)實(shí)例。
5. OLAP 重定向程序服務(wù)。
6. 枚舉 SQL Server Management Studio、企業(yè)管理器或查詢分析器中的服務(wù)器。
如果在客戶端服務(wù)器方案中使用 SQL Server(例如,應(yīng)用程序通過網(wǎng)絡(luò)訪問 SQL Server),那么,若要停止或禁用 SQL Server Browser 服務(wù),必須為每個(gè)實(shí)例分配一個(gè)特定端口號,并編寫客戶端應(yīng)用程序代碼以便始終使用該端口號。此方法存在如下問題:
1. 必須更新和維護(hù)客戶端應(yīng)用程序代碼才能確保它連接到正確的端口。
2. 如果服務(wù)器上的其他服務(wù)或應(yīng)用程序可以使用您為每個(gè)實(shí)例選擇的端口,則會導(dǎo)致 SQL Server 實(shí)例不可用。
在安裝完成SQL Server 2008后啟動數(shù)據(jù)庫程序,在單擊模式下,選擇服務(wù)器類型為“數(shù)據(jù)庫引擎”,身份驗(yàn)證為“Windows身份驗(yàn)證”,單擊“連接”按鈕登錄本機(jī)數(shù)據(jù)庫,如圖2所示。
圖2:SQL Server 2008登錄界面
登錄后,在界面左邊會顯示對象資源管理器,如圖3所示。
圖3:對象資源管理器界面
在數(shù)據(jù)庫選項(xiàng)中單擊右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫”,在彈出的頁面中,設(shè)置數(shù)據(jù)庫名稱為“WIZnet”,在邏輯名稱中,名稱為“WIZnet”的為存放行數(shù)據(jù)的文件,名稱為“WIZnet_log”的為存放日志的文件,設(shè)置文件保存的路徑,單擊確定,如圖4所示。
圖4:新建數(shù)據(jù)庫界面
點(diǎn)開數(shù)據(jù)庫選項(xiàng)左邊的加號,我們就能看到在系統(tǒng)數(shù)據(jù)庫下有一個(gè)名為“WIZnet”的數(shù)據(jù)庫,如圖5所示。
圖5:創(chuàng)建數(shù)據(jù)庫成功
對于成功創(chuàng)建的數(shù)據(jù)庫,我們可以進(jìn)行數(shù)據(jù)表導(dǎo)入、創(chuàng)建數(shù)據(jù)表、查詢數(shù)據(jù)表等一系列的操作。
前面一節(jié),我們給大家分享了WIZnet員工SQLServer 2008培訓(xùn)筆記(一),點(diǎn)擊這里(http://blog.iwiznet.cn/?p=800)大家可以閱讀第一部分,今天我們繼續(xù)給大家分享更多WIZnet員工SQLServer 2008培訓(xùn)筆記,希望大家喜歡。
1.導(dǎo)入Excel數(shù)據(jù)
成功創(chuàng)建數(shù)據(jù)庫后,我們可以進(jìn)行創(chuàng)建數(shù)據(jù)表、導(dǎo)入數(shù)據(jù)表。下面我們來講如何導(dǎo)入Excel格式的數(shù)據(jù)。
在導(dǎo)入數(shù)據(jù)之前,我們要檢查Excel數(shù)據(jù)的格式,使Excel數(shù)據(jù)表中,只第一行包含列名,每一列只對應(yīng)一個(gè)屬性。例如,圖1所示為Excel源數(shù)據(jù)格式,需要修改成圖2所示的Excel數(shù)據(jù)格式。
2.Excel取消隱藏行和列
注意:如果Excel數(shù)據(jù)表中有隱藏?cái)?shù)據(jù),需要取消隱藏行和列,并刪除隱藏?cái)?shù)據(jù),才能正確修改成圖2的格式。例如上圖1中,第19行以上的行被隱藏了,我們可以左鍵單擊圖1中的左上角,選中整個(gè)工作表。如圖3所示,選擇格式->隱藏和取消隱藏,我們可以看到一些隱藏和取消隱藏的操作選項(xiàng),選擇取消隱藏行和隱藏列,并刪除多余數(shù)據(jù),我們就可以得到圖2所示的數(shù)據(jù)表。
圖3:Excel取消隱藏行和列操作
3.SQLServer 2008導(dǎo)入數(shù)據(jù)
在整理好Excel數(shù)據(jù)格式后,我們就可以對數(shù)據(jù)進(jìn)行導(dǎo)入了,如圖4所示,在對象資源管理器中選擇數(shù)據(jù)庫,單擊右鍵->任務(wù)->導(dǎo)入數(shù)據(jù),我們會看到圖5所示的界面。
圖4: SQL Server 2008導(dǎo)入數(shù)據(jù)
圖5:導(dǎo)入數(shù)據(jù)界面
如圖6所示,選擇數(shù)據(jù)源為Microsoft Excel,并選擇文件路徑,首行包含列名稱選項(xiàng)默認(rèn)勾選,單擊下一步。
圖6:選擇數(shù)據(jù)源
進(jìn)入目標(biāo)選擇界面,如圖7所示。目標(biāo)數(shù)據(jù)庫默認(rèn)為對象資源管理器中右鍵選擇的數(shù)據(jù)庫,選擇名稱為WIZnet的數(shù)據(jù)庫,單擊下一步。
圖7:目標(biāo)數(shù)據(jù)庫選擇界面
默認(rèn)選擇復(fù)制一個(gè)或多個(gè)表或視圖的數(shù)據(jù),單擊下一步。
前面一節(jié),我們給大家分享了WIZnet員工SQLServer 2008培訓(xùn)筆記(二),點(diǎn)擊這里(http://blog.iwiznet.cn/?p=830)大家可以閱讀第一部分,今天我們繼續(xù)給大家分享更多WIZnet員工SQLServer 2008培訓(xùn)筆記,希望大家喜歡。
導(dǎo)入Excel表后,我們可以對表列名的屬性進(jìn)行修改,如圖1所示,右鍵單擊數(shù)據(jù)表->設(shè)計(jì)。
圖1:修改數(shù)據(jù)類型
圖2:不允許保存更改
這時(shí)候,我們需要做如下設(shè)置,具體方法為:
工具—選項(xiàng)—設(shè)計(jì)器—取消勾選“阻止保存要求重新創(chuàng)建表的更改”即可,如下圖所示。
在圖1中,我們可以看到菜單選項(xiàng)中有“選擇前1000行”和“編輯前200行”選項(xiàng),這在很多應(yīng)用中很不方便,那么如何實(shí)現(xiàn)“編輯所有行”和“返回前所有行”或者自定義編輯行數(shù)和返回的行數(shù)呢?通過以下簡單的幾步即可實(shí)現(xiàn)。
具體方法為:
工具–選項(xiàng)–SQL Server對象資源管理器–命令,把其中的“編輯前<n>行命令的值”和“選擇前<n>行命令的值”都改為0,之后確定。
再打開表,就變成“編輯所有行”和“選擇所有行”。當(dāng)然如果想要編輯指定的行數(shù)和返回指定的行數(shù),可以不設(shè)置0,設(shè)置你想要的值即可。
大家好,前面我們?yōu)榇蠹疫B載了數(shù)據(jù)庫SQLServer2008的培訓(xùn)筆記1,2,3, 今天為大家繼續(xù)分享第四篇,WIZnet員工SQL Server 2008培訓(xùn)筆記(三)請閱讀
http://blog.csdn.net/wiznet2012/article/details/7548516
SQLServer2008設(shè)置開啟遠(yuǎn)程連接
在SQL Server 2008實(shí)際應(yīng)用中,管理員可以通過權(quán)限控制,設(shè)置其他人訪問該數(shù)據(jù)庫,以及對數(shù)據(jù)庫的操作權(quán)限。這時(shí)候,需要設(shè)置SQL Server 2008的遠(yuǎn)程連接,其他人就可以在本地用SSMS連接遠(yuǎn)程服務(wù)器的SQL Server 2008。
下面我們就來講述管理員如何創(chuàng)建用戶,如何進(jìn)行服務(wù)器上SQL Server 2008的配置等等。為了實(shí)現(xiàn)遠(yuǎn)程連接,我們需要做兩個(gè)部分的配置:
1,SQL Server Management Studio Express(簡稱SSMS)
2,SQL Server配置管理器/SQL Server Configuration Manager(簡稱SSCM)
注意:有些設(shè)置生效需要重啟 SQL Server服務(wù)器。
step 1: 打開SSMS,用windows身份連接數(shù)據(jù)庫,登錄后,右鍵選擇“屬性”
step 2: 左側(cè)選擇“安全性”,選中右側(cè)的“SQL Server和 Windows身份驗(yàn)證模式”以啟用混合登錄模式
step 3: 選擇“連接”,勾選“允許遠(yuǎn)程連接此服務(wù)器”,然后點(diǎn)“確定”
step 4: 展開“安全性”,右鍵選擇“新建登錄名”
step 5: 在“常規(guī)”中,選擇SQL Server身份驗(yàn)證模式,設(shè)置登錄名和密碼。若取消“強(qiáng)制實(shí)施密碼策略”勾選,則下次登錄不用重新設(shè)置密碼。選擇默認(rèn)數(shù)據(jù)庫是WIZnet。
step 6: 選擇“用戶映射”,在映射到此登錄名的用戶中勾選“WIZnet”,在數(shù)據(jù)庫角色成員身份中勾選“db_owner”和“db_public”
step 7: 選擇“狀態(tài)”,選中“啟用”(默認(rèn)),點(diǎn)擊“確定”
step 7: 右擊數(shù)據(jù)庫選擇“方面”
step 8: 將服務(wù)器配置的“RemoteAccessEnabled”屬性設(shè)為“True”,點(diǎn)“確定”
step 9: 至此SSMS已設(shè)置完畢.
step 10: 下面開始配置SSCM,選中左側(cè)的“SQL Server服務(wù)”,確保右側(cè)的“SQL Server”以及“SQL Server Browser”正在運(yùn)行
step 11: 選中左側(cè)“SQL Server服務(wù)”的“MSSQLSERVER的協(xié)議”。如圖:右側(cè)的TCP/IP默認(rèn)是“已禁用”,雙擊打開設(shè)置面板將已啟用選項(xiàng)修改為“是”
step 12: 選擇“IP 地址”選項(xiàng)卡,設(shè)置端口“1433”
step 13: 如圖將“SQL Native Client 10.0配置”的“客戶端協(xié)議”的”TCP/IP”也修改成“已啟用”
tep 14: 配置完成,重新啟動SQL Server 2008。
此時(shí)應(yīng)該可以使用了,但是還是要確認(rèn)一下防火墻。
SQL Server 2005/2008 Express安裝以后,默認(rèn)情況下是禁用遠(yuǎn)程連接的。如果需要遠(yuǎn)程訪問,需要手動配置。
大家好,前面我們?yōu)榇蠹曳窒砹薟IZnet員工的SQL Server 2008 培訓(xùn)筆記的前四篇,今天繼續(xù)為大家分享第五篇。
WIZnet員工SQL Server 2008培訓(xùn)筆記(四)請參考:http://blog.iwiznet.cn/?p=849
SQL Server 2008數(shù)據(jù)類型
在創(chuàng)建表時(shí),必須為表中的每列指派一種數(shù)據(jù)類型。本節(jié)將介紹SQL Server中最常用的一些數(shù)據(jù)類型。即使創(chuàng)建自定義數(shù)據(jù)類型,它也必須基于一種標(biāo)準(zhǔn)的SQL Server數(shù)據(jù)類型。例如,可以使用如下語法創(chuàng)建一種自定義數(shù)據(jù)類型(Address),但要注意,它基于SQL Server標(biāo)準(zhǔn)的varchar數(shù)據(jù)類型。
1. CREATE TYPE Address
2. FROM varchar(35) NOT NULL
如果在SQL Server Management Studio的表設(shè)計(jì)界面中更改一個(gè)大型表中某列的數(shù)據(jù)類型,那么該操作可能需要很長時(shí)間。可以通過在Management Studio界面中腳本化這種改變來觀察其原因。Management Studio再創(chuàng)建一個(gè)臨時(shí)表,采用像tmpTableName這樣的名稱,然后將數(shù)據(jù)復(fù)制到該表中。最后,界面刪除舊表并用新的數(shù)據(jù)類型重命名新表。當(dāng)然,此過程中還涉及其他一些用于處理表中索引和其他任何關(guān)系的步驟。
如果有一個(gè)包含數(shù)百萬條記錄的大型表,則該過程可能需要花費(fèi)十分鐘,有時(shí)可能是數(shù)小時(shí)。為避免這種情況,可在查詢窗口中使用簡單的單行T-SQL語句來更改該列的數(shù)據(jù)類型。例如,要將Employees表中JobTitle列的數(shù)據(jù)類型改為varchar(70),可以使用如下語法。
1. ALTER TABLE HumanResources.Employee ALTER COLUMN JobTitle Varchar(70)
說明:
在轉(zhuǎn)換為與當(dāng)前數(shù)據(jù)不兼容的數(shù)據(jù)類型時(shí),可能丟失重要數(shù)據(jù)。例如,如果要將包含一些數(shù)據(jù)(如15.415)的numeric數(shù)據(jù)類型轉(zhuǎn)換為integer數(shù)據(jù)類型,那么15.415這個(gè)數(shù)據(jù)將四舍五入為整數(shù)。
您可能想對SQL Server表編寫一個(gè)報(bào)表,顯示表中每列的數(shù)據(jù)類型。完成這項(xiàng)任務(wù)的方法有很多種,但最常見的一種方法是連接sys.objects表和sys.columns表。在下面的代碼中,有兩個(gè)函數(shù)可能不太為您所熟悉。函數(shù)TYPE_NAME()將數(shù)據(jù)類型id轉(zhuǎn)換為適當(dāng)?shù)拿Q。要進(jìn)行反向操作,可使用TYPE_ID()函數(shù)。需要注意的另一個(gè)函數(shù)是SCHEMA_ID(),它用于返回架構(gòu)的標(biāo)識值。在需要編寫有關(guān)SQL Server元數(shù)據(jù)的報(bào)表時(shí),這是特別有用的。
1. SELECT o.name AS ObjectName,
2. c.name AS ColumnName,
3. TYPE_NAME(c.user_type_id) as DataType
4. FROM sys.objects o JOIN sys.columns c
5. ON o.object_id = c.object_id
6. WHERE o.name =’Department’
7. and o.Schema_ID = SCHEMA_ID(‘HumanResources’)
該代碼返回如下結(jié)果(注意,Name是一種用戶定義的數(shù)據(jù)類型)。
1. ObjectName ColumnName DataType
2. —————————————————
3. Department DepartmentID smallint
4. Department Name
Name
5. Department GroupName Name
6. Department ModifiedDate
datetime
1. 字符數(shù)據(jù)類型
字符數(shù)據(jù)類型包括varchar、char、nvarchar、nchar、text以及ntext。這些數(shù)據(jù)類型用于存儲字符數(shù)據(jù)。varchar和char類型的主要區(qū)別是數(shù)據(jù)填充。如果有一表列名為FirstName且數(shù)據(jù)類型為varchar(20),同時(shí)將值Brian存儲到該列中,則物理上只存儲5個(gè)字節(jié)。但如果在數(shù)據(jù)類型為char(20)的列中存儲相同的值,將使用全部20個(gè)字節(jié)。SQL將插入拖尾空格來填滿20個(gè)字符。
如果要節(jié)省空間,那么為什么還使用char數(shù)據(jù)類型呢?使用varchar數(shù)據(jù)類型會稍增加一些系統(tǒng)開銷。例如,如果要存儲兩字母形式的州名縮寫,則最好使用char(2)列。盡管有些DBA認(rèn)為應(yīng)最大可能地節(jié)省空間,但一般來說,好的做法是在組織中找到一個(gè)合適的閾值,并指定低于該值的采用char數(shù)據(jù)類型,反之則采用varchar數(shù)據(jù)類型。通常的原則是,任何小于或等于5個(gè)字節(jié)的列應(yīng)存儲為char數(shù)據(jù)類型,而不是varchar數(shù)據(jù)類型。如果超過這個(gè)長度,使用varchar數(shù)據(jù)類型的好處將超過其額外開銷。
nvarchar數(shù)據(jù)類型和nchar數(shù)據(jù)類型的工作方式與對等的varchar數(shù)據(jù)類型和char數(shù)據(jù)類型相同,但這兩種數(shù)據(jù)類型可以處理國際性的Unicode字符。它們需要一些額外開銷。以Unicode形式存儲的數(shù)據(jù)為一個(gè)字符占兩個(gè)字節(jié)。如果要將值Brian存儲到nvarchar列,它將使用10個(gè)字節(jié);而如果將它存儲為nchar(20),則需要使用40字節(jié)。由于這些額外開銷和增加的空間,應(yīng)該避免使用Unicode列,除非確實(shí)有需要使用它們的業(yè)務(wù)或語言需求。
接下來要提的數(shù)據(jù)類型是text和ntext。text數(shù)據(jù)類型用于在數(shù)據(jù)頁內(nèi)外存儲大型字符數(shù)據(jù)。應(yīng)盡可能少地使用這兩種數(shù)據(jù)類型,因?yàn)榭赡苡绊懶阅艿稍趩涡械牧兄写鎯Χ噙_(dá)2GB的數(shù)據(jù)。與text數(shù)據(jù)類型相比,更好的選擇是使用varchar(max)類型,因?yàn)閷@得更好的性能。另外,text和ntext數(shù)據(jù)類型在SQL Server的一些未來版本中將不可用,因此現(xiàn)在開始還是最好使用varchar(max)和nvarchar(max)而不是text和ntext數(shù)據(jù)類型。
表1-1列出了這些類型,對其作了簡單描述,并說明了要求的存儲空間。
表1-1
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
Char(n) | N為1~8000字符之間 | n字節(jié) |
Nchar(n) | N為1~4000 Unicode字符之間 | (2n字節(jié))+2字 節(jié)額外開銷 |
Ntext | 最多為230–1 (1?073?741?823)Unicode字符 | 每字符2字節(jié) |
Nvarchar(max) | 最多為230–1 (1?073?741?823)Unicode字符 | 2×字符數(shù)+2字 節(jié)額外開銷 |
Text | 最多為231–1 (2?147?483?647)字符 | 每字符1字節(jié) |
Varchar(n) | N為1~8000字符之間 | 每字符1字節(jié)+2 字節(jié)額外開銷 |
Varchar(max) | 最多為231–1(2?147?483?647)字符 | 每字符1字節(jié)+2 字節(jié)額外開銷 |
2. 精確數(shù)值數(shù)據(jù)類型
數(shù)值數(shù)據(jù)類型包括bit、tinyint、smallint、int、bigint、numeric、decimal、money、float以及real。這些數(shù)據(jù)類型都用于存儲不同類型的數(shù)字值。第一種數(shù)據(jù)類型bit只存儲0或1,在大多數(shù)應(yīng)用程序中被轉(zhuǎn)換為true或false。bit數(shù)據(jù)類型非常適合用于開關(guān)標(biāo)記,且它只占據(jù)一個(gè)字節(jié)空間。其他常見的數(shù)值數(shù)據(jù)類型如表1-2所示。
表1-2
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
bit | 0、1或Null | 1字節(jié)(8位) |
tinyint | 0~255之間的整數(shù) | 1字節(jié) |
smallint | –32?768~32?767之間的整數(shù) | 2字節(jié) |
int | –2?147?483?648~ 2?147?483?647之間的整數(shù) | 4字節(jié) |
bigint | –9?223?372?036?854?775?808~ 9?223?372?036?854?775?807 之間的整數(shù) | 8字節(jié) |
(續(xù)表)
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
numeric(p,s)或 decimal(p,s) | –1?038+1~1?038–1之間的數(shù)值 | 最多17字節(jié) |
money | –922?337?203?685?477.580?8~ 922?337?203?685?477.580?7 | 8字節(jié) |
smallmoney | –214?748.3648~2?14?748.3647 | 4字節(jié) |
SQL Server 2008數(shù)據(jù)類型(2)
如decimal和numeric等數(shù)值數(shù)據(jù)類型可存儲小數(shù)點(diǎn)右邊或左邊的變長位數(shù)。Scale是小數(shù)點(diǎn)右邊的位數(shù)。精度(Precision)定義了總位數(shù),包括小數(shù)點(diǎn)右邊的位數(shù)。例如,由于14.88531可為numeric(7,5)或decimal(7,5)。如果將14.25插入到numeric(5,1)列中,它將被舍入為14.3。
3. 近似數(shù)值數(shù)據(jù)類型
這個(gè)分類中包括數(shù)據(jù)類型float和real。它們用于表示浮點(diǎn)數(shù)據(jù)。但是,由于它們是近似的,因此不能精確地表示所有值。
float(n)中的n是用于存儲該數(shù)尾數(shù)(mantissa)的位數(shù)。SQL Server對此只使用兩個(gè)值。如果指定位于1~24之間,SQL就使用24。如果指定25~53之間,SQL就使用53。當(dāng)指定float()時(shí)(括號中為空),默認(rèn)為53。
表1-3列出了近似數(shù)值數(shù)據(jù)類型,對其進(jìn)行簡單描述,并說明了要求的存儲空間。
表1-3
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
float[(n)] | –1.79E+308~–2.23E– 308,0,2.23E–308~1.79E+308 | N< =24-4字節(jié) N> 24-8字節(jié) |
real() | –3.40E+38~–1.18E– 38,0,1.18E–38~3.40E+38 | 4字節(jié) |
注意:
real的同義詞為float(24)。
4. 二進(jìn)制數(shù)據(jù)類型
如varbinary、binary、varbinary(max)或image等二進(jìn)制數(shù)據(jù)類型用于存儲二進(jìn)制數(shù)據(jù),如圖形文件、Word文檔或MP3文件。其值為十六進(jìn)制的0×0~0xf。image數(shù)據(jù)類型可在數(shù)據(jù)頁外部存儲最多2GB的文件。image數(shù)據(jù)類型的首選替代數(shù)據(jù)類型是varbinary(max),可保存最多8KB的二進(jìn)制數(shù)據(jù),其性能通常比image數(shù)據(jù)類型好。SQL Server 2008的新功能是可以在操作系統(tǒng)文件中通過FileStream存儲選項(xiàng)存儲varbinary(max)對象。這個(gè)選項(xiàng)將數(shù)據(jù)存儲為文件,同時(shí)不受varbinary(max)的2GB大小的限制。
表1-4列出了二進(jìn)制數(shù)據(jù)類型,對其作了簡單描述,并說明了要求的存儲空間。
表1-4
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
Binary(n) | N為1~8000十六進(jìn)制數(shù)字之間 | n字節(jié) |
Image | 最多為231–1 (2?147?483?647)十六進(jìn)制數(shù)位 | 每字符1字節(jié) |
Varbinary(n) | N為1~8000十六進(jìn)制數(shù)字之間 | 每字符1字節(jié) +2字節(jié)額外開銷 |
Varbinary(max) | 最多為231–1 (2?147?483?647)十六進(jìn)制數(shù)字 | 每字符1字節(jié) +2字節(jié)額外開銷 |
5. 日期和時(shí)間數(shù)據(jù)類型
datetime和smalldatetime數(shù)據(jù)類型用于存儲日期和時(shí)間數(shù)據(jù)。smalldatetime為4字節(jié),存儲1900年1月1日~2079年6月6日之間的時(shí)間,且只精確到最近的分鐘。datetime數(shù)據(jù)類型為8字節(jié),存儲1753年1月1日~9999年12月31日之間的時(shí)間,且精確到最近的3.33毫秒。
SQL Server 2008有4種與日期相關(guān)的新數(shù)據(jù)類型:datetime2、dateoffset、date和time。通過SQL Server聯(lián)機(jī)叢書可找到使用這些數(shù)據(jù)類型的示例。
datetime2數(shù)據(jù)類型是datetime數(shù)據(jù)類型的擴(kuò)展,有著更廣的日期范圍。時(shí)間總是用時(shí)、分鐘、秒形式來存儲??梢远x末尾帶有可變參數(shù)的datetime2數(shù)據(jù)類型–如datetime2(3)。這個(gè)表達(dá)式中的3表示存儲時(shí)秒的小數(shù)精度為3位,或0.999。有效值為0~9之間,默認(rèn)值為3。
datetimeoffset數(shù)據(jù)類型和datetime2數(shù)據(jù)類型一樣,帶有時(shí)區(qū)偏移量。該時(shí)區(qū)偏移量最大為+/-14小時(shí),包含了UTC偏移量,因此可以合理化不同時(shí)區(qū)捕捉的時(shí)間。
date數(shù)據(jù)類型只存儲日期,這是一直需要的一個(gè)功能。而time數(shù)據(jù)類型只存儲時(shí)間。它也支持time(n)聲明,因此可以控制小數(shù)秒的粒度。與datetime2和datetimeoffset一樣,n可為0~7之間。
表1-5列出了日期/時(shí)間數(shù)據(jù)類型,對其進(jìn)行簡單描述,并說明了要求的存儲空間。
表1-5
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
Date | 9999年1月1日~12月31日 | 3字節(jié) |
Datetime | 1753年1月1日~9999年12月31日, 精確到最近的3.33毫秒 | 8字節(jié) |
Datetime2(n) | 9999年1月1日~12月31日 0~7之間的N指定小數(shù)秒 | 6~8字節(jié) |
Datetimeoffset(n) | 9999年1月1日~12月31日 0~7之間的N指定小數(shù)秒+/–偏移量 | 8~10字節(jié) |
SmalldateTime | 1900年1月1日~2079年 6月6日,精確到1分鐘 | 4字節(jié) |
Time(n) | 小時(shí):分鐘:秒.9999999 0~7之間的N指定小數(shù)秒 | 3~5字節(jié) |
6. 其他系統(tǒng)數(shù)據(jù)類型
還有一些之前未見過的數(shù)據(jù)類型。表1-6列出了這些數(shù)據(jù)類型。
表1-6
數(shù) 據(jù) 類 型 | 描 述 | 存 儲 空 間 |
Cursor | 包含一個(gè)對光標(biāo)的引用和 可以只用作變量或存儲過程參數(shù) | 不適用 |
Hierarchyid | 包含一個(gè)對層次結(jié)構(gòu)中位置的引用 | 1~892字節(jié)+2 字節(jié)的額外開銷 |
SQL_Variant | 可能包含任何系統(tǒng)數(shù)據(jù)類 型的值,除了text、ntext、 image、timestamp、xml、 varchar(max)、nvarchar(max)、 varbinary (max)、sql_variant以 及用戶定義的數(shù)據(jù)類型。最大尺 寸為8000字節(jié)數(shù)據(jù)+16字節(jié) (或元數(shù)據(jù)) | 8016字節(jié) |
Table | 用于存儲用于進(jìn)一步處理的數(shù) 據(jù)集。定義類似于Create Table。 主要用于返回表值函數(shù)的結(jié)果集, 它們也可用于存儲過程和批處理中 | 取決于表定 義和存儲的行數(shù) |
Timestamp or Rowversion | 對于每個(gè)表來說是唯一的、自 動存儲的值。通常用于版本戳, 該值在插入和每次更新時(shí)自動改變 | 8字節(jié) |
Uniqueidentifier | 可以包含全局唯一標(biāo)識符 (Globally Unique Identifier, GUID)。guid值可以從Newid() 函數(shù)獲得。這個(gè)函數(shù)返回的值對 所有計(jì)算機(jī)來說是唯一的。 盡管存儲為16位的二進(jìn)制值, 但它顯示為char(36) | 16字節(jié) |
XML | 可以以Unicode或非Unicode形式存儲 | 最多2GB |
注意:
cursor數(shù)據(jù)類型可能不用于Create Table語句中。
hierarchyid列是SQL Server 2008中新出現(xiàn)的。您可能希望將這種數(shù)據(jù)類型的列添加到這樣的表中–其表行中的數(shù)據(jù)可用層次結(jié)構(gòu)表示,就像組織層次結(jié)構(gòu)或經(jīng)理/雇員層次結(jié)構(gòu)一樣。存儲在該列中的值是行在層次結(jié)構(gòu)中的路徑。層次結(jié)構(gòu)中的級別顯示為斜杠。斜杠間的值是這個(gè)成員在行中的數(shù)字級別,如/1/3??梢赃\(yùn)用一些與這種數(shù)據(jù)類型一起使用的特殊函數(shù)。
XML數(shù)據(jù)存儲XML文檔或片段。根據(jù)文檔中使用UTF-16或是UTF-8,它在尺寸上像text或ntext一樣存儲。XML數(shù)據(jù)類型使用特殊構(gòu)造體進(jìn)行搜索和索引。第15章將更詳細(xì)地介紹這些內(nèi)容。
7. CLR集成
在SQL Server 2008中,還可使用公共語言運(yùn)行庫(Common Language Runtime,CLR)創(chuàng)建自己的數(shù)據(jù)類型和存儲過程。這讓用戶可以使用Visual Basic或C#編寫更復(fù)雜的數(shù)據(jù)類型,以滿足業(yè)務(wù)需求。這些類型被定義為基本的CLR語言中的類結(jié)構(gòu)。第8章將更詳細(xì)地介紹其管理部分的內(nèi)容。
大家好,前面我們?yōu)榇蠹曳窒砹薟IZnet員工的SQL Server 2008培訓(xùn)筆記的前五篇,今天繼續(xù)為大家分享第六篇。
WIZnet員工SQL Server 2008培訓(xùn)筆記(五)請參考:
在數(shù)據(jù)表導(dǎo)入數(shù)據(jù)庫之后,為了防止用戶誤改、誤刪數(shù)據(jù)等一系列操作破壞了數(shù)據(jù)源的完整性和正確性,或者我們希望將一臺電腦的數(shù)據(jù)庫文件移植到另一臺電腦的數(shù)據(jù)庫中。我們就需要對生成數(shù)據(jù)庫備份文件(*.bak)或者備份源數(shù)據(jù)庫文件(*.mdf),來確保數(shù)據(jù)庫的正確性和完整性。
1. 通過備份文件還原
選中你要備份的數(shù)據(jù)庫,單擊右鍵->任務(wù)->備份,如下圖所示。
顯示如下對話框,數(shù)據(jù)庫選項(xiàng)可以選擇你想備份的數(shù)據(jù)庫,備份集選項(xiàng)可以設(shè)置你備份文件的名稱。
單擊確定按鈕,彈出備份文件成功對話框,則說明備份成功。
備份文件默認(rèn)保存在C:\ProgramFiles\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\目錄下(這里以SQLServer 2008默認(rèn)安裝為例),而在實(shí)際開發(fā)過程中,我們往往需要根據(jù)數(shù)據(jù)庫本身的用途將數(shù)據(jù)庫文件及其日志文件保存在硬盤的其它位置以方便管理。因此,我們可以通過單擊“添加”按鈕,會彈出如下的對話框。
設(shè)置備份文件名和文件路徑,在目標(biāo)字段就會添加你想備份文件的信息,單擊“確定”按鈕備份文件成功。
備份完成后,我們可以通過備份文件按需要對數(shù)據(jù)庫進(jìn)行還原。如下圖,右擊數(shù)據(jù)庫,選擇還原數(shù)據(jù)庫。
彈出如下的對話框,在“目標(biāo)數(shù)據(jù)庫”中輸入數(shù)據(jù)庫名稱,選擇“源數(shù)據(jù)庫”為備份的數(shù)據(jù)庫,默認(rèn)設(shè)置情況下單擊確定,即可還原完整的數(shù)據(jù)庫信息(也可以通過選項(xiàng)設(shè)置修改備份數(shù)據(jù)庫的位置等其他基本信息)。
至此,通過備份文件還原數(shù)據(jù)庫的方法就介紹完了。
2. 我們也可以通過數(shù)據(jù)庫文件來添加和還原數(shù)據(jù)庫,如下所示,右擊數(shù)據(jù)庫,選擇附加。
在彈出的對話框中單擊“添加”按鈕,選擇創(chuàng)建數(shù)據(jù)庫時(shí)生成的文件(*.mdf),默認(rèn)設(shè)置下單擊確定即可完成數(shù)據(jù)庫的還原。
大家好,前面我們?yōu)榇蠹曳窒砹薟IZnet員工的SQL Server 2008培訓(xùn)筆記的前六篇,現(xiàn)在繼續(xù)為大家分享第七篇——如何使用Report Builder 3.0創(chuàng)建數(shù)據(jù)庫報(bào)表。
WIZnet員工SQL Server 2008培訓(xùn)筆記(六)請參考:
http://blog.iwiznet.cn/?p=1050
在使用數(shù)據(jù)庫進(jìn)行查詢的過程中,我們可以通過查詢語句獲取各種所需要的統(tǒng)計(jì)信息,那么,如何將這種統(tǒng)計(jì)信息很好的展示到別人面前,而不是僅僅通過SQLServer的查詢窗口進(jìn)行查看呢?這時(shí)候,我們就可以通過數(shù)據(jù)報(bào)表來實(shí)現(xiàn)。
下面我通過一個(gè)簡單的實(shí)例給大家演示一下如何使用ReportBuilder 3.0創(chuàng)建數(shù)據(jù)報(bào)表。
首先,我們需要安裝 ReportBuilder 3.0,安裝完成后,單擊“開始”,依次指向“程序”和“MicrosoftSQL Server 2008 R2 Report Builder 3.0”,再單擊“Report Builder 3.0”。此時(shí)將打開“入門”對話框。
如上圖所示,在左窗格中,確認(rèn)已選中“新建報(bào)表”。在右窗格中,單擊“表或矩陣向?qū)А薄?/p>
在“選擇數(shù)據(jù)集”頁中,選擇“創(chuàng)建數(shù)據(jù)集”,然后單擊“下一步”。將打開“選擇數(shù)據(jù)源的連接”頁面。
單擊“新建”。此時(shí)將打開“數(shù)據(jù)源屬性”對話框。
在“名稱”中,為數(shù)據(jù)源鍵入名稱,例如Customer_Status。(以字母、數(shù)字或下劃線開頭不能出現(xiàn)空格)
在“選擇連接類型”中,確認(rèn)已選擇“MicrosoftSQL Server”。
在連接字符串中輸入以下文本,其中<ServerName>為SQLServer的實(shí)例名稱,<DatabaseName>為數(shù)據(jù)庫的名稱。
如果是初學(xué)者,可以單擊“生成”按鈕,進(jìn)入連接屬性的設(shè)置。
選擇服務(wù)器名和數(shù)據(jù)庫名,如果是本機(jī)則使用Windows身份驗(yàn)證,如果是連接到服務(wù)器的客戶機(jī),則使用服務(wù)器分配的用戶名和密碼使用SQLServer身份驗(yàn)證。完成后單擊“確定”按鈕。
單擊“憑據(jù)”輸入訪問外部數(shù)據(jù)源所需的憑據(jù)。
若要驗(yàn)證是否能連接到數(shù)據(jù)源,請單擊“測試連接”,將顯示消息“已成功的創(chuàng)建連接”,單擊確定。單擊“下一步”。
在“設(shè)計(jì)查詢”頁的“數(shù)據(jù)庫視圖”中選中所需的表,默認(rèn)選中表中所有的列,你也可以跟據(jù)需要選擇其中的某些列,通過“運(yùn)行查詢”按鈕可以查看。
單擊“下一步”,進(jìn)入“排列字段”界面,選擇需要生成報(bào)表的數(shù)據(jù),如下圖所示。
單擊“下一步”,對選擇的字段進(jìn)行預(yù)覽??梢愿鶕?jù)需求是否勾選“顯示小計(jì)和總計(jì)”復(fù)選框。在本例中,取消勾選該復(fù)選框,并且取消勾選“展開/折疊組”復(fù)選框,單擊下一步。
在“選擇樣式”界面選擇報(bào)表的風(fēng)格,并單擊“完成”按鈕完成報(bào)表草稿的生成,如下圖所示。
單擊報(bào)表生成器左上方的“運(yùn)行”可以查看生成的報(bào)表,可以根據(jù)外觀和內(nèi)容的需要在“設(shè)計(jì)”界面對報(bào)表列的屬性進(jìn)行修改。