『壹』 定長記錄和變長記錄各有什麼特點在sql server中,數據記錄的存儲有什麼特點
定長的,就是不管存儲多少內容,長度都是這么長,以空格填充。比如定義char(40),如果你的內容只有「123」,那麼,實際存儲就是「123 (37個空格) 」
變長的,就是內容多少,就存儲多長。
一般來說,定長的效率會好一些。變長的需要處理一下。但這個效率應該不會影響到應用。
『貳』 sql語句修改欄位長度
SQL Server修改表的欄位長度的語法規則及示例如下:
SQL格式:ALTER TABLE table_name(表名) ALTER Column column_name(列名) type_name(數據類型) null(是否允許NULL)
--將UserList表的Name欄位長度修改為varchar(100)
(100)notnull;
SQL Server 2008的教程示例如下圖:
『叄』 SQL語句問題
定長欄位的優勢在於每個欄位都是固定長度的,那麼查找速度就快多了。
而不定長的優勢顯然就是在於存儲空間的有效利用了。
所以什麼時候使用定長,什麼時候使用不定長,關鍵是看要存儲的數據:
比如有個欄位是存儲身份證號碼的,而且是必填欄位,且後期會大量使用該欄位進行查詢,那麼用定長顯然比不定長更加具有優勢;
而再比如,還有個欄位是存儲家庭住址的,因為每個人的住址長度都不一致,而且我們不知道多大的長度最合適,所以可以設置這個欄位為不定長,並且把最大長度設置稍微大些,比如500位元組到1000位元組,這樣即使很長的地址也可以保存,而很短的地址,也並不會像存儲在定長欄位裡面那樣浪費存儲空間。
『肆』 SQL小疑問 既然變長字元串比定長的呀節省空間,那麼為何不都用變長的呢
1、保持向下的兼容性
2、也是有時需要的
『伍』 sql語句如何修改欄位長度
代碼示例:
alter table T1 alter column F1 varchar(10)
一般地,改欄位名可以用這條語句:
復制代碼代碼示例:
alter table A rename column a to c
實際應用中,往往是用J-SQL進行編譯,而J-SQL不支持修改欄位名。
因此,如果一定要修改欄位名,那麼只有通過變通的方法了。思路:
1.新建一個欄位,取名為c;
2.將欄位a的內容拷貝到c;
3.刪除欄位a;sql修改欄位長度的語法:
alter table 表名 modify 欄位名 欄位類型;sql修改欄位長度:
復制代碼代碼示例:
alter table qtline modify qtl_bidernote VARCHAR2(4000);
標准SQL,對任何資料庫都適用
復制代碼代碼示例:
alter table fzrtmis.reporttemplate modify REPNAME varchar(100);
修改欄位名名稱:
復制代碼代碼示例:
ALTER TABLE TABLENAME RENAME COLUMN COL1 TO COL2;
添加欄位:
復制代碼代碼示例:
alter table fzrtmis.itiembuildqk add STATIONSTATE CHAR(1)
『陸』 SQL資料庫存入的數據怎麼變長了
char為定長字元串,不足用空格補,你可以換成varchar,
『柒』 SQL Server中定長char(n)和變長varchar(n)有什麼區別,誰能告訴我啊
VARCHAR 對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也只佔用兩個位元組
CHAR 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組
VARCHAR 的類型不以空格填滿,比如VARCHAR(100),但它的值只是"QIAN",則它的值就是"QIAN"
而CHAR 不一樣,比如CHAR(100),它的值是"QIAN",而實際上它在資料庫中是"QIAN "(QIAN後共有96個空格,
就是把它填滿為100個位元組)。
由於CHAR是以固定長度的,所以它的速度會比VARCHAR快得多!但程序處理起來要麻煩一點,要用TRIM之類的函數把兩邊的空格去掉!
[上面的理論是從網上來的]
至於用法如下:
在一些長度變化不是很大的欄位應該用char類型,而對長度變化很大的欄位應該用varchar類型了。
『捌』 sql中數據長度問題,我選的類型是char(10) 存入的數據是"123" 但是讀取的時候是"123 "請問如何修改
一個是程序語言中的trim()方法可以去掉空白,一個是資料庫中的rtrim(col)可以去掉空白
char類型一般是定長數據,如果變長的話不足位用空白補,所以如果變長應該用varchar類型
『玖』 sql資料庫問題 !!高手請進!
把name的數據類型由char(20)改成varchar(20)
Varchar與char的區別 :
Varchar 對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也只佔用兩個位元組
char 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組
Varchar 的類型不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"而char 不一樣,比如char(100),它的值是"qian",而實際上它在資料庫中是"qian "(qian後共有96個空格,就是把它填滿為100個位元組)。
由於char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉!