简述Sql查询过程

 

目录

一、初始数据... 1

二、查询语句... 2

三、查询结果... 2

四、步骤... 2

五、按步骤分析... 3

1FROM JOIN.. 3

2ON.. 4

3LEFT OUTER. 4

4WHERE. 4

5GROUP BY. 4

6CUBEROLLUP. 5

7HAVING.. 5

8SELECT. 5

9DISTINCT. 5

10ORDER BY. 5

11TOP. 5

 

正文

一、初始数据

IF EXISTS(SELECT * FROM sysobjects s WHERE s.[name]='Customer' AND s.[type]='u')

DROP TABLE Customer

CREATE TABLE Customer(customerID NVARCHAR(50),city NVARCHAR(50))

GO

INSERT INTO Customer(customerID,city) VALUES('张三','北京')

INSERT INTO Customer(customerID,city) VALUES('李四','北京')

INSERT INTO Customer(customerID,city) VALUES('王五','北京')

INSERT INTO Customer(customerID,city) VALUES('赵六','西安')

 

IF EXISTS(SELECT * FROM sysobjects s WHERE s.[name]='Order' AND s.[type]='u')

DROP TABLE [Order]

CREATE TABLE [Order](orderID INT,customerID NVARCHAR(50))

GO

INSERT INTO [Order](orderID,customerID) VALUES(  1,'张三')

INSERT INTO [Order](orderID,customerID) VALUES(  2,'张三')

INSERT INTO [Order](orderID,customerID) VALUES(  3,'李四')

INSERT INTO [Order](orderID,customerID) VALUES(  4,'李四')

INSERT INTO [Order](orderID,customerID) VALUES(  5,'李四')

INSERT INTO [Order](orderID,customerID) VALUES(  6,'赵六')

INSERT INTO [Order](orderID,customerID) VALUES(  7, NULL)

 

customerID

City

张三

北京

李四

北京

王五

北京

赵六

西安

 

orderID

customerID

1

张三

2

张三

3

李四

4

李四

5

李四

6

赵六

7

NULL

二、查询语句

SELECT c.customerID,COUNT(o.orderID) cnt

FROM Customer c

LEFT OUTER JOIN [ORDER] o

ON c.customerID=o.customerID

WHERE c.city='北京'

GROUP BY c.customerID

HAVING COUNT(o.orderID)<3

ORDER BY c.customerID

三、查询结果

customerID

Cnt

王五

0

张三

2

四、步骤

1FROM JOIN

2ON

3LEFT OUTER

4WHERE

5GROUP BY

6CUBEROLLUP

7HAVING

8SELECT

9DISTINCT

10ORDER BY

11TOP

五、按步骤分析

1FROM JOIN

4*7=28行记录。

c.customerID

c.city

o.orderID

o.customerID

张三

北京

1

张三

张三

北京

2

张三

张三

北京

3

李四

张三

北京

4

李四

张三

北京

5

李四

张三

北京

6

赵六

张三

北京

7

NULL

李四

北京

1

张三

李四

北京

2

张三

李四

北京

3

李四

李四

北京

4

李四

李四

北京

5

李四

李四

北京

6

赵六

李四

北京

7

NULL

王五

北京

1

张三

王五

北京

2

张三

王五

北京

3

李四

王五

北京

4

李四

王五

北京

5

李四

王五

北京

6

赵六

王五

北京

7

NULL

赵六

西安

1

张三

赵六

西安

2

张三

赵六

西安

3

李四

赵六

西安

4

李四

赵六

西安

5

李四

赵六

西安

6

赵六

赵六

西安

7

NULL

2ON

6行记录。

c.customerID

c.city

o.orderID

o.customerID

张三

北京

1

张三

张三

北京

2

张三

李四

北京

3

李四

李四

北京

4

李四

李四

北京

5

李四

赵六

西安

6

赵六

3LEFT OUTER

7行记录。

c.customerID

c.city

o.orderID

o.customerID

张三

北京

1

张三

张三

北京

2

张三

李四

北京

3

李四

李四

北京

4

李四

李四

北京

5

李四

王五

北京

NULL

NULL

赵六

西安

6

赵六

4WHERE

6行记录。

c.customerID

c.city

o.orderID

o.customerID

张三

北京

1

张三

张三

北京

2

张三

李四

北京

3

李四

李四

北京

4

李四

李四

北京

5

李四

王五

北京

NULL

NULL

5GROUP BY

分组

 

 

 

c.customerID

c.customerID

c.city

o.orderID

o.customerID

张三

张三

北京

1

张三

 

张三

北京

2

张三

李四

李四

北京

3

李四

 

李四

北京

4

李四

 

李四

北京

5

李四

王五

王五

北京

NULL

NULL

6CUBEROLLUP

略。

7HAVING

分组

 

 

 

c.customerID

c.customerID

c.city

o.orderID

o.customerID

张三

张三

北京

1

张三

 

张三

北京

2

张三

王五

王五

北京

NULL

NULL

8SELECT

选取需要的字段。

9DISTINCT

若有重复,去除重复。

10ORDER BY

排序。

11TOP

TOP取记录数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值