
課件-sql數(shù)據(jù)類型
12頁SQL數(shù)據(jù)類型數(shù)據(jù)庫模式定義語言Data Description Language (DDL)用于描述數(shù)據(jù)庫中要存儲(chǔ)的現(xiàn)實(shí)世界實(shí)體的語言,數(shù)據(jù)庫模式包含了數(shù)據(jù)庫中所有實(shí)體的描述定義,包括表、視圖、索引等數(shù)據(jù)庫對(duì)象結(jié)構(gòu)定義、操作權(quán)限定義等其中一個(gè)最重要的也是最常見的功能是定義了數(shù)據(jù)類型和結(jié)構(gòu)其它信息詳見課本P58數(shù)據(jù)類型對(duì)于實(shí)體不同的屬性描述會(huì)采用的方式,如姓名會(huì)用文本型或者字符串型,年齡、價(jià)格、數(shù)量等則會(huì)用到數(shù)值型,出生年月、生產(chǎn)日期、訂單時(shí)間等則會(huì)用到日期時(shí)間型,性別、是否合格、是否打折等則會(huì)用到布爾型,一些特殊數(shù)據(jù)如加密后的數(shù)據(jù)、音頻、視頻流數(shù)據(jù)則會(huì)采用布爾型注:實(shí)體的每一個(gè)屬性描述反映在數(shù)據(jù)庫中,又稱為一個(gè)字段字符串型數(shù)據(jù)char(n)character(n)varchar(n)textchar和varchar的區(qū)別在于是否定長,其中varchar是不定長的text類型的數(shù)據(jù)比較長,一般用于描述較多的情況,例如對(duì)某個(gè)商品詳細(xì)的研究報(bào)告,或者新聞?lì)愋≌f類的內(nèi)容存儲(chǔ)如:定義“姓名”這個(gè)列的數(shù)據(jù)類型為char(8),當(dāng)我們實(shí)際輸入的數(shù)據(jù)為“李四”,則在內(nèi)存當(dāng)中的存儲(chǔ)為李四和四個(gè)空格但是如果“姓名”這個(gè)列的數(shù)據(jù)類型為varchar(8),那么當(dāng)我們輸入實(shí)際數(shù)據(jù)為“李四”時(shí),實(shí)際存儲(chǔ)的則僅僅是“李四”,沒有空格。
數(shù)值類型-整數(shù)類型整數(shù)由正整數(shù)和負(fù)整數(shù)組成,整數(shù)存儲(chǔ)的數(shù)據(jù)類型是bigint、int、smallint和tinyint1、bigint 存儲(chǔ)大小為 8 個(gè)字節(jié)范圍:-263(-9223372036854775808)到 263-1(9223372036854775807)2、int 存儲(chǔ)大小為 4 個(gè)字節(jié)范圍:-231(-2,147,483,648)到 231-1(2,147,483,647)3、smallint 存儲(chǔ)大小為 2 個(gè)字節(jié)范圍:-215(-32,768)到 215-1(32,767)4、tinyint從 0 到 255 的整型數(shù)據(jù)存儲(chǔ)大小為 1 字節(jié)數(shù)值類型-實(shí)數(shù)類型decimal和numeric由整數(shù)部分和小數(shù)部分構(gòu)成,其所有的數(shù)字都是有效位,能夠以完整的精度存儲(chǔ)十進(jìn)制數(shù)這種數(shù)據(jù)類型的存儲(chǔ)范圍取決于一個(gè)確定的數(shù)字表達(dá)法,而不是一個(gè)固定的數(shù)值例如:decimal(10,2)該類型的取值范圍為:-99999999.9999999999.99數(shù)值類型-貨幣貨幣money和smallmoney代表貨幣或貨幣值的數(shù)據(jù)類型money數(shù)據(jù)類型要求8個(gè)存儲(chǔ)字節(jié),smallmoney數(shù)據(jù)類型要求4個(gè)存儲(chǔ)字節(jié)。
實(shí)際存儲(chǔ)時(shí)采用的是int類型,如果超出范圍還可能實(shí)際存儲(chǔ)的是decimal類型時(shí)間日期類型數(shù)據(jù)日期/時(shí)間數(shù)據(jù)類型用于存儲(chǔ)日期和時(shí)間信息,包括Datetime和Smalldatetime兩種類型Datetime該數(shù)據(jù)類型所存儲(chǔ)的日期范圍是從1753年1月1日到9999年12月31日(每一個(gè)值要求8個(gè)存儲(chǔ)字節(jié)),精確度可以達(dá)到3/100s(即3.33ms)Smalldatetime 數(shù)據(jù)類型所存儲(chǔ)的日期范圍是1900年1月1日到2079年12月31日(每一個(gè)值要求4個(gè)存儲(chǔ)字節(jié)),精度可以達(dá)到分鐘如果只指定時(shí)間,那么日期將被默認(rèn)為1900年1月1日如果只指定日期,那么時(shí)間將被默認(rèn)為是12:00 AM(午夜)時(shí)間日期類型數(shù)據(jù)規(guī)則:1.分隔符可用/、-、.4/14/2011、4-14-2011,4.14.20112.字母日期格式:April 14,20113.不用分隔符:201101144.時(shí):分:秒:毫秒:08:05:25:285.時(shí):分 AM|PM:05:08AM、08:05PM例如:“12/02/11 14:12:00:00:00PM”“14:12:00:00:00PM 12/02/11”二進(jìn)制數(shù)據(jù) 二進(jìn)制數(shù)據(jù)類型表示的是位數(shù)據(jù)流,一般用于存儲(chǔ)二進(jìn)制的大對(duì)象,比如聲音、圖片、多媒體等。
包括 Binary(固定長度)和Varbinary(可變長度)2種其中:Binary(n)是n位固定的二進(jìn)制數(shù)據(jù)Varbinary(n)是n位可變長度的二進(jìn)制數(shù)據(jù)例如:Image是長度可變的二進(jìn)制數(shù)據(jù),從 0 到 2147483647 個(gè)字節(jié)作業(yè):任務(wù):根據(jù)access數(shù)據(jù)庫TestDataForSQL.mdb中的basket表的結(jié)構(gòu),在SQLServer中的master數(shù)據(jù)庫中建立一個(gè)同樣的表,并將該表命名為學(xué)號(hào)+姓名的格式,如“2013000123張三”步驟:1、打開TestDataForSQL.mdb,選擇其中的basket表2、在basket表上右鍵,選擇“設(shè)計(jì)視圖”,可以看到該表的各個(gè)字段的屬性設(shè)置,如數(shù)據(jù)類型、取值范圍、字段長度等3、打開VS2010軟件,選擇菜單欄的“數(shù)據(jù)”菜單項(xiàng),展開數(shù)據(jù)庫視圖4、在數(shù)據(jù)庫視圖中,左鍵選擇打開master數(shù)據(jù)庫,繼續(xù)點(diǎn)擊展開master的“表”選項(xiàng),會(huì)看到里面有很多的數(shù)據(jù)表5、在表的空白處,右鍵選擇“新建表”,會(huì)打開一個(gè)新的空白設(shè)計(jì)表6、依照步驟2中的表的格式,在SQLServer(用VS2010打開的)的新表中依次建立新表的各個(gè)字段的屬性。
7、單擊VS2010中的保存按鈕,提示輸入表名,輸入表名“2013000123”(此處填寫你自己的學(xué)號(hào)姓名)作業(yè):8、截取此時(shí)的屏幕,屏幕中應(yīng)該顯示表的結(jié)構(gòu)以及該表格的名稱(名稱為你的學(xué)號(hào)+姓名);9、繼續(xù)完成課件5中的作業(yè),完成方式為書寫出該三個(gè)題目的SQL語句;10、將上述步驟8的圖片以及步驟9中的3個(gè)SQL語句填寫到一個(gè)word文件中。



![[精編]吳教人[]13號(hào)](/Images/s.gif)








