C# 数据库查询语句1
作者:陈钰桃
撰写时间:2022年3月27日
第1节. 查询数据
数据库表是存储数据库中所有数据的对象。 在表中,数据按行和列格式逻辑组织,类似于电子表格(Excel)。在表中,每行代表一个唯一记录,每列代表记录中的一个字段。
要从表中查询数据,请使用 SELECT 语句。 以下是 SELECT 语句的最基本形式:
SELECT select_list
FROM schema_name.table_name;
在上面语法中,
首先, select_list 指定要在 SELECT 子句中查询数据的逗号分隔列的列表。
其次, schema_name.table_name 是在 FROM 子句中指定源表及其模式名称。
处理SELECT语句时,SQL Server首先处理 FROM 子句,然后处理 SELECT 子句,即使SELECT子句首先出现在查询中也是一样。
第2节. 对数据进行排序
使用 SELECT 语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未指定行顺序的结果集。
保证结果集中的行已排序的方法是使用 ORER BY 子句。 以下是 ORDER BY 子句的语法:
(如果同时出现中文与英文,先排序英文然后再根据中文拼音首字母排序)
select * from[sales].[customers]
order by first_name
在上面语法中,
first_name - 指定要对查询结果集进行排序的列名或表达式。 如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。 ORDER BY 子句中出现的列必须对应于选择列表中的列或 FROM 子句中指定的表中定义的列。
ASC | DESC - 使用 ASC 或 DESC 指定是否应按升序或降序对指定列中的值进行排序。 ASC 将结果从最低值排序到最高值,而 DESC 将结果集从最高值排序到最低值。如果未明确指定 ASC 或DESC ,则SQL Server将默认使用 ASC 来排序顺序。 此外,SQL Server将 NULL 视为最低值。
处理具有 ORDER BY 子句的 SELECT 语句时, ORDER BY 子句是要处理的最后一个子句。
- 按升序对结果集进行排序 将结果从最低值排序到最高值
select * from [sales].[customers]
order by customer_id asc
2.按降序对结果集按一列排序DESC 将结果集从最高值排序到最低值
select * from [sales].[customers]
order by customer_id desc;
3.按多列对结果集进行排序(以下语句检索客户的名字,姓氏和城市。 它首先按城市对客户列表进行排序,然后按名字排序)。
select city, first_name, last_name
from sales.customers
order by city, first_name;
-
按多列和不同顺序对结果集进行排序(以下语句按城市按降序对客户进行排序,之后按第一个名称按升序对排序结果进行排序)。
select * from [sales].[customers]
order by city desc,first_name
-
按不在选择列表中的列对结果集进行排序,请注意, state 列在 customers 表中定义。 如果不是,那么查询将无效。
可以通过选择列表中未显示的列对结果集进行排序。 例如,以下语句按 state 对客户进行排序,即使state 列未显示在选择列表中
select city, first_name, last_name
from sales.customers
order by state;
-
按表达式对结果集进行排序
select city,first_name from [sales].[customers]
order by city desc,len(first_name)
-
按列的序数位置排序
SQL Server允许根据选择列表中显示的列的序号位置对结果集进行排序。
select city,first_name from [sales].[customers]
order by 1,2