sql数据库和oracle数据库 string类型字段用orderby排序 分别是根据什么排序的啊

sql数据库和oracle数据库 string类型字段用orderby排序 分别是根据什么排序的啊,第1张

首先说明下oracle中没有String类型,而是Varchar类型。order by 的顺序是assic(读作:阿斯科马)码表中”字符“列进行排序的。

解释:一般会根据字符串的首字母:大些字母>小写字母>特殊字符>数字。如果首位相同继续排列第二位,直到不同的位。

本文介绍MySQL数据库中执行select查询语句,并对查询的结果使用order

by

子句进行排序。

再来回顾一下SQL语句中的select语句的语法:

Select

语句的基本语法:

Select

<列的集合>

from

<表名>

where

<条件>

order

by

<排序字段和方式>

如果要对查询结果按某个字段排序,则要使用order

by

子句,如下:

select

from

<表名>

order

by

<字段名称>

<排序方式>

下面来看两个例子,第一个查询test表中所有数据,并按t_id正序排列;第二个查询与第一个相反,是逆序排列。

mysql>

select

t_id,t_name

from

test

order

by

t_id;

+------+--------+

|

t_id

|

t_name

|

+------+--------+

|

1

|

name1

|

|

2

|

name2

|

+------+--------+

2

rows

in

set

(000

sec)

mysql>

select

t_id,t_name

from

test

order

by

t_id

desc;

+------+--------+

|

t_id

|

t_name

|

+------+--------+

|

2

|

name2

|

|

1

|

name1

|

+------+--------+

2

rows

in

set

(000

sec)

注意:正序排序时,可以使用asc作为排序方式的关键词,也可以不使用。逆序时,一定要使用desc作为关键词。

关于MySQL中select语句使用order按行排序,本文就介绍这么多,希望对大家有所帮助,谢谢!

插入的时候不存在新增的行在末尾这一说法,不过mysql的myisam引擎貌似可以控制在行尾插入,oracle不带这种功能。。

数据库是以文件形式存储在文件系统中,不存在像堆积木一样,一行行堆上去。。 只能说查询出来的内容可以排序。。

数据表根据字段不同排序方式也不同啊。带索引的字段本身就是有序的,是通过一个具有线索的B+树存放的。其中相关索引(聚合索引)排序最快,因为每个元组的数据都是和它关联的。非索引字段排序是很慢的,要用到堆排序和,锦标赛算法和归并等等,不会用快速排序,因为快排不稳定,而且不能动态规划,必须一次排完,堆排可以只找最大(或最小)的n条记录。

排序的命令是sort,格式是:

SORT TO 新表名 ON 字段名

补充:

例如下面的命令:

use 学生

sort on 学号 to 学生_排序

产生一个新的 学生_排序DBF 文件,里面是排序了的。

如果你只是向按照某个标准进行排序查看一下,不生成新的文件,那么可以使用SQL语句,例如:

SELECT FROM 学生 ORDER BY 总成绩 DESC

假定MySQL服务器和PHP服务器都已经按照最适合的方式来配置,那么系统的可伸缩性(Scalability)和用户感知性能(User-perceived

Performance)是我们追求的主要目标。在实际运行中,MYSQL

中数据往往以

HASH

tables、BTREE

等方式存贮于内存, *** 作速度很快;同时INDEX

已经进行了一些预排序;很多应用中,MySQL

排序是首选。

PHP与MySQL相比具有如下优势:

1、考虑整个网站的可伸缩性和整体性能,在应用层(PHP)中排序明显会降低数据库的负载,从而提升整个网站的扩展能力。而数据库的排序,实际上成本是非常高的,消耗内存、CPU,如果并发的排序很多,DB

很容易到瓶颈。

2、如果在应用层(PHP)和MYSQL之间还存在数据中间层,合理利用,PHP会有更好的收益。

3、PHP在内存中的数据结构专门针对具体应用来设计,比数据库更为简洁、高效;

4、PHP不用考虑数据灾难恢复问题,可以减少这部分的 *** 作损耗;

5、PHP不存在表的锁定问题;

6、MySQL中排序,请求和结果返回还需要通过网络连接来进行,而PHP中排序之后就可以直接返回了,减少了网络IO。

至于执行速度,差异应该不会很大,除非应用设计有问题,造成大量不必要的网络IO。另外,应用层要注意PHP

Cache

设置,如果超出会报告内部错误;此时要根据应用做好评估,或者调整Cache。具体选择,将取决于具体的应用。

列出一些PHP中执行排序更优的情况:

1、数据源不在MySQL

中,存在硬盘、内存或者来自网络的请求等;

2、数据存在

MySQL

中,量不大,而且没有相应的索引,此时把数据取出来用PHP排序更快;

3、数据源来自于多个MySQL

服务器,此时从多个

MySQL

中取出数据,然后在PHP中排序更快;

4、除了MySQL

之外,存在其他数据源,比如硬盘、内存或者来自网络的请求等,此时不适合把这些数据存入MySQL

后再排序;

列出一些必须在MySQL中排序的实例:

1、MySQL中已经存在这个排序的索引;

2、MySQL中数据量较大,而结果集需要其中很小的一个子集;比如

1000000

行数据,取TOP

10;

3、对于一次排序、多次调用的情况,比如统计聚合的情形,可以提供给不同的服务使用,那么在MySQL

中排序是首选的。另外,对于数据深度挖掘,通常做法是在应用层做完排序等复杂 *** 作,把结果存入MySQL即可,便于多次使用。

4、不论数据源来自哪里,当数据量大到一定的规模后,由于占用内存/Cache

的关系,不再适合PHP中排序了;此时把数据复制、导入或者存在MySQL

,并用INDEX

优化,是优于PHP

的。不过,用

Java,甚至

C++

来处理这类 *** 作会更好。

有些类似大数据集聚合或者汇总的数据,在客户端排序得不偿失。当然,也有用类似搜索引擎的思路来解决类似应用的情况。

从网站整体考虑,就必须加入人力和成本的考虑。假如网站规模和负载较小,而人力有限(人数和能力都可能有限),此时在应用层(PHP)做排序要做不少开发和调试工作,耗费时间,得不偿失;不如在DB

中处理,简单快速。对于大规模的网站,电力、服务器的费用很高,在系统架构上精打细算,可以节约大量的费用,是公司持续发展之必要;此时如果能在应用层(PHP)

进行排序并满足业务需求,尽量在应用层进行。

关于PHP中执行排序与MySQL中执行排序的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

1、以日期进行排序

select

Rownum

"ID"

,

日期

,

金额,

商品

From

(select

日期,金额,商品

from

order

by

日期)

2、在排序后要求数据库中内容发生变化,如果不是考试的话是没人故意这么玩的。

任何对于数据的ID字段进行手工变动都是愚蠢而白痴的行为。

让然如果是老师故意考你们的话,可以用下面这个简单方法。

①建立临时表,使id字段为自增字段

create

table

tableName

(

id

INT(20)

not

null

AUTO_INCREMENT,

--自增属性

日期

char(20)

not

null,

金额

char(5)

not

null,

商品

char(2)

not

null

);

②将排好的数据插入新建的临时表

Insert

into

tableName(日期,金额,商品)

select

日期,金额,商品

from

原始表

order

by

日期

③将原表改成其他名,并将第二步建的中间表改名为原表名

alter

table

表1

rename

to

表2

我手头没有mysql只能按印象写出代码,你拿去试一下吧。

我印象中mysql对pl的支持不好,所以只给出了用sql语句的方案,你参考下吧。

以上就是关于sql数据库和oracle数据库 string类型字段用orderby排序 分别是根据什么排序的啊全部的内容,包括:sql数据库和oracle数据库 string类型字段用orderby排序 分别是根据什么排序的啊、MySQL中select语句使用order按行排序、SQL数据库怎么排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10192345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存