这几天因为面试的原因,所以突击学习了一下MYSQL,所以对此次学习结果进行整理,留做笔记。
联合查询:
优点:可以提升效率、数据查询显示更鲜明,一目了然
缺点:如果数据量较大,会比较消耗CPU资源
举例说明:
首先创建个数据表方便后续使用:
TAB1 | userid (int) | username varcgar(20) | password varchar(20) |
1 | Alice | apwd | |
2 | Ben | bpwd |
TAB2 | userid (int) | fenshu (int) | xingbie varchar(20) |
1 | 99 | girl | |
3 | 88 | boy |
create table TAB1( userid int, username varchar(20), password varchar(20) );
create table TAB2( userid int, fenshu (int), xingbie varchar(20) );
![4bb919f1c1d146c8d49afea69d2d5056.png](https://i-blog.csdnimg.cn/blog_migrate/39bd47f8c7d0d7eb3ba51da863a03de4.png)
插入数据:
insert into TAB1 values (1,'Alice','apwd'),(2,'Ben','bpws');
insert into TAB2 values (1,'99','girl'),(3,'88','boy');
执行结果:
![c497fa1ed4ce0343b8f96612dcff4e50.png](https://i-blog.csdnimg.cn/blog_migrate/66f27e353951d376955f9f3f1c4a2e10.png)
一、内联(inner join)
select * from TAB1 inner join TAB2 on TAB1.userid=TAB2.userid;
运行结果:
![073f9e8732d7ed3dc41c41f36225da36.png](https://i-blog.csdnimg.cn/blog_migrate/f7b2d93a6eefab8f489e75c3cfa57555.png)
二、左联(left join)
select * from TAB1 left join TAB2 on TAB1.userid=TAB2.userid;
运行结果:
![f980f2bce7ad8df27ac964b7c4df51b5.png](https://i-blog.csdnimg.cn/blog_migrate/35638ac42129dfd725ada4ed47f04f63.png)
三、右联(right join)
select * from TAB1 right join TAB2 on TAB1.userid=TAB2.userid;
运行结果:
![d517cdb64a875722d35b6cac1d10b788.png](https://i-blog.csdnimg.cn/blog_migrate/35a23903a619adf7baae60e9d0a7dddd.png)
四、全联(full join)
正常语法为:
select * from TAB1 full join TAB2 on TAB1.userid=TAB2.userid;
但是万万在测试的时候却一直报错,不知道是什么问题,报错信息如下:
![83c4dd559f3491233f51b135e3339e7e.png](https://i-blog.csdnimg.cn/blog_migrate/2f9c3209405e7bb817cd549f87fdcb21.png)
如果有知道的大佬,可以教教小弟,指正是什么原因。