sql中CHAR後面的數字可以隨便寫嗎?

時間 2023-03-19 18:00:10

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卡號或現場撥打辦理換卡的 號碼的方式,已...