請問,SQL可變長度 和 固定長度區別

2025-03-01 14:20:08 字數 3799 閱讀 2405

1樓:匿名使用者

我舉個例子你就明白了。假如char(5),那輸入"abc",你讀取這個欄位的時候,就是"abc ",後巖罩面會加兩個空格,長度為5假如varchar(5),那輸入"abc",你讀取這個欄位的時候,就是"abc",後面會加兩個空格,長度為3 這種char型別,程式設計的時候如果用list類控制項或者網頁的下拉選單,兩個欄位合遊晌並粗磨鬧,就比較方便了,例如abc |肉類a |菜類如果用varchar型別,就會變成:abc|肉類a|菜類。

2樓:匿名使用者

比如,存碼粗手儲字串「abc",對於char (10),表示你儲存的字元將佔10個位元組(包括7個空字元),而同遲嫌樣的varchar2 (10)則只佔用3個字凳慧節的長度,10只是最大值,當你儲存的字元小於10時,按實際長度儲存。

3樓:匿名使用者

固定長度 valchar( n ) n 是要設定乙個適當的粗孝譁數值才能巖行應用,否則的話就該用動態的如靜態陣列string s = new string[1];根據需要設定在適當的範圍,多了浪費資源,少了不慎巖夠用。動態陣列arraylist s = new arraylist();

4樓:匿名使用者

不用襲凳塌說那麼多啦 直接粗鎮: char輸掉了空間贏得了時間 varchar輸掉了時拍圓間贏得了空間 ..相信不用解釋那麼多的你會明白。

請問。sql中可變長度和固定長度的區別?

5樓:還想飛

char的長度是固定的。

varchar長度是可以變化的。

固定與可變是針對儲存介質(硬碟)來說的。

假如:char和varchar的預設長度都設為10,兩個欄位都分別寫入「abc」

char 損耗了硬碟10位元組 = 「abc」長度 + 7個空字元。

varchar損耗了硬碟 3位元組 = 「abc」長度設定預設值n(假如是 10 ) 則該欄位內能寫入的字串長度最大隻能為 10參考。

6樓:網友

反了,char固定,不足用空補, varchar是可變。

declare @a char(6)

set @a='ffff'

select len(@a + 'dd')set @a=@a + 'dd'

select @a

把char改成varchar再看看。

自己體會。

sql固定資料型別和可變資料型別有什麼區別

7樓:匿名使用者

比如說 char(8) 和 varchar(8) 吧我有兩個名字 : 兔兔 和 平淡兔兔 分別用 char 和varchar 來存, 存有 兔帆啟兔 的char 型,它佔據了 8個字長的空昌轎扮間,但是耐灶我的value只有4個字長。 varchar 儲存的 兔兔,僅僅只佔用了4個字長。

sql 資料庫 資料型別 固定長度的字串怎麼定義

8樓:網友

在建立這個學號的欄位時,增加約束就行啊。

舉例:create table 表名(學號列 number(5) check (length(學號列)=5));

insert into 表名(學號列)

values(222);

失敗insert into 表名(學號列)values(12345);

成功學號列。

sql server中定長char(n)和變長varchar(n)有什麼區別,誰能告訴我啊?

9樓:網友

varchar 對每個英文(ascii)字元都佔用2個位元組,對乙個漢字也只佔用兩個位元組。

char 對英文(ascii)字元佔用1個位元組,對乙個漢字佔用2個位元組。

varchar 的型別不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"

而char 不一樣,比如char(100),它的值是"qian",而實際上它在資料庫中是"qian "(qian後共有96個空格,就是把它填滿為100個位元組)。

由於char是以固定長度的,所以它的速度會比varchar快得多!但程式處理起來要麻煩一點,要用trim之類的函式把兩邊的空格去掉!

上面的理論是從網上copy來的]

至於用法如下:

在一些長度變化不是很大的欄位應該用char型別,而對長度變化很大的欄位應該用varchar型別了。

10樓:網友

char和varchar區別在於字元的長短char是10個長度varchar是50個長度。

11樓:陽光上的橋

char(n)是定長格式,格式為char(n)的欄位固定佔用n個字元寬度,如果實際存放的資料長度超過n將被擷取多出部分,如果長度小於n就用空字元填充。

一般地說,只要乙個表有乙個欄位定義為varchar(n)型別,那麼其餘用char(n)定義的欄位實際上也是varchar(n)型別。

如果你的長度本身不長,比如就3~10個字元,那麼使用char(n)格式效率比較高,搜尋速度快。但是如果有的資料很長,有的資料有比較短,比如註冊使用者的簡介這樣的欄位,實在沒有辦法,而且很在乎浪費的空間,那麼就用varchar(n)格式。

定長記錄和變長記錄各有什麼特點?在sql server中,資料記錄的儲存有什麼特點

12樓:射手幽靈伊

1全部定長的,就是不管儲存多少內容,長度都是這麼長,以空格填充。比如定義char(40),如果你的內容只有「123」,那麼,實際儲存就是「123 (37個空格) 」

變長的,就是內容多少,就儲存多長。

一般來說,定長的效率會好一些。變長的需要處理一下。但這個效率應該不會影響到應用。

sql server中建立表時各個資料型別時什麼意思??

13樓:加百列

sql server 資料型別分類及含義如下:

1、character 字串:

2、unicode 字串:

3、binary 型別:

4、number 型別:

4、date 型別:

5、其他資料型別:

sql,,varchar(50)和char(50)有什麼區別?分別可以容納多少個漢字和英文字母?

14樓:捐你妹

首先,可以容納的漢字數和英文字母數是一致的。

區別在於,varchar是可變的,char是不可變的。

比如你要存'123456789',我們知道要9個字元的長度。那麼對於varchar來說,在資料表中就是佔用了9個字元的長度,儲存到硬碟,也是這個長度。但是對於char來說,就不是了,它依然使用了50個字元,儲存到硬碟也是。

所以,在欄位長度經常變化,並且最大長度僅在少數情況下出現時,應當使用varchar。僅在長度一定是一致的,或大部分情況下是最大長度,偶爾是其他長度時,才使用char。

15樓:春天在這裡開花

此處例子---sql server

對於字元型別的有:

char:固定長度,儲存ansi字元,不足的補英文半形空格。

nchar:固定長度,儲存unicode字元,不足的補英文半形空格varchar:可變長度,儲存ansi字元,根據資料長度自動變化。

nvarchar:可變長度,儲存unicode字元,根據資料長度自動變化。

也就是說:varchar 可變長度,varchar(50)即長度為:50個字元當有存入值時,就跟據實際的值的大小(長度)存入資料。

請問各位高手SQL中怎樣輸出整行的資訊,而不需要寫上所以欄位名稱

怎樣用sql語句修改已有表的欄位名稱,但是不修改或刪除欄位的內容?sqlite版本的的alter table命令允許使用者重新命名或新增新的欄位到已有表中,不能從表中刪除欄位。樓主sqlite不允許修改可刪除欄位。只能修改表名和新增欄位。你可以新建一張表把現有表的資料插入進去,然後刪除現有表,重新命名新建...

SQL語句問題,SQL語句問題

兩種寫法 select b.b id a.id as a id a.o money a.n money as abc from a,b where b.a id a.id select b.b id a.id as a id a.o money a.n money as abc from b lef...

sql語句sql語句怎樣新增使用者

sql語句沒有新增使用者一說,但可以建立使用者。以oracle為例,建立使用者的語法為 create user 使用者名稱 identified by 密碼 說明 使用者名稱應為英文字母 不區分大小寫 密碼則應為數字或字母 區分大小寫 或英文字元或它們的組合。在建立後需要給使用者賦予一些許可權,才可...