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

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

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

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

內(nèi)連接

內(nèi)連接實(shí)際上就是利用where子句對(duì)兩種表形成的笛卡兒積進(jìn)行篩選,我們前面文章的查詢都是內(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); -- 成績(jī)表
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é)生的成績(jī),如果這個(gè)學(xué)生沒有成績(jī),也要將學(xué)生的個(gè)人信息顯示出來
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. 對(duì)stu表和exam表聯(lián)合查詢,把所有的成績(jī)都顯示出來,即使這個(gè)成績(jī)沒有學(xué)生與它對(duì)應(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í)

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

運(yùn)用左外連接

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)

運(yùn)用右外連接

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é)和概括,如有錯(cuò)誤或者需要補(bǔ)充的地方歡迎各位大佬評(píng)論或者私信我交流!?。?/p>

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

相關(guān)文章

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

    MySQL創(chuàng)建唯一索引時(shí)報(bào)錯(cuò)Duplicate?entry?*?for?key問題

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

    MySQL5.7完全卸載步驟詳解

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

    mysql遷移達(dá)夢(mèng)列長(zhǎng)度超出定義的簡(jiǎn)單解決方法

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

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

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

    MySQL存儲(chǔ)過程的概念與用法實(shí)例

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

    mysql安裝報(bào)錯(cuò)unknown variable mysqlx_port=0.0

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

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

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

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

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

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

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

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

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

最新評(píng)論

东安县| 翁牛特旗| 余庆县| 岑巩县| 贵南县| 张家港市| 周口市| 嘉黎县| 石首市| 抚松县| 东乡县| 梅州市| 扎赉特旗| 昌吉市| 彩票| 榆社县| 渭南市| 屯昌县| 桂林市| 闵行区| 海门市| 新密市| 房产| 蚌埠市| 乌什县| 上饶市| 太康县| 历史| 紫阳县| 鄂尔多斯市| 淮南市| 余干县| 绍兴县| 泌阳县| 安国市| 牡丹江市| 安塞县| 辽源市| 镇赉县| 资源县| 会昌县|