1樓:帳號已登出
一樓的說法不太準確。
和varchar各有優缺點。char是定長,實際長度超過指定長度是,右邊被截去,不足時右邊補空格;varchar是變長,數字表示允許的最大長度,在儲存時用另外一個位元組來儲存實際的長度。
2.一般來說,char確實會導致一定的儲存空間浪費,但在進行資料操作的時候速度更快;varchar雖然能節省儲存空間,但很多操作多每次要去查詢欄位的實際長度,這會導致資料操作速度變慢。
和varchar各有用途。在已知欄位長度的情況下(比如學號欄位,一般每個學生的學號長度是固定一樣的),可以用char型別,既不會浪費空間,有不會拖慢速度。
如果欄位的長度是不確定,這是是用char還是varchar就需要考慮一下了。比如,中國人的名字一般是兩個/三個或者四個字,最多五個字,如果你的資料庫對自個欄位的操作特別多的話,你也可以考慮將個欄位設為char(5).因為現在寸寸裝置的**已經很便宜了,而使用者對系統的相應速度要求比較高,用空間換時間。
5.說到底,這還是一個空間與速度之間取哪個的問題,這要結合實際情況具體分析。
2樓:豁碩亂兩莓奈
不能,char()它是固定變數:也就是說你在char後面定的值是死的,你定的是多少就是多少位元組,而且特佔空間;
你可以用varchar()它是可變變數:也就是說你在varchar後面定的值是最大值的,當你在裡面輸入資訊所佔的多少位元組就是多少位元組,它可以隨著你佔用的位元組的大小自己更改(前提是在你所佔用的位元組,沒有超過你所設定的位元組,超過了是輸入不進去)。
sql資料型別和後字的數字是可以隨便亂設的嗎?會有什麼結果?
3樓:匿名使用者
不能亂寫,要根據需求來寫。
比如你要在某欄位存'xyz'這樣的字串,那麼如果你給了這個欄位的資料型別為數字,那麼這個就存不了。如果你給的是char(2)或者char(1)那麼也存不了,因為長度不足。結果就是不能儲存,報錯。
再比如,你在某欄位存的是錢數,可能是'',可是你的資料型別是整數型,那麼顯示出來就是123,因為這是錢數,讓你平白無故沒了,我想你不會高興吧。
再比如,你的數字欄位最高能存8位,還是錢數,某人有1億也就是9位,可是在你這裡就不能存入了。如果我沒記錯,計算值好像是可以存入的,不過好像會變成1千萬(因為存不了1億),平白縮水為十分之一,估計他要跳樓了。
每個欄位型別有每個欄位型別的用法,一般情況下最好不要混用,那會增加很多的工作量的。
4樓:匿名使用者
不能,看你需求的。比如你設定字元竄長度為50,當你輸入的東西大於50的時候會報錯。資料型別的話比如時間有的會設定成datetime有的喜歡字元竄,這個在你用sql查詢設定條件的時候會有影響。
5樓:草名字真心難起
varchar(100) 指的是字元的最大長度是100位元組。
numeric(7, 3)欄位是數字型,長度為7 小數為3的。
還有char(2)
sql char 括號後面的數字是什麼意思
6樓:匿名使用者
你是說char(10) 這樣的? 那是欄位的長度。 表示你最多可以存多少個字元。
如果你說的是char函式。
將 int ascii **轉換為字元的字串函式。
介於 0 和 255 之間的整數。如果整數表示式不在此範圍內,將返回 null 值。
比如:製表符 char(9)
換行符 char(10)
回車 char(13)
7樓:網友
固定長度 (char) 或可變長度 (varchar) 字元資料型別。
char[(n)]
長度為 n 個位元組的固定長度且非 unicode 的字元資料。n 必須是一個介於 1 和 8,000 之間的數值。儲存大小為 n 個位元組。
比如你要定義一個變數。
declare @a char(10)
那麼@a這個變數長度為10個字元。
8樓:匿名使用者
那是那個欄位的字元長度,如:@p1 char 10
就是指它有十個字元的位置。
sql語言中char的用法
9樓:小丁創業
用法和詳細的操作步驟如下:
1、第一步,在桌面上,單擊「
management studio」圖示,見下圖,轉到下面的步驟。
2、第二步,執行完上面的操作之後,右鍵單擊test2表的「設計」選項,見下圖,轉到下面的步驟。
3、第三步,執行完上面的操作之後,單擊資料型別為「char」的選項,見下圖,轉到下面的步驟。
4、第四步,執行完上面的操作之後,更改為「varchar(2)」資料型別,見下圖,轉到下面的步驟。
5、第五步,執行完上面的操作之後,轉換成功,見下圖。以上就是char的用法。
10樓:網友
char 資料型別 char的長度是固定的,如儲存字串「abc",對於char (10),表示你儲存的字元將佔10個位元組(包括7個空字元)
11樓:網友
char 是一種欄位型別,是字元型的。
其他的如 int, varchar 等等。
12樓:匿名使用者
char是一個字元型別。
舉例create table test(name char(20);
在建立表名test中,定義一個型別為char,長度為20的字元型別的列name
類似的還有varchar、varchar2、int等等。
13樓:枯牛
他們的解釋都對,樓主還不結貼啊。
sql語句中有關char的問題
14樓:康農繆迎曼
set@課程號=cast(@課程號。
asint)+1
不過這種轉換應該是無法通過把。
set@課程號=left(@課程號,1)+(cast(right(@課程號,3)
asint)+1)
把後面的單獨出來轉換為整形。
為什麼sql中char在新增數值時不需要加單引號,書上說要加啊,還加了重點符號 10
15樓:匿名使用者
你插入的是數字,可不是不需要??
你插入a,b,c試試不加會不會報錯。
char型別中儲存的資料為數字型資料,在oracle中會預設把不加引號的資料隱性轉成帶引號的資料。
char(8)在sql server中是什麼意思,怎麼才能知道括號內什麼時候該填幾?
16樓:思考機器
char(8)說明欄位是字元型,長度是8個字元。
填多少數字具體看你這個欄位的長度需求,比如一個欄位確定不會超過5個字元,那就設成char(5)。
17樓:網友
補充,不夠8位會自動在後面加空格構成8位。
在c語言中char後面如果接字母要用' ',如果接數字是不是不要那個『 』啊?
18樓:匿名使用者
是這樣的,但是那個數值是一個ascii值,也表示一個字元。
19樓:匿名使用者
不是這樣理解,你的字元變數如果要接收字元,都要用單引號括起來,比如說 '6' 這樣的數字字元。
SQL中char和varvhar的區別
char 資料型別的列存放固定個數的非unicode字元。varchar資料型別的列存放不固定個數的非unicode字元。固定,就是說如果定義的是5個字元,那麼就分配不個字元,如果你的值是 ab 也分配5個字元,不足的位數補足空格或其他字元 ab 後面不足了3個空格 不固定,就是可變,就是實際多少個...
SQL文字中的數字求和
就題論題吧,不見得是個好的解決方案 select decode sign 5 time1 1,time1 decode sign 5 time2 1,tim2 decode sign 5 time3 1,time3 from select replace replace time1,遲到 分鐘 ti...
sim卡後面的數字有什麼用,SIM卡後面的數字有什麼用?
大野瘦子 就是手機卡的iccid,專業上講,iccid是手機卡積體電路卡識別碼,也稱sim卡卡號,通俗來說,相當於手機號碼的身份證,具體作用如下 1 實名登記用途 預付費使用者辦理實名登記後,辦理換卡時,只能在聯通自有營業廳辦理,營業人員必須通過校驗iccid卡號或現場撥打辦理換卡的 號碼的方式,已...