MySQL学习记录(多表连接查询+演示分析)七 DML
来源:互联网 发布:淘宝最新搜索排名规则 编辑:程序博客网 时间:2024/06/11 04:15
这章关键字:
CROSS JOIN 交叉连接
INNER JOIN ON 内连接
LEFT JOIN ON 左连接
RIGHT JOIN ON 右连接
#先建一个表 用以测试下面语法
CREATE TABLE tb_course(id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(18),
pid INT
)
#插入表数据
INSERT INTO tb_course(NAME,pid) VALUES('java',NULL);
INSERT INTO tb_course(NAME,pid) VALUES('javaSE',1);
INSERT INTO tb_course(NAME,pid) VALUES('javaEE',2);
INSERT INTO tb_course(NAME,pid) VALUES('openSource',NULL);
INSERT INTO tb_course(NAME,pid) VALUES('struts',4);
INSERT INTO tb_course(NAME,pid) VALUES('hibernate',4);
INSERT INTO tb_course(NAME,pid) VALUES('spring',4);
INSERT INTO tb_course(NAME,pid) VALUES('webwork',4);
INSERT INTO tb_course(NAME,pid) VALUES('database',NULL);
INSERT INTO tb_course(NAME,pid) VALUES('oracle',9);
INSERT INTO tb_course(NAME,pid) VALUES('db2',9);
INSERT INTO tb_course(NAME,pid) VALUES('mysql',9);
INSERT INTO tb_course(NAME,pid) VALUES('SQLServer',9);
#交叉连接
SELECT COUNT(*) FROM tb_emp; #16
SELECT COUNT(*) FROM tb_dept; #4
SELECT * FROM tb_emp,tb_dept #64=16*4
SELECT * FROM tb_emp CROSS JOIN tb_dept; #标准交叉连接写法
#内连接 连接条件就是主外键关联
SELECT * FROM tb_emp e,tb_dept d WHERE e.DEPTNO = d.DEPTNO
SELECT * FROM tb_dept INNER JOIN tb_emp #标准内连接写法
ON tb_dept.DEPTNO = tb_emp.DEPTNO
#在外连接中,某些不满足条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一个表的行
#左外连接
#tb_dept做主表,左边的表为主表,左边的表记录全部显示,如果没找到记录则补null.
SELECT * FROM tb_dept LEFT JOIN tb_emp
ON tb_dept.DEPTNO = tb_emp.DEPTNO
#oracle语法,左连接加号在右边
SELECT * FROM tb_emp e,tb_dept d WHERE e.DEPTNO = d.DEPTNO(+)
#右外连接 (右表做主表)
SELECT * FROM tb_dept RIGHT JOIN tb_emp
ON tb_dept.DEPTNO = tb_emp.DEPTNO
#自连接
SELECT c.name '类别名',c2.name '父亲别名'
FROM tb_course c LEFT JOIN tb_course c2
ON c.pid=c2.id
SELECT c.name '类别名',c2.name '父亲别名'
FROM tb_course c, tb_course c2
WHERE c.pid=c2.id
www.java1234.com
- MySQL学习记录(多表连接查询+演示分析)七 DML
- MySQL学习记录(简单查询+演示分析)五 DML
- MySQL学习记录(子查询+演示分析)八 DML
- MySQL学习记录(插入+删除+演示分析)四 DML
- MySQL学习记录(常用函数+演示分析)六 DML
- MySQL学习记录(索引+演示分析)九 DML
- MySQL学习记录(视图+演示分析)十 DML
- MySQL学习记录(简介+语法+演示分析)一
- MySQL学习记录(约束+语法+演示分析)三
- SpringBoot 学习记录(七)- 连接Mysql数据库
- mysql学习笔记之七(数据操作语言DML)
- Mysql数据库学习 (七) Mysql 查询
- MySQL学习笔记(七)查找记录
- MySQl 子查询,左右连接,多表连接学习笔记
- MyBatis数据持久化(七)多表连接查询
- Oracle数据库学习——数据操纵语言(DML)之连接查询
- mysql数据库 sql语句学习笔记03 查询 聚合 表连接 记录联合
- MySQL学习笔记(二):内连接和外连接实现多表查询
- 编译kernel是的no machine record defined 错误
- 词干提取(stemming)和词形还原(lemmatization)
- 需要写作是因为缺乏思考
- iOS7新特征汇总[02]新特征介绍2
- 关于oracle managed file 的一点理解
- MySQL学习记录(多表连接查询+演示分析)七 DML
- 让多个div显示在一行(浮动的div)
- C++中的std
- c#经典编程实例(四窗体应用程序)
- iOS7新特征汇总[01]新特征介绍1
- UVa 10285 - Longest Run on a Snowboard
- 查询sqlserver表锁
- Handling IRPs: Definition 1: IRP as a Container for an I/O Request
- 参考网址