之前听大佬说过,会学习的人将资料写下来,不会学习的人妄想将资料记到脑子里,我觉得还是有一定道理的,好记性不如烂笔头。以此篇博客记录我在实际开发中常用到的sql语句,方便以后查看。
相信很多用过sql的人,谈到sql语句第一时间想到的就是:select * form 表名 where 条件,这是最基本的查询,下面我将简单介绍SQL语句的执行顺序开始介绍。
sql执行顺序
(1)from
(3) join
(2) on
(4) where
(5)group by(开始使用select中的别名,后面的语句中都可以使用)
(6) avg,sum…
(7)having
(8) select
(9) distinct
(10) order by
更加详细的信息请访问
https://www.cnblogs.com/yuanshuo/p/11549251.html
我觉得总结的很好,很推荐看一下。
新建一个测试表,方便后面进行演示。
create table Test_S
(
Id int not null identity (1,1), --主鍵,自增+1
Name nvarchar(100) not null,
mathematics int,
physical int
)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('A', 85,75)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('B', 95,85)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('C', 85,65)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('D', 75,75)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('E', 80,80)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('F', 70,70)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('G', 85,70)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('H', 80,75)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('J', 80,NULL)
- 先介绍count()的常见用法
select count(*) Num from [KM(Test)].[dbo].[Test_S]
效果:count(*)直接就是把所有的数据统计数量(结果如下图)
select count(physical) Num, count(mathematics) Num2 from [KM(Test)].[dbo].[Test_S]
效果:count(栏位) 会忽略null的数据统计数量(结果如下图)
select count(distinct mathematics) num from [KM(Test)].[dbo].[Test_S]
效果:count(distinct 栏位) 会忽略重复的数据统计非重复数据数量(结果如下图)
select count(case when mathematics = 85 then '1' end) num from [KM(Test)].[dbo].[Test_S]
效果:count(case when 栏位= 条件 then ‘1’ end) 会统计查询条件的数量(结果如下图)
select mathematics,count(mathematics) Num from [KM(Test)].[dbo].[Test_S] group by mathematics
效果:count(1)与group by 连用可以统计每个非重复数据的重复数量(结果如下图)
select count(1) Num from (select mathematics,count(mathematics) Num from [KM(Test)].[dbo].[Test_S] group by mathematics)S
效果:count(1)与group by 连用再用子查询方式进行统计可以和count(distinct 栏位)达到一样的效果,统计非重复的数据的个数(结果如下图)
目前我常用的基本就这些,后续有其他用法我会更新,欢迎评论其他常用用法。