




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MySql Oracle SqlServer三大數據庫的數據類型列表MySql 數據類型數據類型描述字節推薦使用SMALLINT整數,從 -32000 到+32000 范圍2存儲相對比較小的整數。 比如 : 年紀,數量INT整 數 , 從 -2000000000 到 +2000000000 范圍4存儲中等整數 例如 : 距離BIGINT不 能 用 SMALLINT 或 INT 描述的超大整數。8存儲超大的整數 例如 : 科學 /數學數據FLOAT單精度浮點型數據4存儲小數數據例如 : 測量,溫度DOUBLE雙精度浮點型數據8需要雙精度存儲的小數數據例如: 科學數據DECIMAL用戶自定義精度的
2、浮點型數據變量 ; 取決于精 度與長度以特別高的精度存儲小數數據。例如 : 貨幣數 額,科學數據CHAR固定長度的字符串特定字符串長度 ( 高達 255 字符 )存儲通常包含預定義字符串的變量 例如 : 定期航線,國家或郵編VARCHAR具有最大限制的可變長度的字符串變量 ; 1 + 實際 字符串長度 ( 高 達 255 字符 )存儲不同長度的字符串值 ( 高達一個特定的最 大限度 ). 例如 : 名字,密碼,短文標簽TEXT沒有最大長度限制的可變長度的字符串Variable; 2 + 聽 actual string length存儲大型文本數據 例如 : 新聞故事,產品描述BLOB二進制字符
3、串變量; 2 + 實際 字符串長度存儲二進制數據例如 : 圖片,附件,二進制文檔DATE以 yyyy-mm-dd 格式的 日期3存儲日期 例如 : 生日,產品滿期TIME以 hh:mm:ss 格式的時間3存儲時間或時間間隔例如 : 報警聲, 兩時間之間的間隔,任務開始 / 結束時間DATETIMEyyyy-mm-ddhh:mm:ss 格式結合日期和時間8存儲包含日期和時間的數據 例如 : 提醒的人,事件TIMESTAMPyyyy-mm-ddhh:mm:ss 格式結合日期和時間4記錄即時時間例如:事件提醒器, “最后進入 ”的時間標記YEAR以 yyyy 格式的年份1存儲年份 例如 : 畢業年,
4、出生年ENUM一組數據, 用戶可從中選擇 其中一個1 或 2 個字節存儲字符屬性,只能從中選擇之一例如 : 布爾量選擇,如性別SET一組數據, 用戶可從中選擇 其中 0 ,1 或更多。從 1 到 8 字節; 取決于設置的大 小存儲字符屬性,可從中選擇多個字符的聯合。例如 : 多選項選擇,比如業余愛好和興趣。Oracle 數據類型、概述在 ORACLE8中定義了:標量( SCALAR)、復合( COMPOSITE)、引用( REFERENC)E 和 LOB 四種數據類型,下面 詳細介紹它們的特性。二、標量( SCALAR) 合法的標量類型與數據庫的列所使用的類型相同,此外它還有一些擴展。它又分為
5、七個組:數字、字符、行、 日期、行標識、布爾和可信。數字 ,它有三種基本類型 -NUMBER、 PLS_INTEGER和 BINARY_INTENER。 NUMBER 可以描述整數或實數,而 PLS_INTEGER和 BINARY_INTENER只能描述整數。NUMBER,是以十進制格式進行 存儲的,它便于 存儲 ,但是在計算上,系統會自動的將它轉換成為二進制進行 運算的。它的定義方式是 NUMBER( P, S), P 是精度,最大 38 位,S 是刻度范圍,可在 -84.127 間取值。例如:NUMBER( 5,2)可以用來存儲表示 -999.99.999.99 間的數值。 P、S可以在定
6、義是省略, 例如:NUMBER( 5)、NUMBER 等;BINARY_INTENER用來描述不存儲在數據庫中, 但是需要用來計算的帶符號的整數值。 它以 2 的補碼二進制形式 表述。循環計數器經常使用這種類型。PLS_INTEGER和 BINARY_INTENER唯一區別是在計算當中發生溢出時,BINARY_INTENER型的變量會被自動指派給一個 NUMBER 型而不會出錯, PLS_INTEGER型的變量將會發生錯誤。字符,包括 CHAR、VARCHAR2( VARCHAR)、 LONG、NCHAR和 NVARCHAR2幾種類型。CHAR,描述定長的字符串,如果實際值不夠定義的長度,系統
7、將以空格填充。它的聲明方式如下CHAR( L),L為字符串長度,缺省為 1,作為變量最大 32767 個字符,作為數據存儲在 ORACLE8中最大為 2000。VARCHAR2(VARCHAR),描述變長字符串。它的聲明方式如下VARCHAR2(L),L 為字符串長度,沒有缺省值,作為變量最大 32767 個字節,作為數據存儲在 ORACLE8中最大為 4000。在多字節語言環境中,實際存儲的字符個 數可能小于 L值,例如:當語言環境為中文( SIMPLIFIED CHINESE_CHINA.ZHS16G)BK時,一個 VARCHAR2( 200)的 數據列可以保存 200 個英文字符或者 1
8、00 個漢字字符。LONG,在數據庫存儲中可以用來保存高達2G的數據,作為變量,可以表示一個最大長度為 32760 字節的可變字符串。NCHAR、NVARCHAR2,國家字符集,與環境變量 NLS指定的語言集密切相關,使用方法和CHAR、VARCHAR2相同。行,包括 RAW和 LONG RAW兩種類型。用來存儲二進制數據,不會在字符集間轉換。RAW,類似于 CHAR,聲明方式 RAW(L),L 為長度,以字節為單位,作為數據庫列最大2000,作為變量最大 32767 字節。LONG RAW,類似于 LONG,作為數據庫列最大存儲 2G字節的數據,作為變量最大 32760 字節。 日期,只有一
9、種類型 -DATE,用來存儲時間信息,站用 7個字節(從世紀到秒) ,絕對沒有 “千年蟲 ”問題。 行標識 ,只有一種類型 -ROWID,用來存儲 “行標識符 ”,可以利用 ROWIDTOCHAR函數來將行標識轉換成為字符。 布爾,只有一種類型 -BOOLEAN,僅僅可以表示 TRUE、 FALSE或者 NULL。可信,只有一種類型 -MLSLABEL,可以在 TRUSTED ORACL中E 用來保存可變長度的二進制標簽。在標準ORACLE中,只能存儲 NULL 值。三、復合( COMPOSITE) 標量類型是經過預定義的,利用這些類型可以衍生出一些復合類型。主要有記錄、表。 記錄,可以看作是
10、一組標量的組合結構,它的聲明方式如下:TYPE record_type_name IS RECORD( filed1 type1 NOT NULL : =expr1filedn typen NOT NULL : =exprn )其中, record_type_name 是記錄類型的名字。 (是不是看著象 CREATE TABL?E.)引用時必須定義相關的變量,記錄只是 TYPE,不是 VARIABLE。表,不是物理存儲數據的表,在這里是一種變量類型,也稱為 PL/SQL表,它類似于 C 語言中的數組,在處理 方式上也相似。它的聲明方式如下:TYPE table_type_name IS TAB
11、LE OF scalar_type INDEX BY BINARY_INTEN;ER其中,table_type_name 是類型的名字, scalar_type 是一種標量類型的類型聲明。 引用時也必須定義相關的變量。 表和數組不同,表有兩列, KEY 和 VALUE, KEY 就是定義時聲明的 BINARY_INTENE,R VALUE就是定義時聲明的 scalar_type 。除了記錄和表之外,還有對象類型、集合(嵌套表和VARRAYS)等類型,這些將專門講解。四、引用( REFERENC)E在 PL/SQL8.0之前,只有一種類型 -REF CURSO,R 也就是游標。它的定義較為簡單,
12、CURSOR cursor_name IS select .from.;在 PL/SQL8.0 之后,引入了 REF類型,它指向一個對象。這種類型將單獨講解。 (等我弄明白再說,免得在高人 面前 .)五、LOB 型LOB變量主要是用來存儲大量數據的數據庫字段,最大可以存儲4G 字節的內容(這么大,存 VCD?,浪費!)。主要有:CLOB:和 ORACLE7中的 LONG 類型相似,存儲單字節字符數據。 (別用來存中文喔。 。) NCLOB:用來存儲定寬多字節字符數據。 (例如:存嘯傲江湖就挺好)BLOB:和 LONG RAW相似,用來存儲無結構的二進制數據。BFILE:它用來允許 ORACLE
13、對數據庫外存儲的大型二進制文本進行只讀形式的訪問。六、其他其實在完成對標量變量的理解之后, 基本上可以應付 C/S 模式下的常規數據庫應用所需了, 后續的類型說實話, 我玩了 5 年 ORACLE,都很少用到。附:參考書 ORACLE8 PL/SQL程序設計( ORACLE8 PL/SQL PROGRAMMING) ORACLE技術系列叢書 機械工 業出版社注:本文所列舉的是 PL/SQL 當中可以定義的數據類型,并不是所有的類型都可以在建表時指定為列的數據類 型SqlServer數據類型數據類型說明bigint整數數據,從 263 ( 9,223,372,036,854,775,808)到
14、263 1 (9,223,372,036,854,775,807)。存儲大小為 8 字節。integer整數數據,從 231 (-2,147,483,648)到 231 1 (2,147,483,647) 。存儲大小為 4 字節。smallint整數數據,從 32,768 到 32,767 。存儲大小為 2 字節。tinyint整數數據,從 0 到 255 。存儲大小為 1 字節。bit整數數據,值為 1 或 0 。存儲大小為 1 位。numeric (p, s)固定精度和小數的數字數據, 取值范圍從 1038+1 到 1038 1 。p 變量指定精度, 取值范圍從 1 到 38 。s 變量指
15、定小數位數,取值范圍從 0 到 p。存儲大小為 19 字節。money貨幣數據值,從 (263/10000) ( 922,337,203,685,477.5808)到 263 1(922,337,203,685,477.5807) ,準確度為貨幣單位的萬分之一。存儲大小為 8 字節。float浮點數數據,從 1.79E +308 到 1.79E+308存儲大小為 8 字節。real浮點精度數字數據,從 3.40E+38 到 3.40E+38 。存儲大小為 4 字節。datetime日期和時間數據, 從 1753 年 1 月 1 日到 9999 年 12 月 31 日,準確度為三百分之一秒或 3
16、.33 毫 秒。值被圓整到 .000 、.003 或 .007 毫秒增量。存儲為兩個 4 字節整數。前 4 個字節存儲早于或晚于 基日期 1900 年 1 月 1 日的天數。基日期是系 統的參照日期。不允許 datetime 的值早于 1753 年 1 月 1 日。后 4 個字節存儲一天之中的具體時 間,被表示為從午夜算起的毫秒數。秒數的有效范圍是059 。national character(n)Synonym:nchar(n)固定長度的 Unicode 數據,最大長度為 4000 個字符。默認長度 = 1 。存儲大小(以字節計)是輸入 的字符數的兩倍。national character
17、varying(n)Synonym:nvarchar(n)可變長度的 Unicode 數據,長度值范圍為從 1 到 4000 個字符。默認長度 = 1 。存儲大小(以字節計) 是輸入的字符數的兩倍。可變長度的 Unicode 數據,最大長度為 (230 2)/2 (536,870,911)個字符。存儲大小(以字節計)是輸入的字符數的兩倍。ntext注意:字符串函數中不再支持 ntext 。binary(n)固定長度的二進制數據,最大長度為 8000 字節。默認長度 = 1 。存儲大小是固定的,是在類型中聲明的以字節為單位的長度。varbinary(n)可變長度的二進制數據,最大長度為 8000
18、 字節。默認長度 = 1 。存儲大小可變。它表示值的長度(以字節為單位)。image可變長度的二進制數據,最大長度為 230 1 (1,073,741,823)字節。存儲大小是值的以字節為單位的長度。uniqueidentifier全局唯一標識符 (GUID) 。存儲大小為 16 字節。IDENTITY (s, i)這是數據列的一個屬性,而不是一個獨特的數據類型。只有整數數據類型的數據列可用于標識列。一個表只能有一個標識列。可以指定種子和增量,但不能更新 列。s (seed) = 起始值i(increment) = 增量值ROWGUIDCOL這是數據列的一個屬性,而不是一個獨特的數據類型。它是
19、一個表中使用uniqueidentifier 數據類型定義的列。一個表只能有一個 ROWGUIDCOL 列表 SQL 到 Java 數據類型影射表SQL 數據類型JAVA 數據類型CHARVARCHARLONGVARCHARNUMERICDECIMALBITTINYINTSMALLINTINTEGERBIGINTREALFLOATDOUBLEBINARYVARBINARYLONGVARBINARYDATETIMETIMESTAMPStringStringStringjava.math.BigDecimaljava.math.BigDecimalBooleanByteShortIntLongFl
20、oatDoubleDoublebytebytebytejava.sql.Datejava.sql.Timejava.sql.TimestampJava 到 SQL 數據類型影射表JAVA 數據類型SQL 數據類型StringVARCHAR or LONGVARCHARjava.math.BigDecimalNUMERICBooleanBITByteTINYINTShortIntLongFloatDoublebytejava.sql.Datejava.sql.Timejava.sql.TimestampSMALLINTINTEGERBIGINTREALDOUBLEVARBINARY or LON
21、GVARBINARYDATETIMETIMESTAMP這里,大伙要注意了,并不是所有的數據類型在各種數據庫管理系統中都被支持。下面,就幾種常用的數據類型之間的轉化進行說明:( 1 )CHAR, VARCHAR,和 LONGVARCHAR在 SQL 語言中,有三種分別表示不同長度的字符類型 CHAR, VARCHAR, 和 LONGVARCHAR ,在 Java/Jsp 中并沒有相應的三種 不同的數據類型與之一一對應, JDBC 的處理方法是將其與 String 或者 char 對應起來。在實際編程中不必對著三種 SQL 數據類型進 行區分,全部將他們轉化為 Sting 或者 char 就可以了
22、。而且通常使用應用的非常普遍的 String 類型。我們還可以利用 String 類提供 的方法將一個 String 對象轉化為 char, 或者用 char 為參數構造一個 Stirng 對象。對于定長度的 SQL數據類型 CHAR(n),當從數據庫管理系統中獲得的結果集提取該類型的數據時,JDBC會為其構造一個長度為 n 的 String 對象來代表他,如果實際的字符個數不足 n, 系統會自動為 String 對象補上空格。當向數據庫管理系統寫入的數據類型應該 是 CHAR(n)時, JDBC也會將該 String 對象的末尾補上相應數量的空格。一般情況下, CHAR, VARCHAR,
23、LONGVARCHAR 和 String 之間可以無差錯的進行轉換。但非常值得注意的是 LONGVARCHAR , 這種 SQL 的數據類型有時在數據庫中代表的數據可能有幾兆字節的大小,超過了 String 對象的承受范圍。 JDBC 解決的辦法是用 Jav a的 Input Stream 來接受這種類型的數據 以后我們回涉及到 。Input Stream 不僅支持 ASCII, 而且支持 Unicode ,我們可以根據需要 進行選擇。( 2)DECIMAL 和 NUMERICSQL 的 DECIMAL 和 NUMERIC 通常用來表示需要一定精度的定點數。在 Java 的簡單數據類型中,沒有一種類型與之相對應。但從 JDK1.1 開始, Sun 公司在 java.math.* 包中加入了一個新的類 BigDecimal ,該類的對象可以與 DECIMAL 、 NUMERIC進行轉換。 另外,當從數據庫管理系統中讀取數據時,還可以用 getString() 方法來獲取 DECIMAL 和 NUMERIC。( 3 )BINARY, VARBINARY, 和 LONGVARBINARY在編程時無須精確區分這三種 SQL 數據類型, JDBC 將他們統一影射為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 論建設工程合同的法律問題
- 便利店加盟合同書樣本2025
- 深圳二手房買賣合同要點
- 人才合作合同
- 云南省迪慶2024-2025學年高三下學期第二次調研考試英語試題含解析
- 上海戲劇學院《藥物合成反應C》2023-2024學年第二學期期末試卷
- 江西省南昌市10所省重點2025年高三下學期暑假聯考物理試題含解析
- 濰坊理工學院《云南原生態民族音樂》2023-2024學年第一學期期末試卷
- 宿松縣2024-2025學年小學六年級第二學期小升初數學試卷含解析
- 二手房產合同轉讓協議書
- 防脫洗發水培訓課件
- 2025年河南省三門峽黃河明珠集團有限公司招聘筆試參考題庫含答案解析
- 北京市網球運動管理中心2024年下半年公開招聘工作人員筆試歷年典型考題及考點剖析附帶答案詳解
- 電視臺采編崗試題及答案
- 《羅萊生活公司基于平衡計分卡的業績評價應用案例》9700字【論文】
- 第19課 清朝君主專制的強化-2024-2025學年七年級歷史下冊互動課堂教學設計寶典
- 舟山西堠門大橋mmm課件
- 世界讀書日主題活動-書香潤童心閱讀伴成長課件
- DB11∕T791-2024文物建筑消防設施設置規范
- 重癥護理文書書寫規范
- 電機與電氣控制技術(第3版)(微課版)(AR版)授課計劃
評論
0/150
提交評論