MySQL中資料型別(char(n)、varchar(n)、nchar(n)、nvarchar(n)的區別)
char(n)和varchar(n)的區別:
在這裡我們可以清楚的看到他們表面的區別就是前面是否有var,在這裡解釋一下var是什麼意思,var代表“可變的”的意思
下面看個例子:
char(4)//char代表的是字元的意思,這在Java中學過,一個漢字代表一個字元,2個位元組;一個英文代表一個字元,一個位元組。而這裡char(n),(除了它,其餘三個都是如此)n是代表位元組數,現在我們假如儲存‘abcd’(4個位元組,所以可以儲存),再假如儲存‘中國你好’(8個位元組,所以不能儲存),再假如儲存‘ab’(由於是有四個位元組,而現在ab只佔兩個位元組,所以用兩個空格補上後面的兩個位元組,所以資料庫的資料為‘ab ’)
varchar(4)//同樣我們以上面的例子舉例,假如儲存‘abcd’(4個位元組,所以可以儲存),再假如儲存‘中國你好’(8個位元組,所以不能儲存),再假如儲存‘ab’(由於是有四個位元組,而現在ab只佔兩個位元組,然而varchar(n)是由var開頭的,資料是可變的,所以不用像char(4),用空格補位元組的方法,而是可以直接省略空格,所以資料庫的資料還是‘ab’)
nchar(n)和nvarchar(n)
同樣我們先弄清楚以n開頭的資料型別是什麼意思,已n開頭表示此字元是unicode編碼的格式,不是以n開頭的自然不是unicode編碼格式。我們在前面說過,括號裡面的n是代表位元組數,而在這裡,由於是unicode編碼格式,所以n代表2n個位元組數,同樣以上面的例子舉例:
nchar(4)//既然是unicode編碼格式並且不是可變的,所以總共可以儲存2*4=8個位元組,我們現在假如儲存‘abcd’(由於是隻佔四個位元組,所以在資料庫中的資料為‘abcd ’),假如儲存‘中國你好’(則完全可以存放)
nvarchar(4)//既然是unicode編碼且為可變的,所以儲存‘abcd’(在資料庫中的資料為‘abcd’,不會再補空格)
最後,總結一下,var代表可變的,n開頭代表是unicode編碼。
相關文章
- char(n)和varchar2(n)區別
- mysql的varchar(N)和int(N)的含義及其與char區別MySql
- VARCHAR2(N CHAR)與VARCHAR2(N)的區別[Oracle基礎]Oracle
- char,nchar,varchar,nvarchar的區別和特點
- Sql server char,nchar,varchar與Nvarchar的區別SQLServer
- Oracle 資料型別CHAR, NCHAR, VARCHAR2, NVARCHAR2Oracle資料型別
- 【MySQL】淺談varchar(N)MySql
- 【MySQL】淺談 varchar(N)MySql
- 面試官:MySQL 中 varchar(n) 中 n 最大取值為多少?面試MySql
- Oracle CHAR,VARCHAR,VARCHAR2,nvarchar型別的區別與使用Oracle型別
- 【基礎】Oracle CHAR,VARCHAR,VARCHAR2,nvarchar型別的區別與使用Oracle型別
- 360N7對比N6 Pro的區別對比 60N7和360N6 Pro哪個好?
- MySQL字元資料型別char與varchar的區別MySql字元資料型別
- Dynamics CRM實體系列之1:N、N:1以及N:N關係
- char nchar varchar2 nvarchar2 區別-Oracle (varchar2 max 4K, 2K漢字)Oracle
- se16與se16n的區別
- FIRST_ROWS和FIRST_ROWS_n的區別
- imp INDEXES=N CONSTRAINTS=NIndexAI
- 訊號與槽N對N
- MySQL資料型別操作(char與varchar)MySql資料型別
- 計算2的N次冪n 可輸入,n為自然數
- 360手機N4S和360手機N4區別對比評測
- SQL插入語句中有單引號 && SQL中char nchar varchar nvarchar的區別 && Java中字元(串)和數值型別的轉換SQLJava字元型別
- MySQL中CHAR和VARCHAR區別MySql
- 談MySQL中char varchar區別MySql
- eventlet 的 spawn_n 和 spawn 有什麼區別?
- EXP匯出引數compress=y(n)的區別
- FIRST_ROWS和FIRST_ROWS(N)的區別 (zt)
- Teradata 之top n與sample n
- NTMySQL中varchar和char型別的區別heeMySql型別
- 關於宏定義 Bin(n),LongToBin(n),LongToBin(0x##n##L)
- MySQL CHAR和VARCHAR資料型別介紹MySql資料型別
- ${string::N}和${string:N}字元提取字元
- standby_archive_dest和log_archive_dest_n區別Hive
- log_archive_dest與log_archive_dest_n區別Hive
- 資料庫char varchar nchar nvarchar,編碼Unicode,UTF8,GBK等,Sql語句中文前為什麼加N(一次線上資料儲存亂碼排查)資料庫UnicodeSQL
- varchar和char的區別
- mysql id從n 開始MySql