關(guān)于我們
書單推薦
新書推薦
|
SQL Server 2014數(shù)據(jù)庫技術(shù)實用教程
QL Server 2014是微軟公司推出的最新數(shù)據(jù)庫管理系統(tǒng), 安裝容易, 功能強大, 操作方便, 界面友好, 比以往的任何一個版本都要好用。本書編寫團隊在多年教學(xué)與軟件項目開發(fā)的基礎(chǔ)上, 根據(jù)程序員和數(shù)據(jù)庫管理員的崗位要求以及高職院校特點組織教材內(nèi)容, 按照“設(shè)計數(shù)據(jù)庫、建立數(shù)據(jù)庫、管理數(shù)據(jù)庫、應(yīng)用數(shù)據(jù)庫”的邏輯順序, 以圖書借閱管理系統(tǒng)和成績管理系統(tǒng)為教學(xué)主線, 系統(tǒng)介紹了運用SQL Server 2014進行數(shù)據(jù)庫管理的各種操作以及軟件開發(fā)所需的各種知識和技能, 主要內(nèi)容包括: 數(shù)據(jù)庫技術(shù)導(dǎo)論, 數(shù)據(jù)庫操作, 表操作, 數(shù)據(jù)查詢, 視圖操作, 索引操作, 存儲過程, 觸發(fā)器, TSQL編程, 數(shù)據(jù)庫備份與恢復(fù), 數(shù)據(jù)庫安全操作, VS 2010+SQL Server 2014數(shù)據(jù)庫應(yīng)用軟件開發(fā)。
按照“設(shè)計數(shù)據(jù)庫、建立數(shù)據(jù)庫、管理數(shù)據(jù)庫、應(yīng)用數(shù)據(jù)庫”的邏輯順序,以圖書借閱管理系統(tǒng)和成績管理系統(tǒng)為主線,系統(tǒng)介紹了運用SQL Server 2014進行數(shù)據(jù)庫管理的各種操作以及軟件開發(fā)所需的各種知識和技能,主要內(nèi)容包括:數(shù)據(jù)庫技術(shù)導(dǎo)論,數(shù)據(jù)庫操作,表操作,數(shù)據(jù)查詢,視圖操作,索引操作,存儲過程,觸發(fā)器,T-SQL編程,數(shù)據(jù)庫備份與恢復(fù),數(shù)據(jù)庫安全操作,VS2010+SQL Server2014數(shù)據(jù)庫應(yīng)用軟件開發(fā)。
如何由入門者快速達到職業(yè)崗位要求,是每一個老師也是每一個學(xué)生夢寐以求的事情,以精辟的語言教育人、以精巧的例題引導(dǎo)人、以精彩的項目啟發(fā)人,正是作者長期追求的目標。本書編寫團隊融長期的教學(xué)經(jīng)驗與多年的軟件開發(fā)經(jīng)驗于一體,以行業(yè)最新數(shù)據(jù)庫管理系統(tǒng)SQLServer2014為例,根據(jù)數(shù)據(jù)庫管理員(DBA)的崗位要求以及高職院校的特點,按照“設(shè)計數(shù)據(jù)庫、建立數(shù)據(jù)庫、管理數(shù)據(jù)庫、應(yīng)用數(shù)據(jù)庫”的順序,以圖書借閱管理系統(tǒng)和成績管理系統(tǒng)為教學(xué)主線,系統(tǒng)介紹了數(shù)據(jù)庫應(yīng)用技術(shù)及數(shù)據(jù)庫軟件開發(fā)的知識和技能,是理論、實踐、應(yīng)用開發(fā)三者完美結(jié)合的一體化教材。
全書從邏輯上可以分為4個部分:數(shù)據(jù)庫基礎(chǔ)理論、SQLServer2014數(shù)據(jù)庫應(yīng)用、技能訓(xùn)練、數(shù)據(jù)庫應(yīng)用軟件開發(fā),其中技能訓(xùn)練穿插在每一個章節(jié)中,可以在每一次理論講授后,馬上進行技能訓(xùn)練。內(nèi)容包括12章:第1章是數(shù)據(jù)庫技術(shù)導(dǎo)論,第2章是建立數(shù)據(jù)庫,第3章是建立表,第4章是數(shù)據(jù)查詢,第5章是建立視圖,第6章是建立索引,第7章是存儲過程,第8章是觸發(fā)器,第9章是TSQL編程,第10章是數(shù)據(jù)庫備份與恢復(fù),第11章是數(shù)據(jù)庫安全管理,第12章是VS2010+SQLServer2014數(shù)據(jù)庫應(yīng)用軟件開發(fā),包括教學(xué)管理系統(tǒng)和圖書信息管理系統(tǒng)兩個項目的分析與實現(xiàn)。 本教材的主要特點是: (1)面向數(shù)據(jù)庫管理員(DBA)和程序員職業(yè)崗位,以圖書館管理系統(tǒng)項目為教學(xué)主線,以成績管理系統(tǒng)項目為技能訓(xùn)練主線,貫穿每一章節(jié),并在最后一章實現(xiàn)了這兩個項目,好教好學(xué)。 (2)本書共12章教學(xué)內(nèi)容,15個技能訓(xùn)練,34課時操作內(nèi)容,實現(xiàn)了理論與實踐的課時比例1∶1,從理論到實踐融會貫通。 (3)將知識講解、技術(shù)應(yīng)用、技能訓(xùn)練、項目開發(fā)集成于一體,是數(shù)據(jù)庫管理員和程序員工作任務(wù)的縮影。 (4)根據(jù)內(nèi)容多少及難易程度的不同,每一章均安排了一兩次技能訓(xùn)練,最后是教學(xué)項目與實踐項目的開發(fā)過程,從新手到高手不再是難事。 (5)語言通俗易懂,講解深入淺出,讓讀者迅速上手,逐步建立數(shù)據(jù)庫管理的思想,完美實現(xiàn)由學(xué)習(xí)者到職業(yè)人的本質(zhì)提升。 本教材由長沙商貿(mào)旅游職業(yè)技術(shù)學(xué)院的胡伏湘教授和肖玉朝副教授任主編,最后由胡伏湘統(tǒng)稿。在編寫過程中,得到了湖南工程職業(yè)技術(shù)學(xué)院的徐剛強教授、湖南科技職業(yè)學(xué)院的成奮華教授、湖南外貿(mào)職業(yè)學(xué)院的高述濤教授、湖南安全職業(yè)技術(shù)學(xué)院的夏旭副教授、湖南信息職業(yè)技術(shù)學(xué)院的余國清副教授、清華大學(xué)出版社盧先和副社長和閆紅梅老師的大力支持,并參考了大量的文獻資料,書中未能詳盡羅列,在此表示真心感謝! 本教材所有的例題和命令及程序均在SQLServer2014中文版環(huán)境中運行通過,所有案例的腳本同樣適用于SQLServer2008版和SQLServer2016版。本書提供配套教學(xué)資源,包括電子教案、命令腳本及相應(yīng)素材。 由于編者水平有限,書中不足之處在所難免,懇求讀者和各位老師指正,作者不勝感激。 編者(hfx_888@163.com) 2017年3月于長沙
第1章數(shù)據(jù)庫技術(shù)導(dǎo)論
1.1數(shù)據(jù)庫職業(yè)崗位技能需求分析 1.2案例數(shù)據(jù)庫說明 1.2.1圖書館管理系統(tǒng)教學(xué)案例 1.2.2學(xué)生成績管理系統(tǒng)scoresys數(shù)據(jù)庫說明 1.3技能訓(xùn)練1: 了解數(shù)據(jù)庫工作崗位 1.3.1訓(xùn)練目的 1.3.2訓(xùn)練時間 1.3.3訓(xùn)練內(nèi)容 1.3.4思考題 1.4數(shù)據(jù)庫技術(shù)概述 1.4.1數(shù)據(jù)庫技術(shù)的發(fā)展歷程 1.4.2數(shù)據(jù)庫系統(tǒng)的基本概念 1.5三種主要的數(shù)據(jù)模型 1.5.1網(wǎng)狀模型 1.5.2層次模型 1.5.3關(guān)系模型 1.5.4非結(jié)構(gòu)化數(shù)據(jù)模型 1.6SQL Server 2014數(shù)據(jù)庫基礎(chǔ) 1.6.1SQL Server 2014的主要功能 1.6.2SQL Server 2014的6個版本 1.7SQL Server 2014的簡單使用 1.7.1啟動SQL Server Management Studio 1.7.2SQL Server Management Studio基本組成 1.7.3SQL Server Management Studio中執(zhí)行查詢 1.8技能訓(xùn)練2: 用管理器窗口建立數(shù)據(jù)庫和表 1.8.1訓(xùn)練目的 1.8.2訓(xùn)練時間 1.8.3訓(xùn)練內(nèi)容 1.8.4思考題 習(xí)題1 第2章建立數(shù)據(jù)庫 2.1SQL Server 2014數(shù)據(jù)庫的組成 2.1.1SQL Server 2014的體系結(jié)構(gòu) 2.1.2SQL Server 2014的數(shù)據(jù)庫組成 2.1.3SQL Server服務(wù)器身份驗證模式 2.1.4文件與文件組 2.2創(chuàng)建數(shù)據(jù)庫 2.2.1用管理器菜單方式建立數(shù)據(jù)庫 2.2.2用SQL命令方式建立數(shù)據(jù)庫 2.3修改數(shù)據(jù)庫 2.3.1用管理器菜單方式修改數(shù)據(jù)庫 2.3.2用SQL命令修改數(shù)據(jù)庫 2.4管理數(shù)據(jù)庫 2.4.1刪除數(shù)據(jù)庫 2.4.2查看數(shù)據(jù)庫 2.4.3分離數(shù)據(jù)庫 2.4.4附加數(shù)據(jù)庫 2.4.5為數(shù)據(jù)庫創(chuàng)建腳本 2.5技能訓(xùn)練3: 建立數(shù)據(jù)庫 2.5.1訓(xùn)練目的 2.5.2訓(xùn)練時間 2.5.3訓(xùn)練內(nèi)容 2.5.4思考題 習(xí)題2 第3章建立表 3.1SQL Server 2014的主要數(shù)據(jù)類型 3.1.1SQL Server 2014的數(shù)據(jù)類型 3.1.2字符型 3.1.3整數(shù)型 3.1.4精確實數(shù)型 3.1.5近似實數(shù)型 3.1.6貨幣型 3.1.7日期時間型 3.1.8文本型 3.1.9二進制型 3.1.10特殊數(shù)據(jù)類型 3.2創(chuàng)建表結(jié)構(gòu) 3.2.1用管理器菜單方式建立數(shù)據(jù)庫 3.2.2標識列 3.2.3用CREATE TABLE命令建立數(shù)據(jù)庫 3.2.4表的完整性約束 3.3技能訓(xùn)練4: 建立表結(jié)構(gòu) 3.3.1訓(xùn)練目的 3.3.2訓(xùn)練時間 3.3.3訓(xùn)練內(nèi)容 3.3.4思考題 3.4修改數(shù)據(jù)庫結(jié)構(gòu) 3.4.1用管理器窗口修改 3.4.2用SQL命令修改 3.5記錄的輸入與修改 3.5.1用管理器窗口輸入記錄 3.5.2用SQL命令輸入記錄 3.5.3用SQL命令修改記錄 3.5.4刪除記錄 3.5.5刪除表 3.6技能訓(xùn)練5: 記錄處理 3.6.1訓(xùn)練目的 3.6.2訓(xùn)練時間 3.6.3訓(xùn)練內(nèi)容 3.6.4思考題 習(xí)題3 第4章數(shù)據(jù)查詢 4.1SELECT查詢語句 4.1.1SQL語言 4.1.2SELECT語句 4.1.3運算符 4.2單表查詢 4.2.1列名的使用 4.2.2用WHERE子句查詢特定的記錄 4.2.3用ORDER BY子句對查詢結(jié)果排序 4.2.4聚合函數(shù) 4.2.5用GROUP BY子句對查詢結(jié)果分組 4.3技能訓(xùn)練6: 單表查詢 4.3.1訓(xùn)練目的 4.3.2訓(xùn)練時間 4.3.3訓(xùn)練內(nèi)容 4.3.4思考題 4.4多表連接查詢 4.4.1多表連接方法 4.4.2多表連接查詢 4.5技能訓(xùn)練7: 多表連接查詢 4.5.1訓(xùn)練目的 4.5.2訓(xùn)練時間 4.5.3訓(xùn)練內(nèi)容 4.5.4思考題 4.6子查詢 4.6.1用子查詢實現(xiàn)數(shù)據(jù)查詢 4.6.2利用SQL命令建立新的表 4.7技能訓(xùn)練8: 子查詢 4.7.1訓(xùn)練目的 4.7.2訓(xùn)練時間 4.7.3訓(xùn)練內(nèi)容 4.7.4思考題 習(xí)題4 第5章建立視圖 5.1視圖概述 5.1.1視圖的功能 5.1.2視圖的分類 5.2建立視圖 5.2.1用SSMS管理器窗口建立視圖 5.2.2用命令建立視圖 5.2.3查看視圖的代碼 5.2.4刪除視圖 5.3視圖的應(yīng)用 5.3.1通過視圖添加表數(shù)據(jù) 5.3.2更新記錄中的數(shù)據(jù) 5.3.3刪除記錄中的數(shù)據(jù) 5.4技能訓(xùn)練9: 視圖的建立與管理 5.4.1訓(xùn)練目的 5.4.2訓(xùn)練時間 5.4.3訓(xùn)練內(nèi)容 5.4.4思考題 習(xí)題5 第6章建立索引 6.1索引概述 6.1.1索引的功能 6.1.2索引的分類 6.2索引的建立 6.2.1用SSMS管理器窗口建立索引 6.2.2用命令建立索引 6.3索引的管理 6.3.1用命令管理索引 6.3.2索引的維護 6.3.3重建索引 6.3.4更新統(tǒng)計信息 6.4技能訓(xùn)練10: 索引的建立與管理 6.4.1訓(xùn)練目的 6.4.2訓(xùn)練時間 6.4.3訓(xùn)練內(nèi)容 6.4.4思考題 習(xí)題6 第7章存儲過程 7.1存儲過程的功能與分類 7.1.1存儲過程的功能 7.1.2存儲過程的分類 7.2存儲過程的建立 7.2.1建立存儲過程 7.2.2建立無參存儲過程 7.2.3存儲過程的調(diào)用 7.2.4建立帶輸入?yún)?shù)的存儲過程 7.2.5建立帶輸入和輸出參數(shù)的存儲過程 7.3存儲過程的管理 7.3.1用SSMS管理器窗口執(zhí)行存儲過程 7.3.2修改存儲過程 7.3.3存儲過程腳本的查看 7.3.4存儲過程的綜合應(yīng)用 7.4技能訓(xùn)練11: 存儲過程的建立與調(diào)用 7.4.1訓(xùn)練目的 7.4.2訓(xùn)練時間 7.4.3訓(xùn)練內(nèi)容 7.4.4思考題 習(xí)題7 第8章觸發(fā)器 8.1觸發(fā)器的功能與分類 8.1.1觸發(fā)器的功能 8.1.2觸發(fā)器的分類 8.1.3與觸發(fā)器相關(guān)的兩個表 8.2觸發(fā)器的建立 8.2.1建立觸發(fā)器 8.2.2觸發(fā)器應(yīng)用 8.2.3觸發(fā)器的綜合應(yīng)用 8.2.4INSTEAD OF觸發(fā)器 8.3觸發(fā)器的管理 8.3.1修改觸發(fā)器 8.3.2刪除觸發(fā)器 8.3.3查看觸發(fā)器 8.3.4觸發(fā)器的禁用和啟用 8.4技能訓(xùn)練12: 觸發(fā)器的建立與使用 8.4.1訓(xùn)練目的 8.4.2訓(xùn)練時間 8.4.3訓(xùn)練內(nèi)容 8.4.4思考題 習(xí)題8 第9章TSQL編程 9.1TSQL語法基礎(chǔ) 9.1.1標識符 9.1.2變量 9.1.3數(shù)學(xué)運算符 9.1.4字符串連接運算符 9.2系統(tǒng)函數(shù) 9.2.1CASE函數(shù) 9.2.2NULL值處理函數(shù) 9.2.3系統(tǒng)信息函數(shù) 9.2.4DATENAME日期函數(shù) 9.2.5字符串處理函數(shù) 9.2.6數(shù)值處理函數(shù) 9.3流程控制語句 9.3.1順序結(jié)構(gòu) 9.3.2選擇結(jié)構(gòu) 9.3.3循環(huán)結(jié)構(gòu) 9.3.4WAITFOR語句 9.4技能訓(xùn)練13: 數(shù)據(jù)庫編程 9.4.1訓(xùn)練目的 9.4.2訓(xùn)練時間 9.4.3訓(xùn)練內(nèi)容 9.4.4思考題 習(xí)題9 第10章數(shù)據(jù)庫備份與還原 10.1數(shù)據(jù)庫備份與恢復(fù)概述 10.1.1備份和恢復(fù)需求分析 10.1.2備份概述 10.1.3備份的類型 10.1.4還原的類型 10.2數(shù)據(jù)庫備份 10.2.1用SSMS管理器備份 10.2.2用命令備份數(shù)據(jù)庫 10.2.3用命令實現(xiàn)事務(wù)日志備份 10.2.4刪除備份設(shè)備 10.3數(shù)據(jù)庫還原 10.3.1還原數(shù)據(jù)庫的任務(wù) 10.3.2用SSMS還原數(shù)據(jù)庫 10.3.3用命令還原數(shù)據(jù)庫 10.3.4數(shù)據(jù)庫的導(dǎo)出 10.4技能訓(xùn)練14: 數(shù)據(jù)庫備份與還原 10.4.1訓(xùn)練目的 10.4.2訓(xùn)練時間 10.4.3訓(xùn)練內(nèi)容 10.4.4思考題 習(xí)題10 第11章數(shù)據(jù)庫安全管理 11.1數(shù)據(jù)庫安全概述 11.1.1SQL Server數(shù)據(jù)庫安全等級 11.1.2登錄模式 11.2管理登錄名 11.2.1用SSMS創(chuàng)建登錄名 11.2.2用命令創(chuàng)建登錄名 11.2.3維護登錄名 11.3管理用戶 11.3.1使用SSMS管理用戶 11.3.2用命令建立用戶 11.3.3維護用戶 11.4管理角色 11.4.1固定數(shù)據(jù)庫角色 11.4.2用戶自定義數(shù)據(jù)庫角色 11.4.3應(yīng)用程序角色 11.5管理權(quán)限 11.5.1權(quán)限的分類 11.5.2對象權(quán)限 11.5.3語句權(quán)限 11.6技能訓(xùn)練15: 數(shù)據(jù)庫安全管理 11.6.1訓(xùn)練目的 11.6.2訓(xùn)練時間 11.6.3訓(xùn)練內(nèi)容 11.6.4思考題 習(xí)題11 第12章SQL Server數(shù)據(jù)庫程序開發(fā) 12.1數(shù)據(jù)庫應(yīng)用程序結(jié)構(gòu) 12.1.1C/S(客戶端/服務(wù)器端)結(jié)構(gòu) 12.1.2B/S(瀏覽器端/服務(wù)器端)結(jié)構(gòu) 12.1.3三層(或N層)結(jié)構(gòu) 12.1.4數(shù)據(jù)庫訪問技術(shù) 12.2ADO.NET數(shù)據(jù)庫訪問技術(shù) 12.2.1ADO.NET技術(shù) 12.2.2ADO.NET數(shù)據(jù)庫操作對象 12.3使用C#.NET開發(fā)SQL Server數(shù)據(jù)庫程序 12.3.1項目任務(wù)描述 12.3.2數(shù)據(jù)庫設(shè)計 12.3.3前臺頁面設(shè)計 12.4使用ASP.NET開發(fā)SQL Server數(shù)據(jù)庫程序 12.4.1項目任務(wù)描述 12.4.2數(shù)據(jù)庫設(shè)計 12.4.3在web.config文件中配置數(shù)據(jù)連接 12.4.4圖書分類信息添加、修改、刪除與查詢功能的實現(xiàn) 12.4.5用戶登錄與圖書管理模塊功能的實現(xiàn) 12.5技能訓(xùn)練16: 用VS+SQL Server開發(fā)圖書管理系統(tǒng) 12.5.1訓(xùn)練目的 12.5.2訓(xùn)練時間 12.5.3訓(xùn)練內(nèi)容 12.5.4思考題 習(xí)題12 附錄各章參考答案 參考文獻
第3章建立表
SQLServer2014的主要數(shù)據(jù)類型; 運用SSMS創(chuàng)建和管理表(包括結(jié)構(gòu)和記錄); 數(shù)據(jù)完整性及實現(xiàn)方法; 表的修改與維護。 掌握SQLServer2014常用的數(shù)據(jù)類型及用法,能夠利用SSMS管理器窗口方式和SQL命令方式創(chuàng)建表、修改表、刪除表,能夠?qū)τ涗涍M行維護操作,掌握數(shù)據(jù)完整性的意義和用命令實現(xiàn)數(shù)據(jù)完整性的方法。 3.1SQLServer2014的主要數(shù)據(jù)類型 數(shù)據(jù)表簡稱表,是數(shù)據(jù)庫的最主要組成成分,數(shù)據(jù)庫建好以后,里面沒有任何內(nèi)容,是個空架子。通過在數(shù)據(jù)庫中添加表,數(shù)據(jù)庫中才會有內(nèi)容。表由若干欄目(即列或者字段)和若干行組成,每一行稱為一條記錄。每個欄目均需要設(shè)置其名稱(即列名、字段名)、數(shù)據(jù)類型、長度、約束,列名必須符合標識符的要求,數(shù)據(jù)類型由系統(tǒng)規(guī)定,長度是一個整數(shù),表示這個列最大可以輸入多少個字符,而約束是對這個列的值設(shè)置的限制條件,如性別只能為“男”或者“女”。所有列全部加起來組成表結(jié)構(gòu),即表頭,因此表就是由結(jié)構(gòu)和記錄兩部分組成的。 建立表時,必須先建立結(jié)構(gòu),然后才能添加記錄,沒有記錄的表稱為空表。 3.1.1SQLServer2014的數(shù)據(jù)類型 數(shù)據(jù)類型表達的功能是當前列的值是什么類型的,比如年齡必須是正整數(shù)、成績肯定是數(shù)值、姓名一定是字符型、生日是日期型數(shù)據(jù)等,因此建立表時,決定各個列的數(shù)據(jù)類型的唯一依據(jù)是這個列的所有可能取值。 SQLServer2014定義了35種標準數(shù)據(jù)類型,用戶也可以自己定義數(shù)據(jù)類型,但用得很少,一般是使用標準數(shù)據(jù)類型。部分數(shù)據(jù)類型的長度是固定的(如int、date),不允許改變,有些數(shù)據(jù)類型的長度是可以設(shè)置的(如char)。 雖然系統(tǒng)支持的數(shù)據(jù)類型很多,但一些數(shù)據(jù)類型極少使用,常用的數(shù)據(jù)類型只有十多種。 3.1.2字符型 字符數(shù)據(jù)類型包括char、varchar、nchar、nvarchar型,其默認長度都是50,這些數(shù)據(jù)類型用于存儲字符數(shù)據(jù)。字符型數(shù)據(jù)指由字母、數(shù)字和其他特殊符號(如標點、$,#,@)、漢字構(gòu)成的字符串,賦值時要用單引號‘’引起來,如表31所示。 表31字符類型 數(shù)據(jù)類型 格式 描述 存儲空間 char char(n) n為1~8000字符之間 n字節(jié) varchar varchar(n) n為1~8000字符之間 實際字符數(shù) nchar nchar(n) n為1~4000個Unicode字符 2*n字節(jié) nvarchar(n) nvarchar(n) 最多為230-1個Unicode字符 2*字符數(shù)+2字節(jié)額外開銷 varchar和char類型的主要區(qū)別是數(shù)據(jù)填充后,實際占用的長度不同,如果有個列名Name的數(shù)據(jù)類型為varchar(20),其值為Brian,5個字符,物理上只存儲5個字節(jié),但如果數(shù)據(jù)類型為char(20),將使用全部20個字節(jié),因為SQLServer會自動補充15個空格來填滿20個字符。一般原則是:值小于或等于5個字節(jié)的列采用char比較合理,如果超過10個字符,使用varchar更有利于節(jié)省空間。 nvarchar和nchar的工作方式與對應(yīng)的varchar數(shù)據(jù)類型和char數(shù)據(jù)類型相同,但這兩種數(shù)據(jù)類型都可以處理國際性的Unicode通用字符,它們需要一些額外開銷,以Unicode形式存儲的數(shù)據(jù)為一個字符占兩個字節(jié)。如果要將值Brian存儲到nvarchar列,要占用10個字節(jié);而如果將它存儲為nchar(20),就需要使用40個字節(jié)。 3.1.3整數(shù)型 整數(shù)型簡稱整型,可用于存儲精確的整數(shù),包括bigint(大整型)、int(普通整型)、smallint(小整型)和tinyint(微型整型)、bit(位)5種類型,它們的區(qū)別在于表示數(shù)據(jù)的范圍不同,如表32所示。 表32整數(shù)型 數(shù)據(jù)類型 描述 存儲空間 bit 0、1或null 1字節(jié)(8位) tinyint 0~255之間的整數(shù) 1字節(jié) smallint -32768~32767之間的整數(shù) 2字節(jié) int -231~231-1之間的整數(shù) 4字節(jié) bigint -263~263-1之間的整數(shù) 8字節(jié) 在建表時,整型數(shù)據(jù)通常用int表示。 3.1.4精確實數(shù)型 表示能夠精確存儲的實數(shù)值,由總長度和小數(shù)位數(shù)構(gòu)成,總位數(shù)不得小于小數(shù)位數(shù)。包括以下兩種。 decimal(n,m):十進制型,格式是decimal(n,m),n表示總長度,m表示小數(shù)位數(shù)。如:decimal(10,5),表示總長度是10位,其中小數(shù)位數(shù)是5位,整數(shù)位數(shù)也是5位,小數(shù)點不占位數(shù)。 numeric:數(shù)值型,其用法與decimal相同,如numeric(10)表示長度是10位,不允許有小數(shù),實際上就是整數(shù),而numeric(10,5)表示最多5位小數(shù),5位整數(shù)。 3.1.5近似實數(shù)型 近似實數(shù)型數(shù)據(jù)可以存儲的精度不是很高,但數(shù)據(jù)的取值范圍卻又非常大的數(shù)據(jù),其長度是固定的,用戶不可以改變,可以用普通方法和科學(xué)記數(shù)法表示。包括以下兩種。 real:實數(shù),可以表示的數(shù)值范圍是-3.40E+38~-1.18E-38,0,1.18E-38~3.40E+38。 float:浮點數(shù),可以表示的數(shù)值范圍是-1.79E+308~-2.23E-308,0,2.23E-308~1.79E+308,在計算機中,1234.3456用科學(xué)記數(shù)法表示為:1.234456e3,即1.2343456*103,也可以寫成12.343456e2,5.67E-5表示5.67×10-5,e可以用大寫,也可以用小寫。 3.1.6貨幣型 貨幣型實際上就是近似實數(shù)型的特殊情況,允許在數(shù)值前面加上貨幣符號$,表示金額,通常用于財務(wù)部門,其長度是固定的。如$13.4,$9.5E8,貨幣型也包括兩種,區(qū)別是能表示的數(shù)字范圍不同。 money:長度為8字節(jié),如$326779.1234,精確到萬分之一。 smallmoney:長度為4字節(jié),如$23.333,3.51e8,$3.51e8。 3.1.7日期時間型 在SQLServer中日期時間型表示日期或者時間,其值要以字符串的形式表示,即要用單引號括起來,包括4種類型。 (1)date:日期型。范圍是1753.1.1~9999.12.31。日期分隔符可以是“/”或“”,格式可以是MM/DD/YYYY,也可以是MMDDYYYY,MM表示兩位月,DD表示兩位日,YYYY表示四位年,日期還可以表示為YYYY/MM/DD格式(歐洲格式)。 日期可以只精確到月,系統(tǒng)自動填寫為當月的1日。 (2)time:時間型。格式為hh:mm:ssAM/PM,AM表示上午,PM表示下午,默認是上午,既可以采用12小時制,也可以采用24小時制,通常用24小時制表示更加方便,不容易出錯。 時間可以只精確到分鐘,系統(tǒng)自動補充到0秒。 (3)datetime:日期和時間的結(jié)合體。范圍為1753.1.1的0時~9999.12.31的23:59:59。格式是MM/DD/YYYYhh:mm:ssAM/PM,時間分隔符是冒號“:”,日期與時間之間用空格分開?梢灾灰掌冢部梢灾灰獣r間,也可以是日期和時間組合使用。 例:2016101511:20表示2016年10月15日上午11點20分。 (4)smalldatetime:小日期時間型。能夠表示的范圍是:1900.1.1~2079.6.6,其他要求同datetime。 3.1.8文本型 文本型數(shù)據(jù)類型主要是用于存儲超大長度的文本內(nèi)容,即用char、varchar、nchar、nvarchar四種類型還不足以表示的大數(shù)據(jù),文本型數(shù)據(jù)類型的長度是固定的,用戶不可以修改,包括以下兩種類型。 text:字符型,用來存儲大量的非統(tǒng)一編碼型字符數(shù)據(jù),最多可以有231-1或20億個字符。 nchar:統(tǒng)一編碼字符型,用來存儲定長統(tǒng)一編碼字符型數(shù)據(jù)。統(tǒng)一編碼用雙字節(jié)結(jié)構(gòu)來存儲每個字符,因此相比普通的字符類型數(shù)據(jù),它占用的存儲容量要大一倍,其最大容量為230-1字節(jié)。 當然,也可以用文本型存儲較少的字符內(nèi)容,但處理起來不如字符型方便,占用了更多的空間。一般像簡歷、獎勵情況、發(fā)言稿這樣的字段可以考慮使用文本型。 3.1.9二進制型 二進制數(shù)據(jù)類型用于存儲二進制數(shù)據(jù),包括binary、varbinary、image三種類型。 binary:二進制數(shù)據(jù)類型,存儲最長8000字節(jié)長的定長的二進制數(shù)據(jù),用戶可以設(shè)置長度。如果其長度設(shè)為n,則其存儲的大小是n+4個字節(jié)。當表中各條記錄這個列的內(nèi)容接近相同的長度時,使用這種數(shù)據(jù)類型比較合理。 varbinary:可變長二進制數(shù)據(jù)類型,用來存儲最長8000字節(jié)的二進制數(shù)據(jù),用戶可以設(shè)置長度。當各條記錄此列的內(nèi)容長短不一,變化較大時,使用這種數(shù)據(jù)類型有利于節(jié)省存儲空間。 image:圖像型,用來存儲變長的二進制數(shù)據(jù),最大可達231-1或大約20億字節(jié),類似于照片、頭像、證書等這樣的字段可以采用image類型,支持JPG、TIFF、PNG、GIF等格式。 值得注意的是,SQLServer并不能直接讀出二進制文件和圖像型文件,也就是說,不能直接在表中輸入二進制數(shù)據(jù)和圖像型數(shù)據(jù),也不可能顯示出來,因此它們的內(nèi)容通常為NULL(空),需要由軟件開發(fā)工具如Java、C#等語言進行賦值并顯示內(nèi)容。如某表包括5個列和數(shù)據(jù)類型是:編號char(10)、姓名char(8)、工作簡歷text、照片image、代表作binary(7000)、學(xué)歷證書varbinary(1000),其記錄情況如圖31所示。 圖31例表 3.1.10特殊數(shù)據(jù)類型 timestamp:時間戳類型,相當于一個單向遞增的計數(shù)器,表示SQLServer活動的先后順序,Timestamp數(shù)據(jù)與插入數(shù)據(jù)的日期和時間并沒有關(guān)系。當所定義的列在更新或插入新行時,此列值自動更新并自動填寫。如果表中列名為Timestamp,系統(tǒng)自動設(shè)置為Timestamp類型。 uniqueidentifier:唯一標識型類型,長度為16,是根據(jù)網(wǎng)卡地址和CPU時鐘產(chǎn)生,通過函數(shù)newid()獲得,全球各地機器產(chǎn)生的此值都不同,但用戶可以修改。當表的記錄行要求唯一時,用uniqueidentifier類型最實用。例如,“客戶標識”列用這種類型可以區(qū)別不同的客戶。 3.2創(chuàng)建表結(jié)構(gòu) 表是數(shù)據(jù)庫中最基本的組成成分,一個完整的表包括表的結(jié)構(gòu)和記錄,表的結(jié)構(gòu)由全部列、列的約束、列與列之間的相互約束三部分組成。創(chuàng)建表有兩種方法:一種是用SSMS管理器的菜單方式,另一種是用命令方式,其用途更廣泛。 3.2.1用管理器菜單方式建立數(shù)據(jù)庫 例31利用管理器窗口給libsys數(shù)據(jù)庫添加讀者信息表ReaderInfo,列的組成如表33所示,各列的含義參見表14,除主鍵約束和非空約束外,其他約束暫不設(shè)置。
你還可能感興趣
我要評論
|