SQL语句理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0
请问如何理解,为什么 可以在B表中 排除A表的数据 展开
id 姓名 性别
00 aa 女
01 bb 女
02 cc 女
B表
id 姓名 性别
00 aa 女
02 cc 女
03 dd 男
select * from B是执行B表,
当执行id=‘00’时 ,因为select count(1) as num from A where A.ID = B.ID 不等于0 所以运行结果没有第一行id=‘00’,
当执行id=‘02’时,因为select count(1) as num from A where A.ID = B.ID 不等于0 所以运行结果没有第二行id=‘02’,
当执行id= ‘03’时,因为select count(1) as num from A where A.ID = B.ID 的结果等于0 ,符合条件,所以运行结果会有第三行。
运行结果为:
id 姓名 性别
03 dd 男
所以:可以在B表中 排除A表的数据。
就是统计B表和A表用ID连接的行数,子查询的行数=0,就可以实现从B表中排除A表数据。
一、SQL语句简介:SQL 全名是结构化查询语言(Structured Query Language),是用于数据库中的标准数据查询语言,IBM 公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会(ANSI) 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对 SQL 规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
二、SQL功能:
1、数据定义功能:SQL的数据定义功能通过数据定义语言(Data Definition Language,DDL)实现,他用来定义数据库的逻辑结构,包括定义基表、视图和索引。基本的DDL包括三类,即定义、修改和删除,分别对应CREATE、ALTER和DROP三条语句。
2、 数据查询功能:SQL的数据查询功能通过数据查询语言(Data Query Language,DQL)实现,它用来对数据库中的各种数据对象进行查询,虽然近包括查询一种操作(SELECT语句),但在SQL语言中,它是使用频率最高的语句。查询语句可以有讯多自救组成,使用不同的语句便可以进行查询、统计、分组、排序等操作,从而实现选择、投影和连接等运算功能,以获得用户所需的数据信息。
3、 数据操作功能:SQL的数据操纵功能通过数据操作语句(Data Manipulation Language,DML)实现,它用于改变数据库中的数据,数据更新包括插入、删除和修改三种操作,分别对应INSERT、DELETE和UPDATE三条语句。
4、数据控制功能:数据库的控制值数据库的安全性和完整性控制。SQL的数据控制功能通过数据控制语言(Data Control Language,DCL)实现,它包括对基表和视图的授权、完整性规则的描述以及事物开始和结束等控制语句。
就是统计B表和A表用ID连接的行数
子查询的行数=0,就可以实现从B表中排除A表数据
子查询只是把计数传过去啊 主查询如何得知具体数据行?
nono,
这么看:
select * from B where ?= 0
where中条件其实是,什么等于0?
代入
(select count(1) as num from A where A.ID = B.ID)
就是A和B通过ID连接后,COUNT(*)计数=0