数据库的查询方式
来源:互联网 发布:厂牌制作软件 编辑:程序博客网 时间:2024/06/11 03:36
数据库的查询方式
数据库的连接查询分为3种方式
- 内连接
- 外连接
- 左外连接
- 右外连接
- 全外连接
- 自然连接
内连接
内连接有三种表示方式:
1. 方言版(不一定适用于所有数据库)
select *from table1 t1, table2 t2where t1.column1=t2.column2;
上述代码会先将table1的每一行和table2的每一行进行笛卡尔积组合,然后将符合条件的行筛选出来。
2. 标准版
select *from table1 t1 inner join table2 t2on t1.column1=t2.column2;
上述代码会先将table1的每一行和table2的每一行进行笛卡尔积组合,然后将符合条件的行筛选出来。
3. 自然连接版
select *from table1 t1 natural join table2 t2;
上述代码会将table1和table2中所有共同属性列的值都相同的行进行组合并筛选出来。
其中natural join和natural inner join是一样的,因为自然连接默认就是内连接。
外连接
1. 左外连接
select *from table1 t1 left outer join table2 t2on t1.column1=t2.column2;
左表(即t1)是主表,每一行记录无论是否符合条件都会被查询出来。
右表(即t2)是从表,只有符合条件才能和主表记录连接。
若主表中的记录无法在从表中找到匹配,从表对应属性值为NULL。
2. 左外自然连接版
select *from table1 t1 natural left outer join table2 t2;
大致与左外连接相同,区别只在于筛选条件。左外连接需要on语句,左外自然连接没有on语句,左主右从,只有所有共同属性列的值都相同才能连接,否则为NULL。
3. 右外连接
select *from table1 t1 right outer join table2 t2on t1.column1=t2.column2;
右表(即t2)是主表,每一行记录无论是否符合条件都会被查询出来。
左表(即t1)是从表,只有符合条件才能和主表记录连接。
若主表中的记录无法在从表中找到匹配,从表对应属性值为NULL。
4. 右外自然连接版
select *from table1 t1 natural right outer join table2 t2;
大致与右外连接相同,区别只在于筛选条件。右外连接需要on语句,右外自然连接没有on语句,右主左从,只有所有共同属性列的值都相同才能连接,否则为NULL。
5. 全连接
select *from table1 t1 full outer join table2 t2on t1.column1=t2.column2;
返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的属性值为NULL。
相当于左外连接的结果表和右外连接的结果表用union连接。
(union将两个表连接后删除重复项,union all将两个表连接但不会删除重复项)
阅读全文
0 0
- 数据库的查询方式
- 数据库优化查询的几种方式
- 数据库相关:小结Hibernate的查询方式
- 查询不同数据库表前几条数据的方式
- 数据库之查询的连接方式
- ThinkPhp查询数据库的几种方式
- Hibernate查询数据库的三种方式
- Mongodb数据库查询NumberLong数据类型的方式
- yii的一些数据库查询方式(一)
- LINQ方式查询数据库
- mysql 查询以及修改表、数据库的编码方式(以及整个数据库的编码方式)
- Oracle数据库日期范围查询的两种实现方式
- Oracle数据库日期范围查询的两种实现方式
- JDBC 数据库的几种查询方式(一)
- JDBC 数据库的几种查询方式(二)
- MySQL中数据库、数据表、字段的字符集查询方式
- SQLiteOpenHelper类的简化操作数据库(api查询方式)
- 数据库查询 带参的两种方式
- 嵌入式应用编程经验之谈-IAP(在线升级)
- Linux+Nginx+php+sqlserver环境配置
- fastJson序列化和反序列化 中空字符串的处理
- HTML5中拖放Drag和drop的用法
- 快速求幂
- 数据库的查询方式
- yum
- 需要复习的:FFmpeg源代码简单分析:日志输出系统(av_log()等)
- 《简明Python教程》之模块
- 需要复习的:FFmpeg源代码简单分析:日志输出系统(av_log()等)
- linux shell 命令行输出风格
- ios知识点
- 初级阶段的Linux学习
- 简单的算法问题9——爬楼梯(动态规划)