① 如何改變sql server 2005資料庫的編碼方式為gbk形式
具體:
1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看排序規則.
應該字元集關.
2.更改伺服器排序規則
更改 SQL Server 2005 實例默認排序規則操作能比較復雜包括步驟:
確保具重新創建用戶資料庫及些資料庫所象所需全部信息或腳本
使用工具(例容量復制)導所數據
刪除所用戶資料庫
重新 setup 命令 SQLCOLLATION 屬性指定新排序規則 master 資料庫例:
復制代碼
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
關重新 master 資料庫詳細信息請參閱何重新 SQL Server 2005 Master 資料庫
創建所資料庫及些資料庫所象
導入所數據
注意:
創建每新資料庫指定默認排序規則更改 SQL Server 2005 實例默認排序規則
3.設置更改資料庫排序規則
創建新資料庫使用列內容指定排序規則:
CREATE DATABASE 語句 COLLATE 句
SQL Server Management Studio.
SQL 管理象 (SMO) Database.Collation 屬性
未指定排序規則則使用伺服器排序規則
使用 ALTER DATABASE 語句 COLLATE 句更改用戶資料庫創建任何新象排序規則使用語句能更改任何現用戶定義表列排序規則使用 ALTER TABLE COLLATE 句更改些列排序規則
更改資料庫排序規則需要更改列內容:
資料庫默認排序規則新默認排序規則應用於資料庫續創建所列、用戶定義數據類型、變數參數根據資料庫定義象解析 SQL 語句指定象標識符使用新默認排序規則
系統表任何 char、varchar、text、nchar、nvarchar 或 ntext 列更改使用新排序規則
存儲程用戶定義函數所現 char、varchar、text、nchar、nvarchar 或 ntext 參數標量返值更改使用新排序規則
char、varchar、text、nchar、nvarchar 或 ntext 系統數據類型基於些系統數據類型所用戶定義數據類型更改使用新默認排序規則
SQL code :
1.資料庫字元集修改:
alter database dbname collate Chinese_PRC_CI_AS
2.
--1. 資料庫指定排序規則
CREATE DATABASE db COLLATE Chinese_PRC_CI_AS
GO
ALTER DATABASE db COLLATE Chinese_PRC_BIN
GO
/*====================================*/
--2. 表列指定排序規則
CREATE TABLE tb(
col1 varchar(10),
col2 varchar(10) COLLATE Chinese_PRC_CI_AS)
GO
ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN
GO
ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN
GO
/*====================================*/
--3. 字元變數參數應用排序規則
DECLARE @a varchar(10),@b varchar(10)
SELECT @a='a',@b='A'
--使用排序規則 Chinese_PRC_CI_AS
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a <>@b' END
--結:@a=@b
--使用排序規則 Chinese_PRC_BIN
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a <>@b' END
--結:@a <>@b
3.
表
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--區寫
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--區寫
資料庫
ALTER DATABASE database
COLLATE Chinese_PRC_CS_AS
--區寫
ALTER DATABASE database COLLATE Chinese_PRC_CI_AS --區寫
.安裝SQL選擇區寫
或安裝完重建mastar選擇區
C:/Program Files/Microsoft SQL Server/80/Tools/Binn/rebuildm.exe
二.sql server 8.0版本才7.0及其支持
alter database 資料庫 COLLATE Chinese_PRC_CS_AS
修改排序規則改寫敏排序規則
修改表用alter table語句
修改庫默認排序規則用alter datebase語句
修改整伺服器默認排序規則用Rebuildm.exe重建master庫
--指定排序規則
--示例
select replace('AbacB' collate Chinese_PRC_CS_AS_WS,'B','test')
--要求表支持,則建表指定排序規則,replace用寫排序規則
--示例
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values('Abac')
select replace(a,'a','test') from tb
drop table tb
指定排序規則即
Windows 排序規則名稱
COLLATE 句指定 Windows 排序規則名稱Windows 排序規則名稱由排序規則指示器比較風格構
語
< Windows_collation_name > :: =
CollationDesignator_ <ComparisonStyle>
< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN
參數
CollationDesignator
指定 Windows 排序規則使用基本排序規則基本排序規則包括:
指定按字典排序應用其排序規則字母表或語言
用於存儲非 Unicode 字元數據代碼頁
例 Latin1_General 或文兩者都使用代碼頁 1252或土耳其文使用代碼頁 1254
CaseSensitivity
CI 指定區寫CS 指定區寫
AccentSensitivity
AI 指定區重音AS 指定區重音
KanatypeSensitive
Omitted 指定區寫KS 指定區假名類型
WidthSensitivity
Omitted 指定區寫WS 指定區寫
BIN
指定使用二進制排序序
目前查詢區要改免反悔查詢:
select * from a
/*
a_nam a_add
---------- ----------
1 aa
1 bb
2 cc
2 vv
2 kk
3 dd
3 ee
4 dd
5 ee
6 yy
6 yy
(11 row(s) affected)
*/
現我查詢a_add = 'aa''Aa'等等行
Example 1:
select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'aa'
/*
a_nam a_add
---------- ----------
1 aa
(1 row(s) affected)
*/
Example 2:
select * from a
where a_add collate Chinese_PRC_CS_AS_WS = 'Aa'
/*
a_nam a_add
---------- ----------
(0 row(s) affected)
*/
三.面記住用笨轉化ascii
select * from a
where
ascii(substring(a_add,1,1)) = ascii(substring('Aa',1,1))
and
ascii(substring(a_add,2,1)) = ascii(substring('Aa',2,1))
/*
a_nam a_add
---------- ----------
(0 row(s) affected)
*/
三:任何版本都
select * from a
where cast(a_add as varbinary(10))= cast('aa' as varbinary(10))
② 如何修改postgresql資料庫字元集原來是SQL_ASCII 現在想改為UTF-8
新建一個模板,比如 template_utf8 ,設置好UTF-8以及plpgsql之類的lang還有插件,從這個資料庫新建就全是UFT-8了。
如果是更改的話,需要先把資料庫導出為SQL, 再新建,而後導入。導入前,修改SQL里的create 語句,指定字元集。有漢字的話,另存為UTF-8的編碼,再導入。
③ 如何更改MySQL資料庫編碼為UTF-8或者GB2312
mysql 創建 資料庫時指定編碼很重要,很多開發者都使用了默認編碼,亂碼問題可是防不勝防。制定資料庫的編碼可以很大程度上避免倒入導出帶來的亂碼問題。
網頁數據一般採用UTF8編碼,而資料庫默認為latin 。我們可以通過修改資料庫默認編碼方式為UTF8來減少資料庫創建時的設置,也能最大限度的避免因粗心造成的亂碼問題。
我們遵循的標準是,資料庫,表,欄位和頁面或文本的編碼要統一起來
我們可以通過命令查看資料庫當前編碼:
mysql> SHOW VARIABLES LIKE 'character%';
發現很多對應的都是latin1,我們的目標就是在下次使用此命令時latin1能被UTF8取代。
第一階段:
mysql設置編碼命令
[sql]view plain
SETcharacter_set_client=utf8;
SETcharacter_set_connection=utf8;
SETcharacter_set_database=utf8;
SETcharacter_set_results=utf8;
SETcharacter_set_server=utf8;
- 然後mysql> SHOW VARIABLES LIKE 'character%';你可以看到全變為utf8 。
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:Program FilesMySQLMySQL Server 5.0sharecharsets |
+--------------------------+---------------------------------------------------------+
8 rows in set
④ 如何設置Mysql資料庫默認的字元集編碼為GBK
1、更改伺服器的編碼方式,在終端輸入以下命令:
mysqld
--character-set-server=gbk
--collation-server=gbk_chinese_ci;
2、更改某個資料庫的編碼方式
mysql
-u
root
-p
alter
database
character
set
gbk
collate
gbk_chinese_ci;
3、在創建資料庫時指定編碼:
mysql
-u
root
-p
create
database
db_name
character
set
gbk
collate
gbk_chinese_ci;
4、更改某個表的編碼方式
mysql
-u
root
-p
db_name
alter
table
table_name
convert
to
charachter
set
gbk
collate
gbk_chinese_ci;
5、在創建表時指定編碼方式
mysql
-u
root
-p
db_name
create
table
table_name
(....)
character
set
gbk
collate
gbk_chinese_ci;
6、更改某行的編碼方式
mysql
-u
root
-p
db_name
alter
table
table_name
modify
column_name
varchar(20)
character
set
gbk
collate
gbk_chinese_ci;
7、在創建列時指定編碼方式:
</pre><pre
name="code"
class="sql">mysql
-u
root
-p
db_name
create
table
table_name
(...,
col1
varchar(20)
character
set
gbk
collate
gbk_chinese_ci,
...)
character
set
utf8
collate
utf8_general_ci;