MySqlOracleSqlServer三大數(shù)據(jù)庫的數(shù)據(jù)類型列表_第1頁
MySqlOracleSqlServer三大數(shù)據(jù)庫的數(shù)據(jù)類型列表_第2頁
MySqlOracleSqlServer三大數(shù)據(jù)庫的數(shù)據(jù)類型列表_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、MySql Oracle SqlServer三大數(shù)據(jù)庫的數(shù)據(jù)類型列表MySql數(shù)據(jù)類型數(shù)據(jù)類型描述字節(jié)推薦使用SMALLINT整數(shù),從-32000 到 +32000X圍2存儲相對比較小的整數(shù)。比如:年紀,數(shù)量INT整數(shù),從-2000000000到 +2000000000 X 圍4存儲中等整數(shù)例如:距稱BIGINT不能用SMALLINT或INT描 述的超大整數(shù)。8存儲超大的整數(shù)例如:科學(xué)/數(shù)學(xué)數(shù)據(jù)FLOAT單精度浮點型數(shù)據(jù)4存儲小數(shù)數(shù)據(jù)例如:測量,溫度DOUBLE雙精度浮點型數(shù)據(jù)8-要雙精度存儲的小數(shù)數(shù)據(jù)例如:科學(xué)數(shù)據(jù)DECIMAL用戶自定義精度的浮點型 數(shù)據(jù)變量;取決于精 度與長度以特別高的精

2、度存儲小數(shù)數(shù)據(jù)。例如:貨幣數(shù) 額,科學(xué)數(shù)據(jù)CHAR固定長度的字符串特定字符串長度(高達255字符)存儲通常包含預(yù)定義字符串的變量例如:定期 航線,國家或郵編VARCHAR具有最大限制的可變長度 的字符串變量;1 +實際 字符串長度(高 達255字符)存儲不同長度的字符串值(高達一個特定的最 大限度)例如:名字,密碼,短文標簽TEXT沒有最大長度限制的可變 長度的字符串Variable; 2 + 聽 actual string length存儲大型文本數(shù)據(jù)例如:新聞故事,產(chǎn)品描述BLOB二進制字符串變量;2 +實際 字符串長度存儲二進制數(shù)據(jù)例如:圖片,附件,二進制文檔DATE以yyyy-mm-d

3、d格式的日期3存儲日期例如:土日,產(chǎn)品滿期TIME以hh:mm: ss格式的時間3存儲時間或時間間隔例如:報警聲,兩時間之間 的間隔,任務(wù)開始/結(jié)束時間DATETIMEyyyy-mm-ddhh: mm: ss 格式 結(jié)合日期和時間8存儲包含日期和時間的數(shù)據(jù)例如:提醒的人,事 件TIMESTAMPyyyy-mm-ddhh: mm: ss 格式 結(jié)合日期和時間4記錄即時時間例如:事件提醒器,“最后進入” 的時間標記YEAR以yyyy格式的年份1存儲年份例如:畢業(yè)年,出生年ENUM一組數(shù)據(jù),用戶可從中選擇 其中一個1或2個字節(jié)存儲字符屬性,只能從中選擇之一例如:布爾量 選擇,如性別SET一組數(shù)據(jù),用

4、戶可從中選擇 其中0, 1或更多。從1到8字節(jié); 取決于設(shè)置的大 小存儲字符屬性,可從中選擇多個字符的聯(lián)合。 例如:多選項選擇,比如業(yè)余愛好和興趣。Oracle數(shù)據(jù)類型、概述在0RACLE8中定義了:標量(SCALAR)、復(fù)合(POSITE)、引用(REFERENCE)和LOB四種數(shù)據(jù)類型,下面詳細 介紹它們的特性。二、標量(SCALAR)合法的標量類型與數(shù)據(jù)庫的列所使用的類型相同,此外它還有一些擴展。它又分為七個組:數(shù)字、字符、行、 日期、行標識、布爾和可信。數(shù)字、它有三種基本類型一NUMBER、PLS_INTEGER和BINARY INTENER。NUMBER可以描述整數(shù)或?qū)崝?shù),而 PLS

5、_INTEGER 和 BINARY.INTENER 只能描述整數(shù)。NUMBER.是以十進制格式進行存儲的,它便于存儲,但是在計算上,系統(tǒng)會自動的將它轉(zhuǎn)換成為二進制進行運 算的。它的定義方式是NUMBER (P, S), P是精度,最大38位,S是刻度X圍,可在-84. 127間取值。例如:NUMBER (5, 2)可以用來存儲表示-999. 99. 999. 99間的數(shù)值。P、S可以在定義是省略,例如:NUMBER (5)、NUMBER等;BINARY INTENER用來描述不存儲在數(shù)據(jù)庫中,但是需要用來計算的帶符號的整數(shù)值。它以2的補碼二進制形式 表述。循環(huán)計數(shù)器經(jīng)常使用這種類型。PLS I

6、NTEGER和BINARY ZV7E松7?唯一區(qū)別是在計算當(dāng)中發(fā)生溢出時,BINARY_INTENER型的變量會被自動指派 給一個NUMBER型而不會出錯,PLS_INTEGER型的變量將會發(fā)生錯誤。字符、包括 CHAR, VARCHAR2 (VARCHAR). LONG、NCHAR 和 NVARCHAR2 幾種類型。CHAR、描述定長的字符串,如果實際值不夠定義的長度,系統(tǒng)將以空格填充。它的聲明方式如下CHAR (L), L 為字符串長度,缺省為1,作為變量最大32767個字符,作為數(shù)據(jù)存儲在0RACLE8中最大為2000。VARCHAR2 (VARCHAR),描述變長字符串。它的聲明方式如

7、下VARCHAR2 (L), L為字符串長度,沒有缺省值,作 為變量最大32767個字節(jié),作為數(shù)據(jù)存儲在0RACLE8中最大為4000。在多字節(jié)語言環(huán)境中,實際存儲的字符個數(shù)可 能小于L值,例如:當(dāng)語言環(huán)境為中文(SIMPLIFIEDCHINESE-CHINA. ZHS16GBK)時,一個VARCHAR2 (200)的數(shù)據(jù) 列可以保存200個英文字符或者100個漢字字符。LONG,在數(shù)據(jù)庫存儲中可以用來保存高達2G的數(shù)據(jù),作為變量,可以表示一個最大長度為32760字節(jié)的可變 字符串。NCHAR. NVARCHAR2,國家字符集,與環(huán)境變 NLS指定的語言集密切相關(guān),使用方法和CHAR, VAR

8、CUAR2相同。 行、包括RAW和LONG RAW兩種類型。用來存儲二進制數(shù)據(jù),不會在字符集間轉(zhuǎn)換。R刖;類似于CHAR,聲明方式RAW(L), L為長度,以字節(jié)為單位,作為數(shù)據(jù)庫列最大2000,作為變量最大32767 字節(jié)。LONG RAW,類似于LONG,作為數(shù)據(jù)庫列最大存儲2G字節(jié)的數(shù)據(jù),作為變量最大32760字節(jié)。日期、只有一種類型一DATE,用來存儲時間信息,站用7個字節(jié)(從世紀到秒),絕對沒有“千年蟲”問題。行標識、只有一種類型一ROWID,用來存儲''行標識符”,可以利用ROWIDTOCHAR函數(shù)來將行標識轉(zhuǎn)換成為字 符。布爾、只有一種類型一BOOLEAN,僅僅可

9、以表示TRUE、FALSE或者NULL。可信、只有一種類型一MLSLABEL,可以在TRUSTED ORACLE中用來保存可變長度的二進制標簽。在標準ORACLE 中,只能存儲NULL值。三、復(fù)合(POSITE)標疑類型是經(jīng)過預(yù)定義的,利用這些類型可以衍生出一些復(fù)合類型。主要有記錄、表。記錄,可以看作是一組標量的組合結(jié)構(gòu),它的聲明方式如下:TYPE record_type name IS RECORD(filedl typel NOT NULL : =exprlfiledn typen NOT NULL : =exprn)其中,record_type name是記錄類型的名字。(是不是看著象C

10、REATE TABLE?)引用時必須定義相關(guān)的變量,記錄只是TYPE,不是VARIABLE。表,不是物理存儲數(shù)據(jù)的表,在這里是一種變量類型,也稱為PL/SQL表,它類似于C語言中的數(shù)組,在處理 方式上也相似。它的聲明方式如下:TYPE table_type_name IS TABLE OF scalar type INDEX BY BINARY_INTENER;其中,table_type name是類型的名字,scalar type是一種標量類型的類型聲明。引用時也必須定義相關(guān)的 變量。表和數(shù)組不同,表有兩列,KEY和VALUE, KEY就是定義時聲明的BINARY_INTENER, VALU

11、E就是定義時聲明的 scalar_typeo除了記錄和表之外,還有對象類型、集合(嵌套表和VARRAYS)等類型,這些將專門講解。四、引用(REFERENCE)在PL/SQL8. 0之前,只有一種類型一REF CURSOR,也就是游標。它的定義較為簡單,CURSOR cursor_name IS selectfrom;在PL/SQL8. 0之后,引入了 REF類型,它指向一個對象。這種類型將單獨講解。(等我弄明白再說,免得在高 人面前)五、L0B型LOB變量主要是用來存儲大量數(shù)據(jù)的數(shù)據(jù)庫字段,最大可以存儲4G字節(jié)的內(nèi)容(這么大,存VCD?,浪費?。?主要有:CLOB:和ORACLE7中的LO

12、NG類型相似,存儲單字節(jié)字符數(shù)據(jù)。(別用來存中文喔。)NCLOB:用來存儲定寬多字節(jié)字符數(shù)據(jù)。(例如:存嘯傲江湖就挺好)BLOB:和LONG RAW相似,用來存儲無結(jié)構(gòu)的二進制數(shù)據(jù)。BFILE:它用來允許ORACLE對數(shù)據(jù)庫外存儲的大型二進制文本進行只讀形式的訪問。六、其他其實在完成對標量變量的理解之后,基本上可以應(yīng)付C/S模式下的常規(guī)數(shù)據(jù)庫應(yīng)用所需了,后續(xù)的類型說實話, 我玩了 5年0RACLE,都很少用到。附:參考書«ORACLE8 PL/SQL程序設(shè)計(WRACLE8 PL/SQL PROGRAMMING) ORACLE技術(shù)系列叢書 機械工業(yè) 注:本文所列舉的是PL/SQL當(dāng)中

13、可以定義的數(shù)據(jù)類型,并不是所有的類型都可以在建表時指定為列的數(shù)據(jù)類 型SqlServer數(shù)據(jù)類型數(shù)據(jù)類型說明bigint整數(shù)數(shù)據(jù),從-263 ( - 9,223,372,036,854,775,808)到 263 - 1 (9.223.372,036,854,775,807) 存儲 大小為8字節(jié).integer養(yǎng)數(shù)數(shù)據(jù),從-231 (-2.147,483.648)到 231 - 1 (2.147.483,647)。存儲大小為4字節(jié).smallint整數(shù)數(shù)據(jù),從32.768到32.767。存儲大小為2字節(jié)。tinyint整數(shù)數(shù)據(jù),從0到255。存儲大小為1字節(jié)bit養(yǎng)數(shù)數(shù)據(jù),值為1或0。存儲大小

14、為1位。numeric (p. s)固定精度和小數(shù)的數(shù)字數(shù)據(jù),取值X圍從-1038+1到 0381。卩變量指定精度,取值X國從1到38。 s變指定小數(shù)位數(shù),取值X圍從0到p存儲大小為19字節(jié)。money贊幣數(shù)據(jù)值,從( 2飛3/10000) (-922.337,203,685,477. 5808)到 263 - 1(922,337.203,685,477.5807),準磽度為貸幣單位的萬分之一。存儲大小為8字節(jié)。float浮點數(shù)數(shù)據(jù),從-L 79E +308到1.79E+308 存儲大小為8字節(jié).real浮點精度數(shù)字數(shù)據(jù),從-3.40E+38到3.40E+38。存儲大小為4字節(jié).datetim

15、e日期和時間數(shù)據(jù),從1753年1月1日到9999年12月31日,準確度為三百分之一秒或3. 33亳秒。 值被圓整到.000. 003或.007毫秒增量。存儲為兩個4字節(jié)整數(shù)。前4個字節(jié)存儲早于或晚于基日期1900年1月1日的天數(shù)。基日期是系統(tǒng) 的參照日期。不允許datetime的值早于1753年1月1日。后4個字節(jié)存儲一天之中的具體時問,被 表示為從午夜算起的毫秒數(shù)。秒數(shù)的有效X圍長0-59.national character(n)Synonym:nchar(n)固定長度的Unicode數(shù)據(jù),最大長度為4000個字符。默認長度=1。存儲大小(以字節(jié)計)是輸入的字 符數(shù)的兩倍。national

16、 character varying(n)Synonym:nvarchar(n)可爽長度的Unicode數(shù)據(jù),長度值X圍為從1到4000個字符。默認長度=1存儲大小(以字節(jié)計)長 輸入的字符數(shù)的兩倍。ntext可變長度的Unicode數(shù)據(jù),最大長度為(230-2)/2(536,870,911)個字符.存儲大小(以字節(jié)計)是輸 入的字符數(shù)的兩倍。注意:字符串函數(shù)中不再支持ntext.binary(n)固定長度的二進制數(shù)據(jù),最大長度為8000字節(jié)。獣認長度=1.存儲大小是固定的,是在類型中聲明的以字節(jié)為單位的長度。varbinary(n)可變長度的二進制數(shù)據(jù),最大長度為8000字節(jié)。獣認長度=1.

17、存儲大小可變。它表示值的長度(以字節(jié)為單位)image可變長度的二進制數(shù)據(jù),最大長度為2"30- 1 (1,073,741,823)字節(jié)。存儲大小是值的以字節(jié)為單位的長度。uniqueidentifier全局唯一標識符(GUID) o存儲大小為16字節(jié)。IDENTITY (s. i)這是數(shù)據(jù)列的一個屬性,而不是一個獨特的數(shù)據(jù)類型.只有整數(shù)數(shù)據(jù)類型的數(shù)據(jù)列可用于標識列。一個表只能有一個標識列??梢灾付ǚN子和增量,但不能更新列。 s (seed)=起始值i(increment)=增量值ROWGUIDCOL這是數(shù)據(jù)列的一個屬性,而不是一個獨特的數(shù)據(jù)類型。它是一個表中使用uniqueiden

18、tifier數(shù)據(jù)類型定義 的列.一個表只能有一個ROWGUIDCOL列表SQL到Java數(shù)據(jù)類型影射表SQL數(shù)據(jù)類型JAVA數(shù)據(jù)類型CHARStringVARCI1ARStringLONGVARCHARStringNUMERICjava. math BigDecimalDECIMALjava. math BigDecimalBITBooleanTINYINTByteSMALLINTShortINTEGERIntBIG1NTLongREALFloatFLOATDoubleDOUBLEDoubleBINARYbyteVARB1NARYbyteLONGVARBINARYbyteDATEjava. s

19、ql. DateTIMEjava. sql. TimeTIMESTAMPjava. sql.TimestampJava到SQL數(shù)據(jù)類型影射表JAVA數(shù)據(jù)類型SQL數(shù)據(jù)類型StringVARCI1AR or LONGVARCHARjava. math BigDecimalNUMERICBooleanBITByteTINYINTShortSMALLINTIntINTEGERLongBIGINTFloatREALDoubleDOUBLEjava sql. DateDATEjava sql. TimeTIMEjava. sql. TimestampTIMESTAMP這里,大伙要注意了,并不是所有的數(shù)據(jù)

20、類型在各種數(shù)據(jù)庫管理系統(tǒng)中幫被支持。下面,就幾種常用的數(shù)據(jù)類型之問的轉(zhuǎn)化進行說明:(1) CHAR, VARCHAR.和 LONGVARCHAR在SQL語言中,有三種分別表示不同長度的字符類型CHAR. VARCHAR,和LONGVARCHAR,在Java/Jsp中并沒有相應(yīng)的三種不同的數(shù)據(jù) 類型與之一一對應(yīng),JDBC的處理方法是將其與String或者chart對應(yīng)起來。在實際編程中不必對著三種SQL數(shù)據(jù)類型進行區(qū)分,全 部將他們轉(zhuǎn)化為Sting或者chart就可以了。而且通常使用應(yīng)用的非常普遍的String類型。我們還可以利用String類提供的方法誨 個String對象轉(zhuǎn)化為chart,或

21、者用chart為參數(shù)構(gòu)遺一個Stirng對象。對于定長度的SQL數(shù)據(jù)類型CHAR(n),當(dāng)從數(shù)據(jù)庫管理系統(tǒng)中獲得的結(jié)果集提取該類型的數(shù)據(jù)時,JDBC會為其構(gòu)造一個長度為n的St 昭對象來代表他,如果實際的宇符個數(shù)不足系統(tǒng)會自動為String對象補上空格。當(dāng)向數(shù)據(jù)庫管理系統(tǒng)寫入的數(shù)據(jù)類型應(yīng)該 是CHAR(n)時,JDBC也會將該String對象的末尾補上相應(yīng)數(shù)量的空格。一般情況下,CHAR. VARCHAR, LONGVARCHAR和String之問可以無差錯的進行轉(zhuǎn)換。但非常值得注意的是LONGVARCHAR.這種SQL的數(shù) 據(jù)類型有時在數(shù)據(jù)庫中代表的數(shù)據(jù)可能有幾兆字節(jié)的大小,超過了 Stri

22、ng對象的険受X圍。JDBC解決的辦法是用Ja迫的Input Str cam來接受這種類型的數(shù)據(jù)以后我們回涉及到0 Input Stream不僅支持ASCII.而且支持Unicode,我們可以根據(jù)需要進行選擇。(2) DECIMAL 和 NUMERICSQL的DECIMAL和NUMERIC通常用來表示需要一定精度的定點數(shù)。在Java的簡單數(shù)據(jù)類型中,沒有一種類型與之相對應(yīng)。但從JDK1.1開始,Sun公司在java. math. 包中加入了一個新的類BigDecimal,該類的對象可以與DECIMAL . NUMERIC進行轉(zhuǎn)換。另外,當(dāng)從數(shù)據(jù)庫管理系統(tǒng)中讀取數(shù)據(jù)時,還可以用getString0方法來獲取DECIMAL和NUMERIC。(3) BINARY. VARBINARY,和 LONGVARBINARY在編程時無須箱確區(qū)分這三種SQL數(shù)據(jù)類型,JDBC將他們

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論