<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] 前面我們學習了sql語句的操作,但是我們大部分都是操作的單張表,大部分問題只有一張表是不能解決的。我們需要從多張表中獲得數據,或者通過其他表的數據刪除某個表的記錄等操作,這個時候就需要多表操作。在了解多表操作前我們先了解下表關系。 ## 表關系 ### 一對一關系 一個城市只能有一個區號這種關系是最簡單的一對一關系 一個人只能對應一個身份證號,這也是一對一關系 如果兩張表,一張存儲學生的基本信息,一張存學生的擴展信息,這種關系也是一對一。 ![](https://box.kancloud.cn/b62f69018fb1183fba15b7559bc14098_788x234.jpg) ### 一對多關系 在學校中,咱們一個班級有很多學生,但一個學生不會有多少班級,如果一個學生表,另外一張是班級表,那他們之間的關系就是一對多 ![](https://box.kancloud.cn/28e9d3449959654373dbee7074c31c13_561x176.jpg) ### 多對多關系 在學校中,咱們一個班級有多個任課老師,同時一個老師可以去多個班任課,這種就是多對多關系,那么如果記錄這種關系呢, ![](https://box.kancloud.cn/2665947249f5db154b4ce21e961b24e3_780x321.jpg) ## 笛卡爾積原理 在數學中,兩個集合X和Y的笛卡尓積(Cartesian product),又稱直積,表示為X × Y,第一個對象是X的成員而第二個對象是Y的所有可能有序對的其中一個成員。 假設集合A={a, b},集合B={0, 1, 2},則兩個集合的笛卡爾積為{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。 ![](https://box.kancloud.cn/7bf09987bad71cbdc14c29b278ca5590_554x557.jpg) ~~~ mysql>select * from class,stu ~~~ 但是單純的對兩個表的數據進行通過笛卡爾積獲得的所有數據,顯然這個結果是沒有意義的,所以我們要對以上查詢增加條件以產生有價值的數據集合。通過關聯字段來實現 ~~~ mysql>select * from class,stu where class.cid=stu.cid; mysql>select * from class as c ,stu as s where s.cid = c.id; ~~~ ## INNER JOIN(內連接,或等值連接) 獲取兩個表中字段匹配關系的記錄。 ![](https://box.kancloud.cn/ac4e75e16439e204179aca9f3e87b091_200x145.gif) ~~~ mysql>select * from class c inner join stu s on c.id=s.cid; ~~~ ## LEFT JOIN(左連接,外連接) 獲取左表所有記錄,即使右表沒有對應匹配的記錄。 ![](https://box.kancloud.cn/35125df03a8eb791aa1284473190b983_200x145.gif) ~~~ mysql>select * from class c left join stu s on c.id=s.cid; ~~~ ## RIGHT JOIN(右連接,外連接) 與 LEFT JOIN 相反,用于獲取右表所有記錄,即使左表沒有對應匹配的記錄。 ![](https://box.kancloud.cn/02187c9d9300093234b96c129286bea4_200x145.gif) ~~~ mysql>select * from class c right join stu s on c.id=s.cid; ~~~ ## 自連接 表和表自身進行檢索操作的方式為自連接 ~~~ mysql>select s2.name from stu as s1 inner join stu as s2 on s1.cid=s2.cid where s1.name="李四"; ~~~ >[danger]練習:檢索出李四都的所有老師 檢索出和李四同一班的學生 檢索出每個班級的學生數量 檢索出女生最多的班級
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看