⑴ character是什麼欄位類型
character即是:char,固定長度 (char) 或可變長度 (varchar) 字元數據類型。
char[[n]]
長度為n個位元組的固定長度的非Unicode單詞字元數據。 n必須是1到8,000之間的數字。 存儲大小為n個位元組。 sql-92中char的同義詞是character。
varchar [(n)]
長度為n個位元組的可變長度非Unicode字元數據。 n必須是1到8,000之間的數字。 存儲大小是輸入數據位元組的實際長度,而不是n位元組。 輸入數據字元的長度可以為零。 SQL-92中varchar的同義詞是char可變或字元可變。
(1)character資料庫擴展閱讀:
如果在數據定義或變數聲明語句中未指定n,則默認長度為1。如果未使用CAST函數指定n,則默認長度為30。
除非使用COLLATE子句另外分配了特定的排序規則,否則將為使用char或varchar的對象分配資料庫的默認排序規則。該排序規則控制用於存儲字元數據的代碼頁。
支持多種語言的站點應考慮使用Unicode nchar或nvarchar數據類型,以最大程度地減少字元轉換問題。如果使用char或varchar:
如果希望各列中的數據值接近相同的大小,請使用char。
如果希望各列中的數據值大小明顯不同,請使用varchar。
如果在執行CREATE TABLE或ALTER TABLE時SET ANSI_PADDING為OFF,則定義為NULL的char列將被視為varchar。
當整理代碼頁使用雙位元組字元時,存儲大小仍為n位元組。根據字元串的不同,n個位元組的存儲大小可能少於n個字元。
⑵ 資料庫中的character類型,能按數字排序嗎
不可以,如果想按數字排列,必須存到INT,Money這樣的欄位里
⑶ 如何查看mysql編碼格式 character
>show variables like 'character%';
character_set_client為客戶端編碼方式
character_set_connection為建立連接使用的編碼
character_set_database資料庫的編碼;
character_set_results結果集的編碼;
character_set_server資料庫伺服器的編碼;
⑷ 如何修改資料庫的character
用alter語句. 如果資料庫已經有數據表了, 那每個表都要修改. (修改資料庫的字元集不會改變原有數據表的字元集)utf8:ALTER DATABASE `資料庫` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE `數據表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci gbk (包含gb2312):ALTER DATABASE `資料庫` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci ALTER TABLE `數據表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
⑸ 如何對MySQL的字元集character
如 default-character-set = utf8 character_set_server = utf8
修改完後,重啟mysql的服務,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,發現資料庫編碼均已改成utf8
(2) 還有一種修改mysql默認字元集的方法,就是使用mysql的命令
⑹ 在db2中varchar和character有何區別
character其實就是char,
1.最大長度不同
char最大254bytes,而varchar最大32672bytes
2.存儲不同
char(n)在資料庫佔用n個位元組,在資料庫中以空格補足,但在取出來時末尾的空格將被去掉
varchar(n)在資料庫中至少佔用1個位元組,在資料庫中末尾的空格將自動去掉,實際佔用錄入數據長度+1或者+2位元組。
L數據長度
L+1bytesL<=M0<=M<=256
L+2bytesL<=M256<M<=32672
在資料庫中末尾的空格將自動去掉
⑺ 為什麼mysql 默認的test資料庫character是latin1不是utf8
MYSQL 字元集問題
MySQL的字元集支持(Character Set Support)有兩個方面:
字元集(Character set)和排序方式(Collation)。
對於字元集的支持細化到四個層次:
伺服器(server),資料庫(database),數據表(table)和連接(connection)。
1.MySQL默認字元集
MySQL對於字元集的指定可以細化到一個資料庫,一張表,一列,應該用什麼字元集。
但是,傳統的程序在創建資料庫和數據表時並沒有使用那麼復雜的配置,它們用的是默認的配置,那麼,默認的配置從何而來呢? (1)編譯MySQL 時,指定了一個默認的字元集,這個字元集是 latin1;
(2)安裝MySQL 時,可以在配置文件 (my.ini) 中指定一個默認的的字元集,如果沒指定,這個值繼承自編譯時指定的;
(3)啟動mysqld 時,可以在命令行參數中指定一個默認的的字元集,如果沒指定,這個值繼承自配置文件中的配置,此時 character_set_server 被設定為這個默認的字元集;
(4)當創建一個新的資料庫時,除非明確指定,這個資料庫的字元集被預設設定為character_set_server;
(5)當選定了一個資料庫時,character_set_database 被設定為這個資料庫默認的字元集;
(6)在這個資料庫里創建一張表時,表默認的字元集被設定為 character_set_database,也就是這個資料庫默認的字元集;
(7)當在表內設置一欄時,除非明確指定,否則此欄預設的字元集就是表默認的字元集;
簡單的總結一下,如果什麼地方都不修改,那麼所有的資料庫的所有表的所有欄位的都用 latin1 存儲,不過我們如果安裝 MySQL,一般都會選擇多語言支持,也就是說,安裝程序會自動在配置文件中把 default_character_set 設置為 UTF-8,這保證了預設情況下,所有的資料庫的所有表的所有欄位的都用 UTF-8 存儲。
2.查看默認字元集(默認情況下,mysql的字元集是latin1(ISO_8859_1)
通常,查看系統的字元集和排序方式的設定可以通過下面的兩條命令:
mysql> SHOW VARIABLES LIKE 'character%';
⑻ mysql怎麼改character
在Unix下,可以編輯my.cnf文件進行編碼修改,Windows下可以直接用Mysql Server Instance Config Wizard 進行設置。
在linux下修改3個 my.cnf 中 /etc/mysql/my.cnf 文件
找到[client] 在下面添加
default-character-set=utf8 默認字元集為utf8
再找到[mysqld] 添加
default-character-set=utf8 默認字元集為utf8
init_connect='SET NAMES utf8' (設定連接mysql資料庫時使用utf8編碼,以讓mysql資料庫為utf8運行)
修改好後,重新啟動mysql 即可,查詢一下show variables like 'character%';
此方法用於標准mysql版本同樣有效,對於/etc/my.cnf文件,需要從mysql/support-files的文件夾復制 my-large.cnf 到 /etc/my.cnf 。