数据库——连接查询
2021/9/26 19:11:25
本文主要是介绍数据库——连接查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
创建副表
CREATE TABLE emp01(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(10),
esex CHAR(5),
did INT,
CONSTRAINT fk_emp01_dept01 FOREIGN KEY(did) REFERENCES dept01(did) -- 外键约束
)
新增数据
INSERT INTO dept01(dname,mgr) VALUES('开发部','tom');
INSERT INTO dept01(dname,mgr) VALUES('测试部','jerry');
INSERT INTO emp01(ename,esex,did) VALUES('小红帽','女',3);
INSERT INTO emp01(ename,esex,did) VALUES('大灰狼','男',3);
INSERT INTO emp01(ename,esex,did) VALUES('海绵宝宝','男',4);
SELECT * FROM dept01
SELECT * FROM emp01
修改数据(先改副表,再改主表)
UPDATE emp01 SET did=2 WHERE did=1
UPDATE dept01 SET did=3 WHERE did=1
删除数据(先删副表,再删主表)
DELETE FROM emp01 WHERE did=2
DELETE FROM dept01 WHERE did=2
DELETE FROM dept01
DELETE FROM emp01
交叉连接
SELECT * FROM emp01 JOIN dept01
内连接
SELECT * FROM emp01 JOIN dept01 ON emp01.did=dept01.did
查询大灰狼的部门经理
SELECT mgr FROM emp01 JOIN dept01 ON emp01.did=dept01.did
WHERE ename='大灰狼'
查询开发部所有员工的信息
SELECT * FROM emp01 JOIN dept01 ON emp01.did=dept01.did WHERE dname='开发部'
查询每个部门的人数
SELECT dname,COUNT(*) FROM emp01 JOIN dept01 ON emp01.did=dept01.did GROUP BY dname
多表
FROM 表1 JOIN 表2 ON 表1.字段=表2.字段 JOIN 表3 ON 表2.字段=表3.字段
左外连接
INSERT INTO dept01(dname,mgr) VALUES('产品部','tony')
查询所有用户信息及其订单信息
SELECT * FROM dept01 LEFT JOIN emp01 ON dept01.did=emp01.did
右外连接
SELECT * FROM emp01 RIGHT JOIN dept01 ON dept01.did=emp01.did
子查询 把查询的结果当作另一个的查询条件
查询开发部所有员工信息
SELECT * FROM emp01 WHERE did=(SELECT did FROM dept01 WHERE dname='开发部')
查询所有女员工所属部门名称
SELECT dname FROM dept01 WHERE did=(SELECT did FROM emp01 WHERE esex='女')
查询男员工所属部门经理
SELECT mgr FROM dept01 WHERE did IN(SELECT did FROM emp01 WHERE esex='男')
SELECT did,dname FROM dept01 UNION SELECT eid,ename FROM emp01
这篇关于数据库——连接查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?