在程序中,我们经常会习惯性的使用in和not in,在访问量比较小的时候是可以的,但是一旦数据量大了,我们就推荐使用not exists或者外连接来代替了。如果要实现一张表有而另外一张表没有的数据时,我们通常会这么写: select * from table t where t.id not in ...
分类:
其他好文 时间:
2019-12-07 21:14:56
阅读次数:
123
-- 交叉连接 笛卡尔积SELECT * from emp02 join dept;-- 内连接 找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。SELECT * from emp02 join dept on emp02.did=dept.did;SELECT * ...
分类:
其他好文 时间:
2019-12-03 20:02:11
阅读次数:
87
记忆思路:SQL的DQL语言select查询命令。from从哪个表中where以什么条件select查询哪些列,orderby是否基于某字段排序,limit#输出多少行。一、单表查询1.常用查询语法:SELECT输出显示字段FROM表名无条件查询语法:SELECT指定输出的列FROM表名;限制输出语法:SELECT指定输出的列FROM表名LIMIT显示记录数;条件查询语法:SELECT指定输出的列
分类:
数据库 时间:
2019-12-01 21:09:22
阅读次数:
145
我们看看 TiDB 一段代码的实现 左外连接(Left Out Join)的消除; select 的优化一般是这样的过程: 在逻辑执行计划的优化阶段, 会有很多关系代数的规则, 需要将逻辑执行计划(LogicalPlan)树应用到各个规则中, 尝试进行优化改写; 我们看看其中的一条优化规则: out ...
分类:
数据库 时间:
2019-11-24 17:36:47
阅读次数:
97
连接查询:又分为内连接查询、外连接查询。 内连接查询:只有满足条件的数据才会显示 例如:查询emp 和 dept 两张表,emp 表中有一条数据没有部门编号 deptno,经过where的条件 emp.deptno=dept.deptno 筛选之后,没有部门编号的数据就不会显示出来。 select ...
分类:
其他好文 时间:
2019-11-24 13:29:30
阅读次数:
82
Mysql连接查询(俗称连表查询) 分为内连接,外连接,自然连接 测试数据如下: create table student(id int primary key auto_increment,name varchar(10)); insert into student values(null,'xi ...
分类:
数据库 时间:
2019-11-22 13:58:53
阅读次数:
68
mysql的连接语法: select 查询列表 rom 表1 别名 连接类型 join 表2 别名 on 连接条件 where 筛选条件 group by 分组 having 筛选条件 order by 排序列表这里用的都是sql99语法按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接: ...
分类:
数据库 时间:
2019-11-16 00:12:33
阅读次数:
183
MySQL多表查询 一、准备 建表与数据准备: 二、多表连接查询 重点: 外链接语法 2.1 交叉连接 不适用任何匹配条件。生成笛卡尔积 2.2 内连接 只连接匹配的行 2.3 外链接之左连接 优先显示左表全部记录 2.4 外链接之右连接 优先显示右表全部记录 2.5 全外连接 显示左右两个表全部记 ...
分类:
数据库 时间:
2019-11-13 21:54:53
阅读次数:
99
说到范式,经常碰到的一个说法就是,数据库设计满足第三范式就可以了,足够了。这个说法有时给人一种暗示,满足更高的范式是件复杂的事情,或至少是件繁琐的事情,没必要。 但实际上,很多模型一旦满足了第三范式,往往也已经满足了更高的范式。一些以第三范式为标准设计的库,很可能也已满足第四甚至第五范式,尽管它称呼 ...
分类:
其他好文 时间:
2019-11-07 23:17:28
阅读次数:
124
楼主在做一个智慧工地的产品,需要对工人进行一些数据统计,比如要统计导入人员数量小于30的工地,SQL应该怎么写呢? 首先了解一下数据结构,工地分三张表,四级层级关系,Organization表存储区域、城市两级,Projects表存储项目,Stages表存储分期;还有一个worker表存储人员。这4 ...
分类:
数据库 时间:
2019-11-01 13:14:08
阅读次数:
131