当前位置:首页 » 数据仓库 » 数据库表排序规则
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库表排序规则

发布时间: 2022-12-11 22:29:57

sql server中如何更改排序规则

1、首先新建一个数据库,如图为test。

② oracle数据库中文怎么排序规则

ORACLE数据库中文排序规则
oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
alter session set nls_sort=’schinese_pinyin_m’;
select * from dept order by nlssort(name,’NLS_SORT=SCHINESE_PINYIN_M’);

③ 如何修改数据库的服务器排序规则

您好,很高兴为您解答。

1.sp_helpsort
SELECTSERVERPROPERTY('Collation')
查看你的排序规则.
不过你的这个应该和字符集有关.

2.更改服务器排序规则
更改SQLServer2005实例的默认排序规则的操作可能会比较复杂,包括以下步骤:

确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本
使用工具(例如大容量复制)导出所有数据。
删除所有用户数据库。
重新生成在setup命令的SQLCOLLATION属性中指定新的排序规则的master数据库。例如:
复制代码
start/waitsetup.exe/qbINSTANCENAME=MSSQLSERVERREINSTALL=SQL_EngineREBUILDDATABASE=1SAPWD=testSQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有关重新生成master数据库的详细信息,请参阅如何重新生成SQLServer2005的Master数据库。
创建所有数据库及这些数据库中的所有对象。
导入所有数据。
注意:
可以为创建的每个新数据库指定默认排序规则,而不更改SQLServer2005实例的默认排序规则。

3.设置和更改数据库排序规则
创建新数据库时,可以使用下列内容之一指定排序规则:
CREATEDATABASE语句的COLLATE子句。
SQLServerManagementStudio.
SQL管理对象(SMO)中的Database.Collation属性。
如果未指定排序规则,则使用服务器排序规则。
可以使用ALTERDATABASE语句的COLLATE子句来更改在用户数据库中创建的任何新对象的排序规则。使用此语句不能更改任何现有用户定义的表中列的排序规则。使用ALTERTABLE的COLLATE子句可以更改这些列的排序规则。
更改数据库排序规则时,需要更改下列内容:
数据库的默认排序规则,这一新的默认排序规则将应用于数据库中后续创建的所有列、用户定义的数据类型、变量和参数。根据数据库中定义的对象解析SQL语句中指定的对象标识符时,也使用新的默认排序规则。
将系统表中的任何char、varchar、text、nchar、nvarchar或ntext列更改为使用新的排序规则。
存储过程和用户定义函数的所有现有char、varchar、text、nchar、nvarchar或ntext参数和标量返回值更改为使用新的排序规则。
将char、varchar、text、nchar、nvarchar或ntext系统数据类型和基于这些系统数据类型的所有用户定义的数据类型更改为使用新的默认排序规则。

SQLcode:

1.将数据库的字符集修改为:
_PRC_CI_AS

2.

--1.为数据库指定排序规则
_PRC_CI_AS
GO

ALTERDATABASEdbCOLLATEChinese_PRC_BIN
GO


/*====================================*/


--2.为表中的列指定排序规则
CREATETABLEtb(
col1varchar(10),
col2varchar(10)COLLATEChinese_PRC_CI_AS)
GO

ALTERTABLEtbADDcol3varchar(10)COLLATEChinese_PRC_BIN
GO

(10)COLLATEChinese_PRC_BIN
GO


/*====================================*/


--3.为字符变量和参数应用排序规则
DECLARE@avarchar(10),@bvarchar(10)
SELECT@a='a',@b='A'

--使用排序规则Chinese_PRC_CI_AS
SELECTCASEWHEN@aCOLLATEChinese_PRC_CI_AS=@bTHEN'@a=@b'ELSE'@a<>@b'END
--结果:@a=@b

--使用排序规则Chinese_PRC_BIN
SELECTCASEWHEN@aCOLLATEChinese_PRC_BIN=@bTHEN'@a=@b'ELSE'@a<>@b'END
--结果:@a<>@b


3.

ALTERTABLEtb
ALTERCOLUMNcolnamenvarchar(100)COLLATEChinese_PRC_CI_AS
--不区分大小写
ALTERTABLEtb
ALTERCOLUMNcolnamenvarchar(100)COLLATEChinese_PRC_CS_AS
--区分大小写
数据库
ALTERDATABASEdatabase
COLLATEChinese_PRC_CS_AS
--区分大小写

_PRC_CI_AS--不区分大小写


方法一.安装SQL时选择区分大小写
或安装完以后重建mastar,选择区分大小
C: ebuildm.exe

方法二.sqlserver8.0以上的版本才可以,7.0及其以下不支持
alterdatabase数据库COLLATEChinese_PRC_CS_AS
修改排序规则,改成大小写敏感的排序规则
如果只修改一个表,用altertable语句
如果修改一个库的默认排序规则,用alterdatebase语句
如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库
--指定排序规则就可以了

--示例
selectreplace('AbacB'collateChinese_PRC_CS_AS_WS,'B','test')

--如果你是要求表支持,则可以建表时指定排序规则,这样replace就不用写排序规则了

--示例
createtabletb(avarchar(20)collateChinese_PRC_CS_AS_WS)
inserttbvalues('Abac')

selectreplace(a,'a','test')fromtb

droptabletb

指定排序规则即可

Windows排序规则名称
在COLLATE子句中指定Windows排序规则名称。Windows排序规则名称由排序规则指示器和比较风格构成。

语法
<Windows_collation_name>::=

CollationDesignator_<ComparisonStyle>

<ComparisonStyle>::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive[_WidthSensitive]]
&#166;_BIN

参数
CollationDesignator

指定Windows排序规则使用的基本排序规则。基本排序规则包括:

当指定按字典排序时应用其排序规则的字母表或语言


用于存储非Unicode字符数据的代码页。
例如Latin1_General或法文,两者都使用代码页1252,或土耳其文,它使用代码页1254。

CaseSensitivity

CI指定不区分大小写,CS指定区分大小写。

AccentSensitivity

AI指定不区分重音,AS指定区分重音。

KanatypeSensitive

Omitted指定不区分大小写,KS指定区分假名类型。

WidthSensitivity

Omitted指定不区分大小写,WS指定区分大小写。

BIN

指定使用二进制排序次序。


如果你只是目前查询区分,那么还是不要这样改,免得又反悔,如此查询:
select*froma
/*
a_nama_add
--------------------
1aa
1bb
2cc
2vv
2kk
3dd
3ee
4dd
5ee
6yy
6yy

(11row(s)affected)
*/
现在我们查询a_add='aa'的,'Aa'等等不行!
Example1:

select*froma
wherea_addcollateChinese_PRC_CS_AS_WS='aa'
/*
a_nama_add
--------------------
1aa

(1row(s)affected)
*/

Example2:

select*froma
wherea_addcollateChinese_PRC_CS_AS_WS='Aa'
/*
a_nama_add
--------------------

(0row(s)affected)
*/

方法三.上面的记不住,那么就用最笨的方法,转化为ascii
select*froma
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_nama_add
--------------------

(0row(s)affected)
*/

方法三:任何版本都可以
select*froma
wherecast(a_addasvarbinary(10))=cast('aa'asvarbinary(10))


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

④ 修改SQL数据库排序规则修改表栏位排序规则

修改SQL数据库排序规则修改表栏位排序规则
修改SQL数据库排序规则:
1.修改为单用户模式
2.然后关闭所有的查询窗口,修改Options的Collocation属性,如:Chinese_PRC_90_CI_AS
3.再修改为多用户模式
修改表栏位排序规则:
使用存储过程处理,可以指定对应的表,
存储过程处理步骤:
1-删除外键
(含对应的sql语句)
2-删除主键
(含对应的sql语句)
2.5-删除索引
(含对应的sql语句)
3-修改排序规则
(含对应的sql语句)
4-生成主键
(含对应的sql语句)
5-生成外键
(含对应的sql语句)
6-生成索引
(含对应的sql语句)
7-执行对应的sql语句及导出

不执行对应的sql语句只导出
存储过程下载:

⑤ 什么是数据库里的排序规则

按一定规则排序,比如日期,大小等

⑥ 更改SQL Server 2012 数据库排序规则

针对市面上有部份应用系统或者ERP系统对于数据库的排序规则是有要求,若安装数据库时没有留意,采用默认安装后,导致应用打开出现异常或者乱码现象。其实不用再卸载重装,通过如下步骤进行更改,节省大量的时间:

1、先停止需要变更 sqlserver 的服务 : 在 运行命令行中 services.msc 命令,在打开的服界面打到并关闭sql server 的服务;(直接通过 Net stop mssqlserver 语句也可以关闭SQL Server 后台服务)

2、执行命令:(cmd命令行)

F:>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /SAPWD=****** /SQLCOLLATION=Chinese_PRC_BIN

参数介绍:

InstanceName : MSSQLSERVER 默认为:MSSQLSERVER

SQLSYSADMINACCOUNTS: administrator 默认为:administrator

StrongPassword : sa账号的密码

CollationName : Chinese_PRC_BIN (根据实际情况需要填写)

F:>setup为安装文件存放路径;

3、等几分钟。出现成功提示

4、执行命令 Net start mssqlserver 启动 SqlServer

5、原有各个数据库会被移出,需要手动进行“附加数据库”数据库操作

⑦ GB2312对应sqlserver数据库的排序规则是什么

存储数据时如果出现乱码,可能情况如下:
1.提交到数据库的字符是乱码
2.
数据库排序规则不支持该字符集
3.数据库表字段的类型设计不合适,最好选用nvarchar,nchar
4.插入字符串时强制存储格式
insert
into
[表名]
([字段1])
values(N'字符串'),最好在字符串前指定
N

⑧ 数据库中的数据顺序怎么能根据自己的意图随意排序

数据的存储顺序和查出来后显示的顺序不同,看问题提出者的意思,是想改变数据的存储顺序。

可以充分利用主键,缺省的主键有聚簇索引特性,而聚簇索引的条目存放顺序与数据本身的存放顺序一致,充分利用这一点,改变主键或主键字段的取值,即可完成数据存储顺序的自编排。

例子中的id像是个常用的主键字段名,那么,修改某条记录的id值,无论是通过insert还是update,均已能够完成对应数据条目存储位置的变化。

如果想对根据任意字段实现存储顺序的自编排,恐怕是不行的,除非可以撤销表的原有主键,而将该字段设置为主键,但设为主键,就要求该字段的不可重复、不许为空等约束,而不是任意。

⑨ 数据库表排序规则是物理地址排序吗

展开全部
没有Order
by的时候。。或者排序的条件不是唯一的时候,是可能会出现排序随机的情况的。在oracle也是一样。。
至于没有order
by的时候是怎样的?要看数据库内部是实现方案了。

⑩ 什么是数据库字符集和排序规则

排序规则指定表示数据集中每个字符的位模式。
排序规则还决定用于数据排序和比较的规则。SQL
Server
2005
支持在单个数据库中存储具有不同排序规则的对象,即
SQL
Server
数据库中每列都可以有各自的排序规则。对于非
Unicode
列,排序规则设置指定数据的代码页,从而指定可以表示哪些字符。