最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql表的內(nèi)聯(lián)和外聯(lián)區(qū)別案例解析

 更新時間:2025年11月21日 10:48:34   作者:霧里看山  
文章總結(jié)了SQL中的表連接,包括內(nèi)連接和外連接,內(nèi)連接通過WHERE子句篩選笛卡兒積,而外連接分為左外連接和右外連接,左外連接確保左表的所有記錄都顯示,右外連接確保右表的所有記錄都顯示,文章通過語法案例和練習(xí)幫助理解這些連接類型,感興趣的朋友跟隨小編一起看看吧

表的連接分為內(nèi)連和外連

內(nèi)連接

內(nèi)連接實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選,我們前面文章的查詢都是內(nèi)連接,也是在開發(fā)過程中使用的最多的連接查詢。

語法

select 字段 from 表1 inner join 表2 on 連接條件 and 其他條件;

案例

  1. 顯示SMITH的名字和部門名稱

用之前的方法

mysql> select ename, dname from emp, dept where emp.deptno=dept.deptno and ename='SMITH';
+-------+----------+
| ename | dname    |
+-------+----------+
| SMITH | RESEARCH |
+-------+----------+
1 row in set (0.00 sec)

用標(biāo)準(zhǔn)內(nèi)連接

mysql> select ename, dname from emp inner join dept on emp.deptno=dept.deptno and ename='SMITH';
+-------+----------+
| ename | dname    |
+-------+----------+
| SMITH | RESEARCH |
+-------+----------+
1 row in set (0.00 sec)

兩種方式混合使用,更好的區(qū)分笛卡爾積和篩選條件

mysql> select ename, dname from emp inner join dept on emp.deptno=dept.deptno where ename='SMITH';
+-------+----------+
| ename | dname    |
+-------+----------+
| SMITH | RESEARCH |
+-------+----------+
1 row in set (0.00 sec)

外連接

外連接分為左外連接和右外連接

左外連接

如果聯(lián)合查詢,左側(cè)的表完全顯示我們就說是左外連接。

語法

select 字段名 from 表名1 left join 表名2 on 連接條件

案例

前期準(zhǔn)備:

mysql> create table stu (id int, name varchar(30));-- 學(xué)生表
Query OK, 0 rows affected (0.03 sec)
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql> select * from stu;
+------+------+
| id   | name |
+------+------+
|    1 | jack |
|    2 | tom  |
|    3 | kity |
|    4 | nono |
+------+------+
4 rows in set (0.00 sec)
mysql> create table exam (id int, grade int); -- 成績表
Query OK, 0 rows affected (0.02 sec)
mysql> desc exam;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| grade | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into exam values(1, 56),(2,76),(11, 8);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> select * from exam;
+------+-------+
| id   | grade |
+------+-------+
|    1 |    56 |
|    2 |    76 |
|   11 |     8 |
+------+-------+
3 rows in set (0.00 sec)
  1. 查詢所有學(xué)生的成績,如果這個學(xué)生沒有成績,也要將學(xué)生的個人信息顯示出來
mysql> select * from stu left join exam on stu.id=exam.id;
+------+------+------+-------+
| id   | name | id   | grade |
+------+------+------+-------+
|    1 | jack |    1 |    56 |
|    2 | tom  |    2 |    76 |
|    3 | kity | NULL |  NULL |
|    4 | nono | NULL |  NULL |
+------+------+------+-------+
4 rows in set (0.00 sec)

右外連接

如果聯(lián)合查詢,右側(cè)的表完全顯示我們就說是右外連接。

語法

select 字段 from 表名1 right join 表名2 on 連接條件;

案例

  1. stu表和exam表聯(lián)合查詢,把所有的成績都顯示出來,即使這個成績沒有學(xué)生與它對應(yīng),也要顯示出來
mysql> select * from stu right join exam on stu.id=exam.id;
+------+------+------+-------+
| id   | name | id   | grade |
+------+------+------+-------+
|    1 | jack |    1 |    56 |
|    2 | tom  |    2 |    76 |
| NULL | NULL |   11 |     8 |
+------+------+------+-------+
3 rows in set (0.00 sec)

練習(xí)

列出部門名稱和這些部門的員工信息,同時列出沒有員工的部門

運用左外連接

mysql> select dept.deptno, dname, ename from  dept left join emp on dept.deptno=emp.deptno order by dept.deptno asc;
+--------+------------+--------+
| deptno | dname      | ename  |
+--------+------------+--------+
|     10 | ACCOUNTING | CLARK  |
|     10 | ACCOUNTING | MILLER |
|     10 | ACCOUNTING | KING   |
|     20 | RESEARCH   | JONES  |
|     20 | RESEARCH   | SMITH  |
|     20 | RESEARCH   | ADAMS  |
|     20 | RESEARCH   | SCOTT  |
|     20 | RESEARCH   | FORD   |
|     30 | SALES      | MARTIN |
|     30 | SALES      | ALLEN  |
|     30 | SALES      | JAMES  |
|     30 | SALES      | BLAKE  |
|     30 | SALES      | WARD   |
|     30 | SALES      | TURNER |
|     40 | OPERATIONS | NULL   |
+--------+------------+--------+
15 rows in set (0.00 sec)

運用右外連接

mysql> select dept.deptno, dname, ename from emp right join dept on dept.deptno=emp.deptno order by dept.deptno asc;
+--------+------------+--------+
| deptno | dname      | ename  |
+--------+------------+--------+
|     10 | ACCOUNTING | CLARK  |
|     10 | ACCOUNTING | MILLER |
|     10 | ACCOUNTING | KING   |
|     20 | RESEARCH   | JONES  |
|     20 | RESEARCH   | SMITH  |
|     20 | RESEARCH   | ADAMS  |
|     20 | RESEARCH   | SCOTT  |
|     20 | RESEARCH   | FORD   |
|     30 | SALES      | MARTIN |
|     30 | SALES      | ALLEN  |
|     30 | SALES      | JAMES  |
|     30 | SALES      | BLAKE  |
|     30 | SALES      | WARD   |
|     30 | SALES      | TURNER |
|     40 | OPERATIONS | NULL   |
+--------+------------+--------+
15 rows in set (0.00 sec)

?? 寫在最后:以上內(nèi)容是我在學(xué)習(xí)以后得一些總結(jié)和概括,如有錯誤或者需要補充的地方歡迎各位大佬評論或者私信我交流?。。?/p>

到此這篇關(guān)于Mysql表的內(nèi)聯(lián)和外聯(lián)區(qū)別案例解析的文章就介紹到這了,更多相關(guān)mysql內(nèi)聯(lián)和外聯(lián)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL創(chuàng)建唯一索引時報錯Duplicate?entry?*?for?key問題

    MySQL創(chuàng)建唯一索引時報錯Duplicate?entry?*?for?key問題

    這篇文章主要介紹了MySQL創(chuàng)建唯一索引時報錯Duplicate?entry?*?for?key問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • MySQL5.7完全卸載步驟詳解

    MySQL5.7完全卸載步驟詳解

    這篇文章主要介紹了MySQL5.7完全卸載的詳細步驟以及把中間遇到的問題做了分析,需要的朋友跟著操作下吧。
    2018-02-02
  • mysql遷移達夢列長度超出定義的簡單解決方法

    mysql遷移達夢列長度超出定義的簡單解決方法

    這篇文章主要介紹了mysql遷移達夢列長度超出定義解決方法的相關(guān)資料,,在達夢數(shù)據(jù)庫中,字符串長度的存儲方式與MySQL不同,導(dǎo)致遷移過程中出現(xiàn)數(shù)據(jù)長度不足的錯誤,解決方法包括在MySQL中將varchar類型修改為varchar(10char)以強制字符存儲,需要的朋友可以參考下
    2024-12-12
  • Mysql數(shù)據(jù)庫group?by原理詳解

    Mysql數(shù)據(jù)庫group?by原理詳解

    這篇文章主要為大家介紹了Mysql數(shù)據(jù)庫group?by的原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • MySQL存儲過程的概念與用法實例

    MySQL存儲過程的概念與用法實例

    我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時候需要要先編譯,然后執(zhí)行,而存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,下面這篇文章主要給大家介紹了關(guān)于MySQL存儲過程的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • mysql安裝報錯unknown variable mysqlx_port=0.0

    mysql安裝報錯unknown variable mysqlx_port=0.0

    本文主要介紹了mysql安裝報錯unknown variable mysqlx_port=0.0,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • 詳解Mysql數(shù)據(jù)庫平滑擴容解決高并發(fā)和大數(shù)據(jù)量問題

    詳解Mysql數(shù)據(jù)庫平滑擴容解決高并發(fā)和大數(shù)據(jù)量問題

    本文主要介紹了Mysql數(shù)據(jù)庫平滑擴容解決高并發(fā)和大數(shù)據(jù)量問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 在MySQL中開啟日志記錄并排查操作詳細步驟記錄

    在MySQL中開啟日志記錄并排查操作詳細步驟記錄

    MySQL日志管理是數(shù)據(jù)庫系統(tǒng)維護和優(yōu)化的重要環(huán)節(jié),它提供了對服務(wù)器運行狀態(tài)的詳細記錄,這篇文章主要給大家介紹了關(guān)于如何在MySQL中開啟日志記錄并排查操作的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • mysql通過binlog定時備份數(shù)據(jù)庫與恢復(fù)的方法

    mysql通過binlog定時備份數(shù)據(jù)庫與恢復(fù)的方法

    這篇文章主要介紹了mysql通過binlog定時備份數(shù)據(jù)庫與恢復(fù)的方法,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • MySQL啟動失敗之MySQL服務(wù)無法啟動的原因及解決

    MySQL啟動失敗之MySQL服務(wù)無法啟動的原因及解決

    這篇文章主要介紹了MySQL啟動失敗之MySQL服務(wù)無法啟動的原因及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論

桂阳县| 界首市| 弋阳县| 云霄县| 芦山县| 丹巴县| 敖汉旗| 麟游县| 宝丰县| 重庆市| 清镇市| 广元市| 怀来县| 香港| 彝良县| 台北市| 南宁市| 县级市| 若羌县| 上虞市| 石家庄市| 酉阳| 大石桥市| 曲阳县| 菏泽市| 蓬莱市| 浦县| 无锡市| 新河县| 南华县| 剑阁县| 天长市| 无极县| 玉林市| 泰和县| 建水县| 菏泽市| 株洲市| 商丘市| 和静县| 横山县|