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