導航:首頁 > 數據處理 > 怎麼修改空間資料庫欄位長度

怎麼修改空間資料庫欄位長度

發布時間:2023-01-05 07:56:08

『壹』 access中數據類型可以修改字元長度

可以修改字元長度。
設置如下:
1.打開access資料庫
2.在表上點右鍵選擇 設計視圖 。
3.選中要設置的欄位。
4.在欄位大小輸入框中輸入欄位的長度,比如想限制為30個位元組,就輸入30。
Access讓你的工作提高速度和減少代碼量,並且能用整形數進行數學運算,用變數存放屬性,表格為預載的形式。

『貳』 資料庫中的一個欄位的數據大小不定如何設置欄位的長度查詢最快又節省空間

varchar是可變字元,varchar(2000)即可,不會浪費空間。
樓主為何要將歷史記錄存在access中呢?若您後台有sql server支持,建議您歷史記錄也存放在sql中,access的性能及對sql的語言支持都遠不如 MSSQL。

【VARCHAR限制了字元串的長度不能超過255個字元?】---哦,忘記了,這個可能access有此限制,sql可以的,最大varchar(8000)。
varchar(100)中的100並不多餘,在未存儲數據時用於佔位,系統會用於預先計劃分配空間,但直到真正存儲數據時才確實分配存儲空間。

個人看法:
1.佔用空間上varchar(100)和varchar(2000)沒什麼區別。
2.但varchar(100)會效率較低,因為按你說的該欄位會5-2000,若大於100,則您每次固定寫入100會需要多次寫操作,眾所周知寫操作是比較耗時的。
3.查詢性能方面,跟您這兒怎麼存沒太大關系,重要的還是常見的資料庫查詢優化,如索引、條件等等

對這個問題,我引用一下CSDN上的說法:

一。數據行結構
char(n): 系統分配n個位元組給此欄位,不管欄位實際長度(後邊用空格補齊)

varchar(n): 假設表中有M個varchar(或者nvarchar)類型的欄位
先分配兩個位元組(用來表示M)
再分配2*M個位元組(表示各變長行的偏移)
此後欄位值有多長,就分配多長

二。varchar(n)一定比char(n)節省空間么?
不一定。
我見過這樣的設計: varchar(3)
就算此欄位為空,也還是比char(3)多用一個位元組。

還有這樣的設計: user_ip varchar(16).
對於這種數據長度變化不大的欄位,用varchar只能浪費空間

結論: varchar適用於數據值長度不太短,且長度變化較大的欄位

三。char(n)一定比varchar(n)速度快么?
不一定
計算varchar的偏移是會花去一些cpu時間,但性能瓶頸不在此,在io.
db的io單位是數據頁(8192位元組)(一頁存有多個數據行,數據行不能跨頁。當然image,text等例外). 因此一頁中行越多,性能越好

另外,關於char和varchar的性能比較,

請參見該實驗:
http://www.yuanma.org/data/2006/0730/article_1266.htm

再補充一下:

[轉帖]char、nchar、varchar、nvarchar,對比那個好?

資料庫定義到char類型的欄位時,不知道大家是否會猶豫一下,到底選char、nchar、varchar、nvarchar、
text、ntext中哪一種呢?結果很可能是兩種,一種是節儉人士的選擇:最好是用定長的,感覺比變長能省些空
間,而且處理起來會快些,無法定長只好選用定長,並且將長度設置盡可能地小;另一種是則是覺得無所謂,
盡量用可變類型的,長度盡量放大些。

鑒於現在硬體像蘿卜一樣便宜的大好形勢,糾纏這樣的小問題實在是沒多大意義,不過如果不弄清它,
總覺得對不起勞累過度的CPU和硬碟。

下面開始了(以下說明只針對SqlServer有效):

1、當使用非unicode時慎用以下這種查詢:
select f from t where f = N'xx'

原因:無法利用到索引,因為資料庫會將f先轉換到unicode再和N'xx'比較

2、char 和相同長度的varchar處理速度差不多(後面還有說明)

3、varchar的長度不會影響處理速度!!!(看後面解釋)

4、索引中列總長度最多支持總為900位元組,所以長度大於900的varchar、char和大於450的nvarchar,nchar
將無法創建索引

5、text、ntext上是無法創建索引的

6、O/R Mapping中對應實體的屬性類型一般是以string居多,用char[]的非常少,所以如果按mapping的
合理性來說,可變長度的類型更加吻合

7、一般基礎資料表中的name在實際查詢中基本上全部是使用like '%xx%'這種方式,而這種方式是無法利用
索引的,所以如果對於此種欄位,索引建了也白建

8、其它一些像remark的欄位則是根本不需要查詢的,所以不需要索引

9、varchar的存放和string是一樣原理的,即length {block}這種方式,所以varchar的長度和它實際佔用
空間是無關的

10、對於固定長度的欄位,是需要額外空間來存放NULL標識的,所以如果一個char欄位中出現非常多的NULL,
那麼很不幸,你的佔用空間比沒有NULL的大(但這個大並不是大太多,因為NULL標識是用bit存放的,
可是如果你一行中只有你一個NULL需要標識,那麼你就白白浪費1byte空間了,罪過罪過!),這時候,
你可以使用特殊標識來存放,如:'NV'

11、同上,所以對於這種NULL查詢,索引是無法生效的,假如你使用了NULL標識替代的話,那麼恭喜你,
你可以利用到索引了

12、char和varchar的比較成本是一樣的,現在關鍵就看它們的索引查找的成本了,因為查找策略都一樣,
因此應該比較誰佔用空間小。在存放相同數量的字元情況下,如果數量小,那麼char佔用長度是小於varchar
的,但如果數量稍大,則varchar完全可能小於char,而且要看實際填充數值的充實度,比如說varchar(3)
和char(3),那麼理論上應該是char快了,但如果是char(10)和varchar(10),充實度只有30%的情況下,
理論上就應該是varchar快了。因為varchar需要額外空間存放塊長度,所以只要length(1-fillfactor)
大於這個存放空間(好像是2位元組),那麼它就會比相同長度的char快了。

13、nvarchar比varchar要慢上一些,而且對於非unicode字元它會佔用雙倍的空間,那麼這么一種類型
推出來是為什麼呢?對,就是為了國際化,對於unicode類型的數據,排序規則對它們是不起作用的,
而非unicode字元在處理不同語言的數據時,必須指定排序規則才能正常工作,所以n類型就這么一點好處。

總結陳詞:
1、如果數據量非常大,又能100%確定長度且保存只是ansi字元,那麼char
2、能確定長度又不一定是ansi字元或者,那麼用nchar;
3、不確定長度,要查詢且希望利用索引的話,用nvarchar類型吧,將它們設到400;
4、不查詢的話沒什麼好說的,用nvarchar(4000)
5、性格豪爽的可以只用3和4,偶爾用用1,畢竟這是一種額外說明,等於告訴別人說,我一定需要長度
為X位的數據

閱讀全文

與怎麼修改空間資料庫欄位長度相關的資料

熱點內容
房子按揭期間怎麼變更信息 瀏覽:807
如何寫社保方面的信息 瀏覽:108
普通工是什麼技術等級 瀏覽:464
大梅子祛斑膏如何代理 瀏覽:245
代售和代理有什麼不同 瀏覽:434
原生之罪四個程序員為什麼被殺 瀏覽:146
如何隱藏篩選的數據 瀏覽:200
石龍崗寵物市場在哪裡 瀏覽:198
松崗廚房凈水器代理商怎麼選 瀏覽:770
信息機房地面採用什麼裝修材料 瀏覽:97
有哪些玩家自由交易的手游 瀏覽:442
obd上的匯流排數據有哪些 瀏覽:103
如何解綁微信上的實名信息 瀏覽:896
30萬怎麼交易 瀏覽:803
沒入伙的房子怎麼交易 瀏覽:226
為什麼程序員連網不需要問密碼 瀏覽:531
許昌職業技術學院的小學教育怎麼樣 瀏覽:279
分析商業數據的軟體叫什麼 瀏覽:50
華為實體店的3a數據線多少錢 瀏覽:575
小米如何區分數據線是否是快充 瀏覽:439