SQL 注释 排序检索数据

1.使用注释
SQL语句是由DBMS处理的指令,如果你希望不进行处理和执行的文本,你就需要注释.
随着SQL语句变长,复杂度增加,你会想添加一些描述性的注释,供别人参考.
你也可以使用它注释代码,可以可以暂时停止要执行的代码.

2.列如
2.1注释使用–(l两个连字符)嵌在行内,-- 之后就是文本注释.描述create table语句中列.

SELECT couname   -- 这是一条注释
FROM course;

2.2在开头使用#,这一整行都将为注释,

#这是一条注释
SELECT couname   
FROM course;

2.3也可以进行多行注释
在这里插入图片描述

3.排序检索数据
使用select语句的ORDER BY子句,根据需要排序检索出的数据.

排序数据
SQL语句返回某个数据库表的单个列,但看输出,并没有特定的顺序

SELECT OrderID
FROM `order details`;

输出
在这里插入图片描述

检索的数据并不是随机显示的,如果不排序,数据一般将以它在底层表中出现的顺序显示,这有可能是数据最初添加到表中的顺序,但是,如果数据随后进行过更新或删除,那么这个顺序将会受到DBMS重用回收存储空间的方式影响,因此,如果不明确控制,则最终的结果不能依赖该排序顺序.
关系数据库认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义.

为了明确排序用SELECT语句检索出的数据,可以使用ORDER BY子句,ORDER BY子句取一个或多个列的名字,据此对输出进行排序.

对OrderID列以字母顺序排序数据的ORDER BY子句外,这语句与前面的语句相同.

SELECT OrderID
FROM `order details`
ORDER BY OrderID;

输出
在这里插入图片描述

ORDER BY子句的位置,在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条子句,如果它不是最后的子句,会报错.

通过非选择列进行排序
ORDER BY子句中使用的列将是为显示而选择的列,但是,实际上并不一定这样,用非检索的列排序数据是完全合法的.

4.按多个列排序
经常需要不止一个列进行数据排序.如果有张雇员表(首先按姓排序,然后在每个姓中再按名排序),如果多个雇员相同的姓,这样做很有帮助.

按多个列排序,简单指定列名,列名之间用逗号隔开(选择多个列那样).

SELECT OrderID,ProductID,Quantity
FROM `order details`
ORDER BY ProductID,Quantity;

输出
其中两个列对结果进行排序–首先按ProductID,在按Quantity排序.
在这里插入图片描述
重要的理解按多个列排序时,排序顺序完全按规定进行,对于上面来讲,仅在多个行具有相同的 ProductID值时才对产品按Quantity进行排序,如果ProductID所有的值都是唯一的,则不会按Quantity排序.

5.按列位置排序
这里输出与上面的查询相同,不同在于ORDER BY子句,SELECT清单中指定的是选择列的相对位置而不是列名.ORDER BY 2表示按SELECT清单的第二个列ProductID进行排序,ORDER BY 2,3表示先按ProductID,在按Quantity进行排序.
这里好处是不用重新输入列名,但是也有缺点,首先,不明确出列名有可能造成错用列名排序,其次,在对SELECT清单进行更改时容易错误地对数据进行排序(忘记对ORDER BY子句做相应的改动),最后,如果进行排序的列不在SELECT清单中,显然不能使用这些技术.
在这里插入图片描述

6.指定排序方向
数据排序不限于升序排序(从A到Z),这只是默认的排序顺序,还可以使用ORDER BY子句进行降序(从Z到A)排序,为了进行降序排序,必须指定DESC关键字.

下列以OrderID降序来排序产品(最贵的排在最前面)

SELECT OrderID,ProductID,Quantity
FROM `order details`
ORDER BY OrderID DESC;

在这里插入图片描述
如果打算用多个列排序,怎么办,下面列子以降序排序产品(最贵的在前面),在加上产品名;

SELECT OrderID,ProductID,Quantity
FROM `order details`
ORDER BY OrderID DESC, ProductID;

DESC关键字只应用到直接位于其前面的列名,在上列中,只对OrderID列指定DESC,对ProductID列不指定,因此,OrderID列以降序排序,而ProductID列任按标准升序排序.
在这里插入图片描述

想在多个列上降序排序
如果想在多个列上进行降序排序,必须对每一列指定DESC关键字.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章