是否用備注類型取決於存儲的數據。一般備注類型屬於文本,但access中有文本類型。
1、使用「文本」數據類型存儲如名稱、地址和任何不需計算的數字,如電話號碼、部件編號或者郵政編碼。「文本」欄位能存儲最多 255 個字元,但默認欄位大小是 50 個字元。「欄位大小」屬性控制可以輸入「文本」欄位的最大字元個數。
2、如果需要存儲超過 255 個字元,應使用「備注」數據類型。「備注」最多可以存儲 65,536 個字元。如果要存儲帶格式文本或長文檔,可以創建 OLE 對象欄位代替「備注」欄位。
3、「文本」和「備注」數據類型存儲輸入到一個欄位中的值;不存儲欄位中沒用的部分的空白字元。
4、可以對「文本」或者「備注」欄位進行分組和排序,但 Access 只使用「備注」欄位的前 255 個字元進行分組和排序。
㈡ mssql或mysql資料庫中怎麼存儲大段文字呢(1000個中文字元以上)
朋友,據我所知varchar欄位類型已經夠用了,char類型其長度是固定的,在創建表時就指定了,
但是varchar類型的長度是可變的,在建表的時候就制定了最大長度,其最大值可以取:0~65535之間的任意值(長度可以再0到最大值之間) 而且在這個最大范圍內,使用多少則分配多大的空間,例如varchar(100),並不是每條記錄都要佔用100個位元組哦!! 最後強調:varchar類型實際佔用的空間為字元串的實際長度加1 如varchar(10):欄位 『123』,他占的內存位元組是4(3+1),而char(10)則佔用了10個位元組。 全手工,希望朋友採納
對於大篇幅的文本欄位,一般推薦用text和blob數據類型定義欄位, 有時候不必在於一點空間的消耗,只要我們在資料庫優化做好就夠了
㈢ 如何將帶有格式的文本保存到資料庫中
有三個方法:
1.在上傳襖資料庫是時候,寫一段格式代碼
%
Function Deal(exp1)
dim exp2
exp2=Replace(exp2,Chr(13),"br
㈣ 如何在mysql資料庫中存文本格式
設置數據類型為VARCHAR,欄位長度大一點,就可以存文本 ,數據量太多會影響MYSQL速度,不過你也可以使用TEXT類型,存放大量數據
㈤ SQL SERVER資料庫什麼數據類型能存儲大容量的文字
2000之前版本
ntext,用於 Unicode 字元,最大長度1G個字元,最大存儲空間2GB
text,用於非 Unicode 字元,最大長度2G個字元,最大存儲空間2GB
2005之後版本應該用nvarchar(max),varchar(max)代替ntext和text,另外可以用更高效的xml類型。它們的最大存儲空間都是2GB
在 Microsoft SQL Server 的未來版本中將刪除 ntext、text 和 image 數據類型
㈥ java如何讓資料庫保存帶格式的文本
資料庫存儲欄位類型為text,java保存過程中不要對內容進行轉碼就可以了
㈦ mysql里存大量文本的數據類型是text嗎請詳細說明一下
text是MySQL里用於存放大量文本的一種數據類型,最多可以存放65535個字元。
除此之外MySQL中用於存放大量文本的數據類型還有:
varchar:最多可以存放65535個字元。
mediumtext:可變長度,最多2的24次方-1個字元。
longtext:可變長度,最多2的32次方-1個字元。
(7)資料庫存儲有格式的大文本擴展閱讀:
mysql其他數據類型
主要包括以下五大類:
整數類型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
浮點數類型:FLOAT、DOUBLE、DECIMAL
字元串類型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
日期類型:Date、DateTime、TimeStamp、Time、Year
其他數據類型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection。
㈧ 分析大文本與圖像數據在資料庫內部的存儲原理。
圖像數據在資料庫內部的存儲原理:
XML 是文本型的數據交換結構,對於字元類型的文本交換非常的方便,實際工作中我們往往需要通過 XML 將二進制格式的圖形圖像信息數據進行數據交換。本文從介紹 BASE64 編碼的原理入手,通過採用 C 語言編寫 DB2 的嵌入存儲過程,實現了在資料庫內存中將文本格式的圖片文件到二進制 BLOB 欄位之間的轉換,並且就性能優化等提出若干建議,該設計思路和程序可以廣泛的應用到圖像圖形數據在 XML 的存儲和轉換。
--------------------------------------------------------------------------------
回頁首
XML 存儲圖形圖像的基本原理
XML 作為一種非常廣泛的數據交換的載體被廣泛的應用到了各行各業的數據交換中。對於圖形圖像數據的轉換,需要採用 Base64 編碼將二進制格式的圖形圖像信息轉換成文本格式再進行傳輸。
Base64 編碼轉換的思想是通過 64 個 ASCII 字元碼對二進制數據進行重新編碼組合,即將需要轉換的數據每三個位元組(24 位)為一組,再將這 24 位數據按每組 6 位進行重新劃分,在每組的最高 2 位填充 0 最終成一個完整的 8 位位元組。如果所要編碼的數據的位元組數不是 3 的整數倍,需要在最後一組數據填充 1 到 2 個位元組的 0 位元組。例如:我們對 ABC 進行 BASE64 的編碼,ABC 的編碼值:A(65), B(66), C(67)。再取二進制 A(01000001)B(01000010)C(01000011)連接起來構成 010000010100001001000011,然後按 6 位為單位分成 4 個數據塊並在最高位填充兩個 0 後形成 4 個位元組的編碼後的值(00010000)(00010100)(00001001)(00000011)。再將 4 個位元組的數據轉換成十進制數為(16)(20)(19)(3)。最後根據 BASE64 給出的 64 個基本字元表,查出對應的 ASCII 碼字元(Q)(U)(J)(D)。這里的值實際就是數據在字元表中的索引。
BASE64 字元表:
。
某項目的數據交換採用 XML 的為介質,XML 的結構包括個人基本信息:姓名、性別、相片等信息,其中相片信息是採用經過 BASE64 函數轉換後的文本型數據,圖像圖形信息通過 BASE64 進行數據轉換後,形成文本格式的數據類型,再將相應的數據存放到 XML 中,最終形成可供交換的文本型的 XML 數據結構。
XML 的數據結構如下所示:
<?xml version=」1.0」 encoding=」UTF-8」 ?>
<HeadInfo>
<TotalNum>10<TotalNum>
<TransDate>2007-10-18</TransDate>
</HeadInfo>
<Data>
<Name> 張三 </Name>
<Sex> 男 </Sex>
<Photo>/9j/4AAQSkZJRgABAQAAAQABAAD......</Photo>
<Data>
--------------------------------------------------------------------------------
回頁首
相片數據在 DB2 嵌入式 C 程序的實現方法
該項目要求能夠在 DB2 資料庫中將相片數據存儲為二進制 BLOB 格式。我們採用 DATASTAGE 進行 XML 數據載入,將 XML 中的姓名、性別等基本數據項載入到相應的欄位,其中文本型的相片數據則載入到 CLOB 欄位中,再按照 BASE64 的編碼規則進行逆向轉碼,整個數據流程如下圖所示:
圖 1. 相片存儲流程圖
用戶的相片每天的更新數據為 30 萬條,而且每個相片的平均大於 32KB,為了獲得最佳的資料庫性能,選擇採用 C 存儲過程的方式開發了 BASE64 的轉換函數。每次函數讀取存儲在 CLOB 欄位的文本格式數據全部存儲到內存中,並且通過 decode 函數在內存中進行轉碼,轉碼後再存入資料庫中。
程序的清單 1 是逐行讀取 CLOB 欄位,並且調用 decode 函數進行轉碼;程序的清單 2 是 decode 函數的關鍵性代碼。完整的程序見源代碼下載部分。
清單 1. 讀入 CLOB,寫入 BLOB 欄位
EXEC SQL BEGIN DECLARE SECTION;
SQL TYPE IS CLOB(100 K) clobResume; //CLOB 結構體變數
SQL TYPE IS BLOB(100 K) blobResume; //BLOB 結構體變數
sqlint16 bobind;
sqlint16 lobind;
sqlint16 cobind;
sqlint32 idValue;
EXEC SQL END DECLARE SECTION;
int clob2bin(void)
{
// 聲明 SQLCA 結構
struct sqlca sqlca;
int charNb;
int lineNb;
long n;
n=0;
// 定義資料庫游標
EXEC SQL DECLARE c1 CURSOR WITH HOLD FOR
SELECT czrkxp_a
FROM CZRK_blob for update;
EXEC SQL OPEN c1;
// 活動 CLOB 欄位的信息,已經 CLOB 欄位的大小
EXEC SQL FETCH c1 INTO :clobResume:cobind;
// 循環讀取 CLOB 欄位,並且調用 DECODE 轉碼函數
while (sqlca.sqlcode != 100)
{
if (cobind < 0)
{
printf(「 NULL LOB indicated.\n」);
}
else
{
n++;
decode(); // 文本格式到二進制流的轉碼函數
printf(「\nCurrent Row =%ld」,n);
// 數據寫入 BLOB 欄位
EXEC SQL update czrk_blob set czrkxp_blob = :blobResume
where current of c1; ;
// 提交事務
EXEC SQL COMMIT;
}
EXEC SQL FETCH c1 INTO :clobResume:cobind ;
}
// 關閉游標
EXEC SQL CLOSE c1;
EXEC SQL COMMIT;
return 0;
}
清單 2. 文本文件到二進制文件的轉換
void decode( void )
{
unsigned char in[4], out[3], v;
int I, len;
long j,k;
j = -1;
k=0;
// 將讀入 CLOB 結構體變數的數據進行轉換
while( j < clobResume.length){
for( len = 0, I = 0; I < 4 && ( j < clobResume.length ); i++ ) {
v = 0;
while((j < clobResume.length) && v == 0 ) {
j++;
v = (unsigned char) clobResume.data[j];
v = (unsigned char) ((v < 43 || v > 122) ? 0 : cd64[ v – 43 ]);
if( v ) {
v = (unsigned char) ((v == 『$』) ? 0 : v – 61);
}
}
if( j < clobResume.length ) {
len++;
if( v ) {
in[ I ] = (unsigned char) (v – 1);
}
}
else {
in[i] = 0;
}
}
if( len ) {
decodeblock( in, out );
// 寫入到 BLOB 結構體變數中
for( I = 0; I < len – 1; i++ ) {
blobResume.data[k] = out[i];
k++;
}
}
}
blobResume.length= k;
}
--------------------------------------------------------------------------------
回頁首
數據的轉換效率和優化建議
在 IBM P570 資料庫伺服器上運行,該程序的運行效率非常高,先後進行了幾個數量級的測試,最終平均測試的轉換效率為:每 1 萬筆數據記錄,轉換的效率 55 秒,即 182 條 / 秒。值得注意的是,整個轉換過程佔用 CPU 的量並不特別大,主要的性能瓶頸在磁碟陣列中。
以後可以進一步在以下方面進行調優,確保程序轉換的效率更高:
1)採用多進程調用的方式,以獲得更高的並發數量;
2)採用每 10 次或者 100 次提交事務的方式,減少訪問磁碟的次數;
3)將 CLOB 和 BLOB 分別放置在不同的表空間上,並且將表空間分布在在多個磁碟上,獲得最佳的磁碟訪問速度。
㈨ sqlserver中哪些數據類型可存儲大文本
大的文本都是用varchar(max)數據類型最多可以存儲2^30-1個位元組的數據。
Sql Server 還能自動限制每個數據類型的取值范圍,例如定義了一個類型為int的欄位,如果插入數據時插入的值的大小在smallint或者tinyint范圍之內, Sql Server 會自動將類型轉換為smallint 或者tinyint,這樣一來,在存儲數據時,佔用的存儲空間只有int的1/2或則1/4。
Sql Server資料庫管理系統中的數據類型可以分為兩類,分別是:系統默認的數據類型和用戶自定義的數據類型。
(9)資料庫存儲有格式的大文本擴展閱讀
Sql Server之數據類型詳解:
整數數據類型:整數數據類型是常用的數據類型之一,主要用於存儲數值,可以直接進行數據運算而不必使用函數轉換。
1、bigint
每個bigint存儲在8個位元組中,其中一個二進制位表示符號位,其它63個二進制位表示長度和大小,可以表示-2的63次方~2的63次方-1范圍內的所有整數。
2、int
int或者integer,每個int存儲在4個位元組中,其中一個二進制位表示符號位,其它31個二進制位表示長度和大小,,可以表示-2的31次方~2的31次方-1范圍內的所有整數。
3、smallint
每個smallint類型的數據佔用了兩個位元組的存儲空間,其中一個二進制位表示整數值的正負號,其它15個二進制位表示長度和大小,,可以表示-2的15次方~2的15次方-1范圍內的所有整數。
4、tinyint
每個tinyint類型的數據佔用了一個位元組的存儲空間,可以表示0~255范圍內的所有整數。
㈩ java往資料庫存儲大文件
你好。請問什麼資料庫。oracle如下
資料庫中提供了兩種欄位類型 Blob 和 Clob 用於存儲大型字元串或二進制數據(如圖片)。
Blob 採用單位元組存儲,適合保存二進制數據,如圖片文件。
Clob 採用多位元組存儲,適合保存大型文本數據。
首先創建一個空 Blob/Clob 欄位,再從這個空 Blob/Clob欄位獲取游標,例如下面的代碼:
PreparedStatement ps = conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " );
// 通過oralce.sql.BLOB/CLOB.empty_lob()構造空Blob/Clob對象
ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());
ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());
ps.excuteUpdate();
ps.close();
// 再次對讀出Blob/Clob句柄
ps = conn.prepareStatement( " select image,resume from PICTURE where id=? for update " );
ps.setInt( 1 , 100 );
ResultSet rs = ps.executeQuery();
rs.next();
oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 );
oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 );
// 將二進制數據寫入Blob
FileInputStream inStream = new FileInputStream( " c://image.jpg " );
OutputStream outStream = imgBlob.getBinaryOutputStream();
byte [] buf = new byte [ 10240 ];
int len;
while (len = inStream.read(buf) > 0 ) {
outStream.write(buf, 0 ,len);
}
inStream.close();
outStream.cloese();
// 將字元串寫入Clob
resClob.putString( 1 , " this is a clob " );
// 再將Blob/Clob欄位更新到資料庫
ps = conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " );
ps.setBlob( 1 ,imgBlob);
ps.setClob( 2 ,resClob);
ps.setInt( 3 , 100 );
ps.executeUpdate();
ps.close();