SQL语句 第三节:排序检索数据

第三节:排序检索数据
3.1 单个列的排序
上面一章说了检索数据,也提了一下排序检索数据,我们需要他们的灵活是使用,来完成我们需求,包括后面的条件,连表查询等。
其实,检索的数据的显示并不是纯粹的随机显示。如果不排序,它会从他的底层的检索出来的顺序进行显示,还可以是数据当初添加到表中的数据。但是数据经过后面的删除和更新,则此顺序将受到DBMS重用回收内存空间的影响。因此,如果不明确控制的话,不能依赖该排序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。

            子句(clause)  SQL语句有子句构成,有些子句是必须的,而有些是可选的。一个子句通常是由一个关键字加上所提供的数据组成。子句的例子有SELECT语句和FROM子句。
            为了明确地排序用SELECT语句检索出数据,可使用ORDER BY 子句。ORDER BY 子句取一个或多个列的名字。根据子句进行排序。
        格式;
            SELECT * FROM table_name ORDER BY prod_name;
        分析:
            这条SQL语句会根据prod_name 列以字母顺序进行排序,如果是数据类型, 是按照数据的大小进行排序的
        注意:1.ORDER BY 子句的位置只能在子句的最后面,该语句次序不对将会出现错误信息
              2.通过非选择器进行排序   通常ORDER BY子句中指定使用的列是为显示所选择的列,也就是必须查出来。

    3.2 多个列的排序
        理论:其实在我们工作中,有时候会出现这中情况,我们进行显示雇员的名单的时候,我们要先根据姓去排序,但是公司里面很多是同一个姓的人,在这个时候,我就在根据名去排序,对于这中情况,我们需要对多个表进行排序
        我们为了实现这中排序,我们需要多个排序多个列名,列名与列名之间用逗号去隔开
        格式:
            SELECT * FROM table_name ORDER BY prod_price,prod_name;
        分析:
            这条SQL语句表示,我们先根据prod_price 进行排序,然后在根据prod_name 进行排序;
        注意:对于多个列的排序,对于prod_name 进行排序的话,只能是prod_price排序的时候,有数据相同的时候,才会执行后面的排序,如果没有,这prod_name 则不进行排序
    3.3 按照指定位置进行排序
        除了能用列名进行排序外,我们的ORDER BY 还支持相对列位置进行排序
        格式:
            SELECT * FROM table_name ORDER BY 2,4;
        分析:
            上面的语句表示,ORDER BY 2,4 指定是列名的相对位置而不是列名,ORDER BY 表示按照SELECT清单中的第二个列进行排序;ORDER BY 2,4 表示先按照第二列进行排序,然后相同的在按照第四列进行排序。
        注意:1.这样的技术好处在与不写列名.
              2.但是缺点比较明显,那就是后面增加了列名和指定错误的列名,当进行更改的时容易错误地数据库进行排序(忘记对ORDER BY 语句的改动)
    3.4 指定排序顺序
        上面排序的时候没有写方向,也就是升序,(A-->Z),这就是默认的排序的方式(ASC),当我们没有写排序方向时候,就会按照升序进行排序;但是里面还有一种排序方式那就是降序(Z-->A) 必须用DESC去表明,去指定

        格式:
            SELECT * FROM table_name ORDER BY prod_name DESC;

        分析:
            上面的SQL就会根据prod_name 的降序进行排序;
        注意:
            1.如果多个列进行排序,并且按照不同的排序方式进行排序,这个时候我们需要在不通的列名进行指定排序方式
            2.区分大小写和排序顺序
                a和A相同吗?a在B前面还是在Z后面?这个问题你是否想过,其实这个答案是基于数据库管理员进行设置,
                在字典中,a和A是相同的,简单的ORDER BY 是无法改变这中情况的,必须联系DBMS数据库管理员进行改变
发布了23 篇原创文章 · 获赞 23 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/xiaojiang_520/article/details/56967689