数据库的查询与排序

时间:2024-10-09 07:50:37
一、查询数据
1、数据库表是存储数据库中所有数据的对象。 在表中,数据按行和列格式逻辑组织,类似于电子表格。在表中,每行代表一个唯一记录,每列代表记录中的一个字段
2、SQL Server使用模式对表和其他数据库对象进行逻辑分组。有两个 模式: sales 和 production 。 sales 模式将所有与销售相关的表分组,而 production 模式将所有与 生产相关的表分组
3、要从表中查询数据,使用最基本的SELECT语句,以下实例:
Select select_list from schema_name.table_name;
在上面的语法中:
首先,select_list 指定要在 SELECT 子句中查询数据的逗号分隔列的列表。
其次, schema_name.table_name 是在 FROM 子句中指定源表及其模式名称
4、处理select语句时,SQL SERVER首先处理 FROM 子句,然后处理 SELECT 子句,即使select子句首先出 现在查询中也是一样。
二、对数据进行排序
1、使用 SELECT 语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未 指定行顺序的结果集。
2、保证结果集中的行已排序的方法是使用 ORER BY 子句。 以下是 ORDER BY 子句的语法:
Select 表的字段 from 表的名称 ORDER BY column_name | expression asc|desc
在上面的语句中:
(1)column_name | expression - 指定要对查询结果集进行排序的列名或表达式。 如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。 ORDER BY 子句中出现
的列必须对应于选择列表中的列或 FROM 子句中指定的表中定义的列。
(2)ASC | DESC - 使用 ASC 或 DESC 指定是否应按升序或降序对指定列中的值进行排序。 ASC 将结果从最低值排序到最高值,而 DESC 将结果集从最高值排序到最低值。如果未明确指定 ASC 或 DESC ,则SQL Server将默认使用 ASC 来排序顺序。 此外,SQL Server将 NULL 视为最低值
3、处理具有 ORDER BY 子句的 SELECT 语句时, ORDER BY 子句是要处理的最后一个子句
4、对升序结果进行排序,可以省略ASC,如下:
SELECT first_name, last_name FROM ORDER BY first_name;
5、按降序对结果集按一列排序 ,如下:
SELECT firstname, lastname FROM ORDER BY first_name DESC;
6、按多列对结果集进行排序
SELECTcity, first_name, last_name ORDER BY city, first_name;
7、按多列和不同顺序对结果集进行排序
SELECT city, first_name, last_name ORDER BY city DESC, first_name ASC;
8、按表达式对结果集进行排序
LEN() 函数返回字符串的字符数。 以下语句使用 ORDER BY 子句中的 LEN() 函数来检索按名字长度排序客户列表。
SELECT
first_name,
last_name,
LEN(first_name) as len_name
FROM

ORDER BY
LEN(first_name) DESC;
9、按不在选择列表中的列对结果集进行排序,请注意, state 列在 customers 表中定义。 如果不是,
那么查询将无效。
可以通过选择列表中未显示的列对结果集进行排序。 例如,以下语句按 state 对客户进行排序,即使
state 列未显示在选择列表中。
SELECT
city,
first_name,
last_name
FROM

ORDER BY
state;
9、按列的序数位置排序
SQL Sever允许根据选择列表中显示的列的序号位置对结果集进行排序。
以下语句按名字和姓氏对客户进行排序。 但是它没有显式指定列名,而是使用列的序号位置:
SELECT
first_name,
last_name
FROM

ORDER BY 1,2;