1. 如何修改資料庫的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
2. 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可變或字元可變。
(2)資料庫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個字元。
3. 為什麼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%';
4. 資料庫中的character類型,能按數字排序嗎
不可以,如果想按數字排列,必須存到INT,Money這樣的欄位里
5. 資料庫里中文也是一個位元組長度
不同的編碼方式,所需的佔用空間不同。
latin1:
1character=1byte,1漢字=2character,
也就是說一個欄位定義成 varchar(200),則它可以存儲100個漢字或者200個字母。
這一點要注意,尤其是當欄位內容是字母和漢字組成時,盡量假設欄位內容都是由漢字組成,據此來設置欄位長度
utf8:
1character=3bytes, 1漢字=1character
也就是說一個欄位定義成 varchar(200),則它可以存儲200個漢字或者200個字母。
gbk:
1character=2bytes,1漢字=1character
也就是說一個欄位定義成 varchar(200),則它可以存儲200個漢字或者200個字母。
請採納!
6. 如何查看mysql編碼格式 character
>show variables like 'character%';
character_set_client為客戶端編碼方式
character_set_connection為建立連接使用的編碼
character_set_database資料庫的編碼;
character_set_results結果集的編碼;
character_set_server資料庫伺服器的編碼;
7. 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 。
8. 資料庫中數據類型有哪些
Character 數據類型
Character 數據類型用來存儲字母數字型數據。當你在oracle 中定義一個character 數據時,通常需要制定欄位的長度,它是該欄位的最大長度。ORACLE提供以下幾種character 數據類型:
CHAR() CHAR數據類型是一種有固定長度和最大長度的字元串。存儲在數據類型為CHAR欄位中的數據將以空格的形式補到最大長度。長度定義在1——2000位元組之間。
當你創建一個CHAR型欄位,資料庫將保證在這個欄位中的所有數據是定義長度,如果某個數據比定義長度短,那麼將用空格在數據的右邊補到定義長度。如果長度大於定義長度將會觸發錯誤信息。
VARCHAR() varchar型數據是varchar2型數據的快照。
VARCHAR2() varchar2數據喚巧類型是一種可變長度的、有最大長度的字母數字型數據。Varchar2類型的欄位長度可以達到4000位元組,Varchar2類型的變數長度可以達到32676位元組。
一個空的varchar2(2000)欄位和一個空的varchar2(2)欄位所佔用的空間是一樣的。
NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()數據類型分別與CHAR() 和 VARCHAR2()類型是相同的,只不過它們用來存儲NLS(National Language Support)數據。
LONG LONG 數據類型是一個遺留下來的而且在將來不會被支持的數據類型。它將被LOB(Large Object)數據類型所代替。
比較規則 Varchar2和char數據類型和差鍵根據尾部的空格有不同的比較規則。對Char型數據,尾部的空格將被忽略掉,對於Varchar2型數據尾部帶空格的數據排序比沒有空慶宴格的要大些。比如:
Char 型數據: 『YO』=『YO』
Varchar2型數據:『YO』<』YO』
Numberic 數據類型
Numberic 數據類型用來存儲負的和正的整數、分數和浮點型數據,范圍在-1*10-103 和9.99999*10125之間,有38位的精確度。標識一個數據超出這個范圍時就會出錯。
Number(
) Number數據類型存儲一個有p位精確度的s位等級的數據。
DATE 數據類型
DATE 數據類型用來存儲日期和時間格式的數據。這種格式可以轉換為其他格式的數據去瀏覽,而且它有專門的函數和屬性用來控制和計算。以下的幾種信息都包含在DATE數據類型中:
Century
Year
Month
Day
Hour
Minute
Second
LOB 數據類型
LOB(Large Object) 數據類型存儲非結構化數據,比如二進制文件,圖形文件,或其他外部文件。LOB 可以存儲到4G位元組大小。數據可以存儲到資料庫中也可以存儲到外部數據文件中。LOB數據的控制通過DBMS_LOB 包實現。BLOB, NCLOB, 和CLOB 數據可以存儲到不同的表空間中,BFILE存儲在伺服器上的外部文件中。LOB數據類型有以下幾種:
BLOB: 二進制數據
CLOB: 字元型數據
BFILE: 二進制文件
其他數據類型
ROWID ROWID 數據類型是ORACLE數據表中的一個偽列,它是數據表中每行數據內在的唯一的標識。