㈠ 濡備綍SQL Server 2005 璁剧疆瀛楃﹂泦涓篣TF-8
1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
鏌ョ湅浣犵殑鎺掑簭瑙勫垯.
涓嶈繃浣犵殑杩欎釜搴旇ュ拰瀛楃﹂泦鏈夊叧.
2.鏇存敼鏈嶅姟鍣ㄦ帓搴忚勫垯
鏇存敼 SQL Server 2005 瀹炰緥鐨勯粯璁ゆ帓搴忚勫垯鐨勬搷浣滃彲鑳戒細姣旇緝澶嶆潅锛屽寘鎷浠ヤ笅姝ラわ細
纭淇濆叿鏈夐噸鏂板垱寤虹敤鎴锋暟鎹搴撳強杩欎簺鏁版嵁搴撲腑鐨勬墍鏈夊硅薄鎵闇鐨勫叏閮ㄤ俊鎭鎴栬剼鏈銆
浣跨敤宸ュ叿锛堜緥濡傚ぇ瀹归噺澶嶅埗锛夊煎嚭鎵鏈夋暟鎹銆
鍒犻櫎鎵鏈夌敤鎴锋暟鎹搴撱
閲嶆柊鐢熸垚鍦 setup 鍛戒护鐨 SQLCOLLATION 灞炴т腑鎸囧畾鏂扮殑鎺掑簭瑙勫垯鐨 master 鏁版嵁搴撱備緥濡傦細
澶嶅埗浠g爜
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 瀛愬彞鍙浠ユ洿鏀硅繖浜涘垪鐨勬帓搴忚勫垯銆
鏇存敼鏁版嵁搴撴帓搴忚勫垯鏃讹紝闇瑕佹洿鏀逛笅鍒楀唴瀹癸細
鏁版嵁搴撶殑榛樿ゆ帓搴忚勫垯锛岃繖涓鏂扮殑榛樿ゆ帓搴忚勫垯灏嗗簲鐢ㄤ簬鏁版嵁搴撲腑鍚庣画鍒涘缓鐨勬墍鏈夊垪銆佺敤鎴峰畾涔夌殑鏁版嵁绫诲瀷銆佸彉閲忓拰鍙傛暟銆傛牴鎹鏁版嵁搴撲腑瀹氫箟鐨勫硅薄瑙f瀽 SQL 璇鍙ヤ腑鎸囧畾鐨勫硅薄鏍囪瘑绗︽椂锛屼篃浣跨敤鏂扮殑榛樿ゆ帓搴忚勫垯銆
灏嗙郴缁熻〃涓鐨勪换浣 char銆乿archar銆乼ext銆乶char銆乶varchar 鎴 ntext 鍒楁洿鏀逛负浣跨敤鏂扮殑鎺掑簭瑙勫垯銆
灏嗗瓨鍌ㄨ繃绋嬪拰鐢ㄦ埛瀹氫箟鍑芥暟鐨勬墍鏈夌幇鏈 char銆乿archar銆乼ext銆乶char銆乶varchar 鎴 ntext 鍙傛暟鍜屾爣閲忚繑鍥炲兼洿鏀逛负浣跨敤鏂扮殑鎺掑簭瑙勫垯銆
灏 char銆乿archar銆乼ext銆乶char銆乶varchar 鎴 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 --涓嶅尯鍒嗗ぇ灏忓啓
鏂规硶涓.瀹夎匰QL鏃堕夋嫨鍖哄垎澶у皬鍐
鎴栧畨瑁呭畬浠ュ悗閲嶅缓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 鎺掑簭瑙勫垯鍚嶇О銆俉indows 鎺掑簭瑙勫垯鍚嶇О鐢辨帓搴忚勫垯鎸囩ず鍣ㄥ拰姣旇緝椋庢牸鏋勬垚銆
璇娉
< Windows_collation_name > :: =
CollationDesignator_ <ComparisonStyle>
< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN
鍙傛暟
CollationDesignator
鎸囧畾 Windows 鎺掑簭瑙勫垯浣跨敤鐨勫熀鏈鎺掑簭瑙勫垯銆傚熀鏈鎺掑簭瑙勫垯鍖呮嫭锛
褰撴寚瀹氭寜瀛楀吀鎺掑簭鏃跺簲鐢ㄥ叾鎺掑簭瑙勫垯鐨勫瓧姣嶈〃鎴栬瑷
鐢ㄤ簬瀛樺偍闈 Unicode 瀛楃︽暟鎹鐨勪唬鐮侀〉銆
渚嬪 Latin1_General 鎴栨硶鏂囷紝涓よ呴兘浣跨敤浠g爜椤 1252锛屾垨鍦熻冲叾鏂囷紝瀹冧娇鐢ㄤ唬鐮侀〉 1254銆
CaseSensitivity
CI 鎸囧畾涓嶅尯鍒嗗ぇ灏忓啓锛孋S 鎸囧畾鍖哄垎澶у皬鍐欍
AccentSensitivity
AI 鎸囧畾涓嶅尯鍒嗛噸闊筹紝AS 鎸囧畾鍖哄垎閲嶉煶銆
KanatypeSensitive
Omitted 鎸囧畾涓嶅尯鍒嗗ぇ灏忓啓锛孠S 鎸囧畾鍖哄垎鍋囧悕绫诲瀷銆
WidthSensitivity
Omitted 鎸囧畾涓嶅尯鍒嗗ぇ灏忓啓锛學S 鎸囧畾鍖哄垎澶у皬鍐欍
BIN
鎸囧畾浣跨敤浜岃繘鍒舵帓搴忔″簭銆
濡傛灉浣犲彧鏄鐩鍓嶆煡璇㈠尯鍒嗭紝閭d箞杩樻槸涓嶈佽繖鏍锋敼锛屽厤寰楀張鍙嶆倲锛屽傛ゆ煡璇锛
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)
*/
鏂规硶涓.涓婇潰鐨勮颁笉浣忥紝閭d箞灏辩敤鏈绗ㄧ殑鏂规硶锛岃浆鍖栦负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))
㈡ mysql用sql语句创建表和数据库怎么设置字符编码'
--创建数据库时,设置数据库的编码方式
--CHARACTERSET:指定数据库采用的字符集,utf8不能写成utf-8
--COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过showcharacterset查看)
dropdatabaseifEXISTSdbtest;
_general_ci;
--修改数据库编码
_chinese_ci;
_general_ci;
--创建表时,设置表、字段编码
usedbtest;
droptableifexiststbtest;
createtabletbtest(
idint(10)auto_increment,
user_namevarchar(60)CHARACTERSETGBKCOLLATEgbk_chinese_ci,
emailvarchar(60),
PRIMARYkey(id)
)CHARACTERSETutf8COLLATEutf8_general_ci;
--修改表编码
_general_ci;
--修改字段编码
(60)CHARACTERSETutf8COLLATEutf8_general_ci;
--查看所有的字符编码
SHOWCHARACTERSET;
--查看创建数据库的指令并查看数据库使用的编码
showcreatedatabasedbtest;
--查看数据库编码:
showvariableslike'%char%';
--设置character_set_server、setcharacter_set_client和setcharacter_set_resultssetcharacter_set_server=utf8;--服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法是修改配置MYSQL文件MY.INI,
㈢ MySQL鏁版嵁搴撲腑濡備綍璁剧疆瀛楃﹂泦
璁剧疆鏈嶅姟鍣ㄧ骇鍜屾暟鎹搴撶骇瀛楃﹂泦鐨勬柟娉曞備笅锛
瀵逛簬鏈嶅姟鍣ㄧ骇瀛楃﹂泦锛屽彲浠ラ氳繃浠ヤ笅姝ラよ繘琛岃剧疆锛
鎵撳紑鏈嶅姟鍣ㄩ厤缃鏂囦欢锛堝俶y.cnf鎴杕y.ini锛夛紝鎵惧埌[mysqld]閮ㄥ垎銆
鍦╗mysqld]閮ㄥ垎涓娣诲姞浠ヤ笅琛岋細
character-set-server=瀛楃﹂泦鍚嶇О
鍏朵腑锛屽瓧绗﹂泦鍚嶇О鏄鎮ㄩ夋嫨鐨勫瓧绗﹂泦鐨勫悕绉般備緥濡傦紝濡傛灉鎮ㄦ兂浣跨敤UTF-8瀛楃﹂泦锛屽彲浠ユ坊鍔犱互涓嬭岋細
character-set-server=utf8
瀵逛簬鏁版嵁搴撶骇瀛楃﹂泦锛屽彲浠ュ湪鍒涘缓鏁版嵁搴撴椂鎸囧畾瀛楃﹂泦銆備緥濡傦紝濡傛灉鎮ㄦ兂灏嗘暟鎹搴撶殑瀛楃﹂泦璁剧疆涓篣TF-8锛屽彲浠ユ墽琛屼互涓婼QL璇鍙ワ細
CREATE DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
鍏朵腑锛宒atabase_name鏄鎮ㄨ佸垱寤虹殑鏁版嵁搴撶殑鍚嶇О銆
璇锋敞鎰忥紝浠ヤ笂璁剧疆鏂规硶浠呬緵鍙傝冦傚叿浣撹剧疆鏂规硶鍙鑳藉洜涓嶅悓鐨凪ySQL鐗堟湰鍜岀幆澧冭屾湁鎵涓嶅悓銆
㈣ mysql中怎么设置字符集
方法1:通过客户端修改表字段的默认字符集
打开SQLyog客户端,连接数据库如下图所示,点击connection 按钮 连接数据库
我的数据库名称为e,然后我随意找到数据库中test2表,右键-----》Alter Table
如果安装数据库的 时候 没有选择字符集设置,那么mysql数据库默认为latin1,在箭头部分选择utf8字符集
方法2:用数据库命令修改字符集
首先查看当前数据库字符集,在命令框中执行如下命令:show variables like 'character_set_%';
查看字符集排序设置,执行命令:show variables like 'collation_%';
修改服务器级别字符集,执行命令:
1,临时修改:SET GLOBAL character_set_server=utf8;
修改表级别,命令如下:ALTER TABLE table_name DEFAULT CHARSET utf8;
修改数据库级别,命令如下:use e(换成你要修改的数据库名,在这里我的数据库为e),,然后执行命令:alter database e character set utf-8;
或者修改mysql的my.ini文件中的字符集键值
[mysql]
[mysqld]
重启mysql
㈤ mysql建表的时候设置表里面的字段的字符集是utf-8要怎么设置默认建好后我去mysql里看字符集都是gbk
1、建表时指定字符集utf-8:
CREATE TABLE表名
( `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`content` VARCHAR( 255 ) NOT NULL)
DEFAULT CHARACTER SET = utf8;
2、修改表的字符集为utf-8:
alter table 表名 convert to character set utf8;
(5)在哪里设置数据库的字符类型扩展阅读:
1、创建数据库时设置字符集:
CREATE DATABASE数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci;
注意后面三个单词之间是有下划线的对于每个选项所给定的值,前面没有等号;在第一个选项和第二个选项之间也没有逗号。
2、修改数据库的字符集:
alter database数据库名 character set utf8;
3、显示某数据库字符集设置:
show create database 数据库名;
4、显示某数据表字符集设置:
show create table 表名;
5、修改字段:
alter table 表名 modify column '字段名' varchar(30) character set utf8 not null;
6、添加表字段:
alter table 表名 add column '字段名' varchar (20) character set utf8;