SQL Server的一些基本用法

1.标准查询语句:
SELECT 表名.字段 FROM 表名 WHERE 条件

2.排序:
ORDER BY 字段1, 字段2… ASC | DESC (升序|降序)
(也可以按列的序号排序,ORDER BY 2,–表示按当前查询语句SELECT后的第2个字段排序)

3.限制返回行:
(1)SELECT TOP 返回行数 PERCENT [WITH TIES] FROM 表名 ORDER BY 字段名;
– 注:由于存储在表中的行的顺序是不可预测的,因此 SELECT TOP 语句始终与 ORDER BY 子句一起使用。 结果集限于前 N 个有序行数。
PERCENT :返回行的百分比行。例如查出有543行则它的百分之一是5.43,SQL Server将其进到下一个整数,在这种情况下会返回6行数据。
WITH TIES :返回了前n条数据且返回最后与一行中的值匹配的行。
(2)ORDER BY 字段名
OFFSET [常量|变量|标量] ROWS
FETCH NEXT [常量|变量|标量] ROWS ONLY
– 注:OFFSET 和 FETCH 子句是 ORDER BY 子句的选项。 它们用于限制查询返回的行数。必须将 OFFSET 和 FETCH 子句与 ORDER BY 子句一起使用
OFFSET:子句指定在开始从查询返回行之前要跳过的行数。
FETCH: 子句指定在处理 OFFSET 子句后要返回的行数。
在这里插入图片描述

4.过滤数据:
(1)DISTINCT: 去重;检索指定列列表中的唯一不同值,换句话说,它从结果集中删除列中的重复值。(它将所有 NULL 值视为相同的值)
(2)WHERE:条件;要从表中获取满足一行或多个条件的行。
– AND:同时满足;查找满足两个条件的行。
– OR:满足任一;查找满足任意一个条件的行。两者同时使用时,SQL Server首先评估 AND 运算符。不过,也可以使用括号更改评估顺序。
– BETWEEN:逻辑运算符,查找两个值之间的值的行。例:BETWEEN 10 AND 20 (查找10到20之间的值)

例如:查询成绩表SC中学生成绩在60到80分之间的学生学号,课程和成绩,按成绩从升序排序
在这里插入图片描述

– IN:逻辑运算符,查找值列表中具有值的行。例:字段 IN (n1,n2)等效于:字段= n1 OR字段= n2。
– LIKE:查找包含指定字符串的行。

通配符:
(1)%(百分比):LIKE ‘a%’ (查找以a开头的字段对应的行)
(2)_(下划线):下划线代表单个字符。
(3)[单词列表] :例,LIKE ‘[as]%’:查找以a或者以s开头的字段对应的行(它里面的单词对大小写不敏感)
(4)[ a-z ] : 表示必须在指定范围内的单个字符。例如[a-z]
(5)^ : 非,表示不在指定范围或字符列表中的单个字符。例:[^ABC]
(6)as 别名 : 为表或表中的列提供临时名称。

5.连接表
(1)内连接:SELECT 表名.字段 FROM 表1 INNER JOIN 表2 ON 表1.字段=表2.字段;
(2)左连接:SELECT 表名.字段 FROM 表1 LEFT JOIN 表2 ON 表1.字段=表2.字段;
(3)右连接:SELECT 表名.字段 FROM 表1 RIGHT JOIN 表2 ON 表1.字段=表2.字段;
内连接: 左连接: 右连接:
在这里插入图片描述

–还有交叉连接、自连接和全外连接,交叉连接不会在连接的表之间建立关系,会返回两个表中行的笛卡尔积。自联接用于将表连接到自身(同一个表)。它对于查询分层数据或比较同一个表中的行很有用。(同一个查询里自连接要取别名,不然会报错)。全外连接(FULL OUTER JOIN)当左表或右表中存在匹配项时,该命令将返回所有行。

6.分组
(1)GROUP BY 子句
SELECT表1.列名1 FROM 表1 GROUP BY 列名1,列名2,…;
–通过列1,列2,… 对表1进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。GROUP BY 子句通常与聚合函数一起用于统计数据。返回每组的统计量。常见的聚合函数:
SUM():返回总数量。AVG():返回平均值。
MIN():返回最小值。MAX():返回最大值。
(2)HAVING 子句
HAVING 子句通常与[GROUP BY]子句一起使用,以根据指定的条件列表过滤分组。
SELECT表1.列名1 FROM 表1 GROUP BY 列名1,列名2,… HAVING 条件 ;
例如:查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值