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

下載本文檔

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

文檔簡介

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

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

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

4、據(jù),用戶可從中選擇 其中 0, 1 或更多。從 1 到 8 字節(jié);取決于設(shè)置的大 小存儲(chǔ)字符屬性,可從中選擇多個(gè)字符的聯(lián)合。 例如:多選項(xiàng)選擇,比如業(yè)余愛好和興趣。Oracle 數(shù)據(jù)類型、概述在 ORACLE8 中定義了:標(biāo)量(SCALAR、復(fù)合(COMPOSITE、引用(REFERENCE和 LOB 四種數(shù)據(jù)類型,下面 詳細(xì)介紹它們的特性。二、標(biāo)量(SCALARSCALAR合法的標(biāo)量類型與數(shù)據(jù)庫的列所使用的類型相同,此外它還有一些擴(kuò)展。它又分為七個(gè)組:數(shù)字、字符、行、 日期、行標(biāo)識(shí)、布爾和可信。數(shù)字,它有三種基本類型 -NUMBER、PLS_INTEGEF 和 BINARY_INTENER

5、NUMBER 可以描述整數(shù)或?qū)崝?shù),而PLS_INTEGEf 和 BINARY_INTENER能描述整數(shù)。NUMBER,是以十進(jìn)制格式進(jìn)行 存儲(chǔ)的,它便于 存儲(chǔ),但是在計(jì)算上,系統(tǒng)會(huì)自動(dòng)的將它轉(zhuǎn)換成為二進(jìn)制進(jìn)行 運(yùn)算的。它的定義方式是NUMBER( P, S),P 是精度,最大 38 位,S 是刻度范圍,可在-84.127 間取值。例如:NUMBER( 5, 2)可以用來存儲(chǔ)表示 -999.99.999.99 間的數(shù)值。P、S 可以在定義是省略, 例如:NUMBER( 5)、NUMBER 等;BINARY_INTENER|來描述不存儲(chǔ)在數(shù)據(jù)庫中,但是需要用來計(jì)算的帶符號(hào)的整數(shù)值。它以 2 的補(bǔ)碼

6、二進(jìn)制形式表述。循環(huán)計(jì)數(shù)器經(jīng)常使用這種類型。PLS_INTEGEf 和口 BINARY_INTENER 隹一區(qū)別是在計(jì)算當(dāng)中發(fā)生溢出時(shí),BINARY_INTENERS的變量會(huì)被自動(dòng)指派給一個(gè) NUMBER 型而不會(huì)出錯(cuò),PLS_INTEGE 型的變量將會(huì)發(fā)生錯(cuò)誤。字符,包括 CHAR VARCHAR2 (VARCHAR、LONG NCHAR 和 NVARCHAR2 幾種類型。CHAR 描述定長的字符串,如果實(shí)際值不夠定義的長度,系統(tǒng)將以空格填充。它的聲明方式如下CHAR( L) , L為字符串長度,缺省為 1,作為變量最大 32767 個(gè)字符,作為數(shù)據(jù)存儲(chǔ)在ORACLE8 中最大為 2000。

7、VARCHAR2 (VARCHAR ,描述變長字符串。它的聲明方式如下VARCHAR2( L), L 為字符串長度,沒有缺省值,作為變量最大 32767 個(gè)字節(jié),作為數(shù)據(jù)存儲(chǔ)在 ORACLE8 中最大為 4000。在多字節(jié)語言環(huán)境中,實(shí)際存儲(chǔ)的字符個(gè) 數(shù)可能小于 L值,例如:當(dāng)語言環(huán)境為中文( SIMPLIFIED CHINESE_CHINA.ZHS16G)時(shí),一個(gè) VARCHAR2( 200)的 數(shù)據(jù)列可以保存 200 個(gè)英文字符或者 100 個(gè)漢字字符。LONG,在數(shù)據(jù)庫存儲(chǔ)中可以用來保存高達(dá)2G 的數(shù)據(jù),作為變量,可以表示一個(gè)最大長度為32760 字節(jié)的可變字符串。NCHAR NVARC

8、HAR2 國家字符集,與環(huán)境變量 NLS 指定的語言集密切相關(guān),使用方法和CHAR VARCHAR2 相同。行,包括 RAW 和 LONG RAW 兩種類型。用來存儲(chǔ)二進(jìn)制數(shù)據(jù),不會(huì)在字符集間轉(zhuǎn)換。RAW,類似于 CHAR,聲明方式 RAW ( L) , L 為長度,以字節(jié)為單位,作為數(shù)據(jù)庫列最大2000 ,作為變量最大32767 字節(jié)。LONG RAW 類似于 LONG,作為數(shù)據(jù)庫列最大存儲(chǔ) 2G 字節(jié)的數(shù)據(jù),作為變量最大 32760 字節(jié)。日期,只有一種類型-DATE 用來存儲(chǔ)時(shí)間信息,站用7 個(gè)字節(jié)(從世紀(jì)到秒),絕對(duì)沒有千年蟲”問題。行標(biāo)識(shí),只有一種類型-ROWID,用來存儲(chǔ) 行標(biāo)識(shí)符

9、”可以利用 ROWIDTOCHAF 函數(shù)來將行標(biāo)識(shí)轉(zhuǎn)換成為字符。布爾,只有一種類型-BOOLEAN 僅僅可以表示 TRUE FALSE 或者 NULL??尚牛挥幸环N類型-MLSLABEL 可以在 TRUSTED ORACL 中用來保存可變長度的二進(jìn)制標(biāo)簽。在標(biāo)準(zhǔn) ORACLE 中,只能存儲(chǔ) NULL 值。三、復(fù)合(COMPOSITECOMPOSITE標(biāo)量類型是經(jīng)過預(yù)定義的,利用這些類型可以衍生出一些復(fù)合類型。主要有記錄、表。記錄,可以看作是一組標(biāo)量的組合結(jié)構(gòu),它的聲明方式如下:TYPE record_type_ name IS RECORD(filed1 type1 NOT NULL : =

10、expr1filedn typen NOT NULL : =exprn)其中,record_type_name 是記錄類型的名字。(是不是看著象 CREATE TABLE )引用時(shí)必須定義相關(guān)的變量,記錄只是 TYPE 不是 VARIABLE表,不是物理存儲(chǔ)數(shù)據(jù)的表,在這里是一種變量類型,也稱為PL/SQL 表,它類似于 C 語言中的數(shù)組,在處理方式上也相似。它的聲明方式如下:TYPE table_type_ name IS TABLE OF scalar_type INDEX BY BINARY_INTENER其中,table_type_name 是類型的名字,scalar_type 是一種

11、標(biāo)量類型的類型聲明。 引用時(shí)也必須定義相關(guān)的變量。 表和數(shù)組不同,表有兩列, KEY 和 VALUE KEY 就是定義時(shí)聲明的 BINARY_INTENER VALUE 就是定義時(shí)聲明的 scalar_type。除了記錄和表之外,還有對(duì)象類型、集合(嵌套表和VARRAYS 等類型,這些將專門講解。四、弓|用(REFERENCREFERENCE在 PL/SQL8.0 之前,只有一種類型-REF CURSOR也就是游標(biāo)。它的定義較為簡單,CURSOR curs or_n ame IS select .from.;在 PL/SQL8.0 之后,引入了 REF 類型,它指向一個(gè)對(duì)象。這種類型將單獨(dú)講解

12、。(等我弄明白再說,免得在高人面前.)五、LOBLOB 型LOB 變量主要是用來存儲(chǔ)大量數(shù)據(jù)的數(shù)據(jù)庫字段,最大可以存儲(chǔ)4G 字節(jié)的內(nèi)容(這么大,存VCD?,浪費(fèi)!)。主要有:CLOB 和 ORACLE 沖的 LONG 類型相似,存儲(chǔ)單字節(jié)字符數(shù)據(jù)。(別用來存中文喔。)NCLOB 用來存儲(chǔ)定寬多字節(jié)字符數(shù)據(jù)。(例如:存嘯傲江湖就挺好)BLOB 和 LONG RAW 相似,用來存儲(chǔ)無結(jié)構(gòu)的二進(jìn)制數(shù)據(jù)。BFILE 它用來允許 ORACLE 對(duì)數(shù)據(jù)庫外存儲(chǔ)的大型二進(jìn)制文本進(jìn)行只讀形式的訪問。六、其他其實(shí)在完成對(duì)標(biāo)量變量的理解之后,基本上可以應(yīng)付 C/S 模式下的常規(guī)數(shù)據(jù)庫應(yīng)用所需了,后續(xù)的類型說實(shí)話,

13、我玩了 5 年 ORACLE 都很少用到。附:參考書ORACLE8 PL/SQ 程序設(shè)計(jì)(ORACLE8 PL/SQL PROGRAMMING ORACLE 技術(shù)系列叢書 機(jī)械工 業(yè)出版社注:本文所列舉的是PL/SQL 當(dāng)中可以定義的數(shù)據(jù)類型,并不是所有的類型都可以在建表時(shí)指定為列的數(shù)據(jù)類型SqIServei 數(shù)據(jù)類型數(shù)據(jù)類型說明bigint整數(shù)數(shù)據(jù),從-2A63 ( -9,223,372,036,854,775,808)至 U 2A63 T (9,223,372,036,854,775,807)。存儲(chǔ)大小為 8 字節(jié)。nteger整數(shù)數(shù)據(jù),從-2A31 (-2,147,483,648)至 U

14、 2人31T(2,147,483,647)。存儲(chǔ)大小為 4 字節(jié)。smallint整數(shù)數(shù)據(jù),從-32,768 到 32,767。存儲(chǔ)大小為 2 字節(jié)。tinyint整數(shù)數(shù)據(jù),從 0 到 255。存儲(chǔ)大小為 1 字節(jié)。bit整數(shù)數(shù)據(jù),值為 1 或 0。存儲(chǔ)大小為 1 位。numeric (p, s)固定精度和小數(shù)的數(shù)字?jǐn)?shù)據(jù),取值范圍從T0A38+1到 10A38 -1 op變量指定精度,取值范圍從 1 到38。s變量指定小數(shù)位數(shù),取值范圍從0 到p。存儲(chǔ)大小為 19 字節(jié)。money貨幣數(shù)據(jù)值,從(-2A63/10000) (-922,337,203,685,477.5808)至 U 2人63

15、T(922,337,203,685,477.5807),準(zhǔn)確度為貨幣單位的萬分之一。存儲(chǔ)大小為8 字節(jié)。float浮點(diǎn)數(shù)數(shù)據(jù),從 -.79E +308至 U 1.79E+308存儲(chǔ)大小為 8 字節(jié)。real浮點(diǎn)精度數(shù)字?jǐn)?shù)據(jù),從-3.40E+38 至 U 3.40E+38。存儲(chǔ)大小為 4 字節(jié)。datetime日期和時(shí)間數(shù)據(jù),從 1753 年 1 月 1 日到 9999 年 12 月 31 日,準(zhǔn)確度為三百分之一秒或3.33 毫秒。值被圓整到.000、.003 或.007 毫秒增量。存儲(chǔ)為兩個(gè) 4 字節(jié)整數(shù)。前 4 個(gè)字節(jié)存儲(chǔ)早于或晚于基日期1900 年 1 月 1 日的天數(shù)。基日期是系 統(tǒng)的參

16、照日期。不允許 datetime 的值早于 1753 年 1 月 1 日。后 4 個(gè)字節(jié)存儲(chǔ)一天之中的具體時(shí) 間,被表示為從午夜算起的毫秒數(shù)。秒數(shù)的有效范圍是0 七 9。national character(n)Synonym:nchar(n)固定長度的 Unicode 數(shù)據(jù),最大長度為 4000 個(gè)字符。默認(rèn)長度 =1。存儲(chǔ)大小(以字節(jié)計(jì))是輸入 的字符數(shù)的兩倍。national charactervarying(n)Synonym:nvarchar(n)可變長度的 Unicode 數(shù)據(jù),長度值范圍為從 1 到 4000 個(gè)字符。默認(rèn)長度=1。存儲(chǔ)大小(以字節(jié)計(jì)) 是輸入的字符數(shù)的兩倍。nt

17、ext可變長度的 Unicode 數(shù)據(jù),最大長度為(2A30 2)/2 (536,870,911)個(gè)字符。存儲(chǔ)大小(以字節(jié)計(jì))是輸入的字符數(shù)的兩倍。孑注意:字符串函數(shù)中不再支持ntext。binary(n)固定長度的二進(jìn)制數(shù)據(jù),最大長度為8000 字節(jié)。默認(rèn)長度 =1 o存儲(chǔ)大小是固定的,是在類型中聲明的以字節(jié)為單位的長度。varbinary(n)可變長度的二進(jìn)制數(shù)據(jù),最大長度為8000 字節(jié)。默認(rèn)長度 =1 o存儲(chǔ)大小可變。它表示值的長度(以字節(jié)為單位)。image可變長度的二進(jìn)制數(shù)據(jù),最大長度為2A30 -1 (1,073,741,823)字節(jié)。存儲(chǔ)大小是值的以字節(jié)為單位的長度。uniqu

18、eidentifier全局唯一標(biāo)識(shí)符(GUID)。存儲(chǔ)大小為 16 字節(jié)。IDENTITY (s, i)這是數(shù)據(jù)列的一個(gè)屬性,而不是一個(gè)獨(dú)特的數(shù)據(jù)類型。只有整數(shù)數(shù)據(jù)類型的數(shù)據(jù)列可用于標(biāo)識(shí)列。一個(gè)表只能有一個(gè)標(biāo)識(shí)列??梢灾付ǚN子和增量,但不能更新 列。s (seed)= 起始值i(increment)=增量值這是數(shù)據(jù)列的一個(gè)屬性,而不是一個(gè)獨(dú)特的數(shù)據(jù)類型。它是一個(gè)表中使用 義的列。一個(gè)表只能有一個(gè) ROWGUIDCOL 列表 SQL 到 Java 數(shù)據(jù)類型影射表SQL 數(shù)據(jù)類型JAVA 數(shù)據(jù)類型CHARStringVARCHARStringLONGVARCHARStringNUMERICjava

19、.math.BigDecimalDECIMALjava.math.BigDecimalBITBooleanTINYINTByteSMAL LINTShortINTEGERIntBIGINTLongREALFloatFLOATDoubleDOUBLEDoubleBINARYbyteVARBINARYbyteLONGVARBINARYbyteDATEjava.sql.DateTIMEjava.sql.TimeTIMESTAMPjava.sql.TimestampJava 到 SQL 數(shù)據(jù)類型影射表JAVA 數(shù)據(jù)類型SQL 數(shù)據(jù)類型StringVARCHAR or LONGVARCHARjava.m

20、ath.BigDecimalNUMERICBooleanBITTINYINTROWGUIDCOLuniqueidentifier數(shù)據(jù)類型定ByteShortSMALLINTINTEGERBIGINTREALDOUBLEVARBINARY or LONGVARBINARYDATETIMETIMESTAMP這里,大伙要注意了,并不是所有的數(shù)據(jù)類型在各種數(shù)據(jù)庫管理系統(tǒng)中都被支持。下面,就幾種常用的數(shù)據(jù)類型之間的轉(zhuǎn)化進(jìn)行說明:(1)CHAR, VARCHAR,和 LONGVARCHAR在 SQL 語言中,有三種分別表示不同長度的字符類型CHAR, VARCHAR,和 LONGVARCHAR,在 Jav

21、a/Jsp 中并沒有相應(yīng)的三種不同的數(shù)據(jù)類型與之一一對(duì)應(yīng),JDBC 的處理方法是將其與 String 或者 char對(duì)應(yīng)起來。在實(shí)際編程中不必對(duì)著三種SQL 數(shù)據(jù)類型進(jìn)行區(qū)分,全部將他們轉(zhuǎn)化為Sting 或者 char就可以了。而且通常使用應(yīng)用的非常普遍的String 類型。我們還可以利用 String 類提供的方法將一個(gè) String 對(duì)象轉(zhuǎn)化為 char,或者用 char為參數(shù)構(gòu)造一個(gè) Stirng 對(duì)象。對(duì)于定長度的 SQL 數(shù)據(jù)類型 CHAR(n),當(dāng)從數(shù)據(jù)庫管理系統(tǒng)中獲得的結(jié)果集提取該類型的數(shù)據(jù)時(shí),JDBC 會(huì)為其構(gòu)造一個(gè)長度為 n 的 String 對(duì)象來代表他,如果實(shí)際的字符個(gè)數(shù)

22、不足n,系統(tǒng)會(huì)自動(dòng)為 String 對(duì)象補(bǔ)上空格。當(dāng)向數(shù)據(jù)庫管理系統(tǒng)寫入的數(shù)據(jù)類型應(yīng)該是 CHAR(n)時(shí),JDBC 也會(huì)將該 String 對(duì)象的末尾補(bǔ)上相應(yīng)數(shù)量的空格。一般情況下,CHAR, VARCHAR, LONGVARCHAR 和 String 之間可以無差錯(cuò)的進(jìn)行轉(zhuǎn)換。但非常值得注意的是LONGVARCHAR ,這種 SQL 的數(shù)據(jù)類型有時(shí)在數(shù)據(jù)庫中代表的數(shù)據(jù)可能有幾兆字節(jié)的大小,超過了String 對(duì)象的承受范圍。JDBC 解決的辦法是用 Java 的 Input Stream 來接受這種類型的數(shù)據(jù)以后我們回涉及到。Input Stream 不僅支持 ASCII,而且支持 Uni

23、code,我們可以根據(jù)需要 進(jìn)行選擇。(2)DECIMAL 和 NUMERICSQL 的 DECIMAL 和 NUMERIC 通常用來表示需要一定精度的定點(diǎn)數(shù)。在Java 的簡單數(shù)據(jù)類型中,沒有一種類型與之相對(duì)應(yīng)。但從JDK1.1 開始,Sun 公司在 java.math.*包中加入了一個(gè)新的類 BigDecimal,該類的對(duì)象可以與 DECIMAL、NUMERICS 行轉(zhuǎn)換。另外,當(dāng)從數(shù)據(jù)庫管理系統(tǒng)中讀取數(shù)據(jù)時(shí),還可以用getString()方法來獲取 DECIMAL 和 NUMERIC(3)BINARY, VARBINARY,和 LONGVARBINARY在編程時(shí)無須精確區(qū)分這三種SQL 數(shù)據(jù)類型,JDBC 將他們統(tǒng)一影射為 byte。其中 LONGVARBINAF 和 LONGVARCHAR 以,可以代表幾兆字節(jié)的數(shù)據(jù),超出數(shù)組的承

溫馨提示

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

評(píng)論

0/150

提交評(píng)論