Rumah pangkalan data tutorial mysql SQL联合语句的视觉解释_MySQL

SQL联合语句的视觉解释_MySQL

Jun 01, 2016 pm 01:34 PM
pernyataan sql

  我认为Ligaya Turmelle的关于SQL联合(join)语句的帖子对于新开发者来说是份很好的材料。SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看是很自然而然的。不过正如在她的帖子的回复中所说的,在测试中我发现韦恩图并不是十分的匹配SQL联合语法。

  不过我还是喜欢这个观点,所以我们来看看能不能用上韦恩图。假设我们有下面两张表。表A在左边,表B在右边。我们给它们各四条记录。

id name       id  name
-- ----       --  ----
1  Pirate     1   Rutabaga
2  Monkey     2   Pirate
3  Ninja      3   Darth Vader
4  Spaghetti  4   Ninja
Salin selepas log masuk

  我们用过name字段用几种不同方式把这些表联合起来,看能否得到和那些漂亮的韦恩图在概念上的匹配。

SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name

id  name       id   name
--  ----       --   ----
1   Pirate     2    Pirate
3   Ninja      4    Ninja
Salin selepas log masuk

  内联合(inner join)只生成同时匹配表A和表B的记录集。(如下图)

inner join

  ——————————————————————————-

SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name

id    name       id    name
--    ----       --    ----
1     Pirate     2     Pirate
2     Monkey     null  null
3     Ninja      4     Ninja
4     Spaghetti  null  null
null  null       1     Rutabaga       
null  null       3     Darth Vader
Salin selepas log masuk

  全外联合(full outer join)生成表A和表B里的记录全集,包括两边都匹配的记录。如果有一边没有匹配的,缺失的这一边为null。(如下图)

  ——————————————————————————-

SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name

id  name       id    name
--  ----       --    ----
1   Pirate     2     Pirate
2   Monkey     null  null
3   Ninja      4     Ninja
4   Spaghetti  null  null
Salin selepas log masuk

  左外联合(left outer join)生成表A的所有记录,包括在表B里匹配的记录。如果没有匹配的,右边将是null。(如下图)

  ——————————————————————————-

SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableB.id IS null

id  name       id     name
--  ----       --     ----
2   Monkey     null   null
4   Spaghetti  null   null
Salin selepas log masuk

  为了生成只在表A里而不在表B里的记录集,我们用同样的左外联合,然后用where语句排除我们不想要的记录。(如下图)

  ——————————————————————————-

SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null 
OR TableB.id IS null

id    name       id    name
--    ----       --    ----
2     Monkey     null  null
4     Spaghetti  null  null
null  null       1     Rutabaga
null  null       3     Darth Vader
Salin selepas log masuk

  为了生成对于表A和表B唯一的记录集,我们用同样的全外联合,然后用where语句排除两边都不想要的记录。(如下图)

  ———————————————————–

  还有一种笛卡尔积或者交叉联合(cross join),据我所知不能用韦恩图表示:

SELECT * FROM TableA
CROSS JOIN TableB
Salin selepas log masuk

  这个把“所有”联接到“所有”,产生4乘4=16行,远多于原始的集合。如果你学过数学,你便知道为什么这个联合遇上大型的表很危险。

  英文原文;Jeff Atwood,编译:伯乐在线 – @奇风余谷

  译文链接:http://blog.jobbole.com/40443/

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan fungsi iif dalam excel Cara menggunakan fungsi iif dalam excel Mar 20, 2024 pm 06:10 PM

Kebanyakan pengguna menggunakan Excel untuk memproses data jadual Malah, Excel juga mempunyai program VBA fungsi fungsi adalah serupa. Biar saya perkenalkan kepada anda penggunaan fungsi iif. Terdapat fungsi iif dalam pernyataan SQL dan kod VBA dalam Excel. Fungsi iif adalah serupa dengan fungsi IF dalam lembaran kerja excel Ia melakukan pertimbangan nilai benar dan salah dan mengembalikan hasil yang berbeza berdasarkan nilai benar dan salah yang dikira secara logik. JIKA penggunaan fungsi adalah (syarat, ya, tidak). Penyataan IF dan fungsi IIF dalam VBA Penyataan IF dahulu ialah penyataan kawalan yang boleh melaksanakan penyataan yang berbeza mengikut syarat yang terakhir

Bagaimana untuk menanyakan log pangkalan data oracle Bagaimana untuk menanyakan log pangkalan data oracle Apr 07, 2024 pm 04:51 PM

Maklumat log pangkalan data Oracle boleh ditanya dengan kaedah berikut: Gunakan penyata SQL untuk membuat pertanyaan dari paparan v$log gunakan alat LogMiner untuk menganalisis fail log gunakan arahan ALTER SYSTEM untuk melihat status fail log semasa; Arahan TRACE untuk melihat maklumat tentang peristiwa tertentu menggunakan operasi Alat sistem melihat pada akhir fail log.

Bagaimana untuk menggunakan pernyataan sql untuk menanyakan struktur penyimpanan pangkalan data mysql Bagaimana untuk menggunakan pernyataan sql untuk menanyakan struktur penyimpanan pangkalan data mysql Apr 14, 2024 pm 07:45 PM

Untuk menanyakan struktur storan pangkalan data MySQL, anda boleh menggunakan pernyataan SQL berikut: SHOW CREATE TABLE table_name pernyataan ini akan mengembalikan definisi lajur dan maklumat pilihan jadual bagi jadual, termasuk nama lajur, jenis data, kekangan dan sifat umum jadual; , seperti enjin storan dan set aksara.

Bagaimana untuk mengeksport data yang ditanya dalam navicat Bagaimana untuk mengeksport data yang ditanya dalam navicat Apr 24, 2024 am 04:15 AM

Eksport hasil pertanyaan dalam Navicat: Laksanakan pertanyaan. Klik kanan hasil pertanyaan dan pilih Eksport Data. Pilih format eksport seperti yang diperlukan: CSV: Pemisah medan ialah koma. Excel: Termasuk pengepala jadual, menggunakan format Excel. Skrip SQL: Mengandungi pernyataan SQL yang digunakan untuk mencipta semula hasil pertanyaan. Pilih pilihan eksport (seperti pengekodan, pemisah baris). Pilih lokasi eksport dan nama fail. Klik "Eksport" untuk memulakan eksport.

Bagaimana untuk menyelesaikan kegagalan permulaan pangkalan data mysql Bagaimana untuk menyelesaikan kegagalan permulaan pangkalan data mysql Apr 14, 2024 pm 07:12 PM

Untuk menyelesaikan isu kegagalan permulaan pangkalan data MySQL, ikuti langkah berikut: Semak kebenaran dan pastikan anda menggunakan pengguna dengan kebenaran yang sesuai. Jika pangkalan data sudah wujud, padamkannya atau pilih nama lain. Jika jadual sudah wujud, padamkannya atau pilih nama lain. Semak pernyataan SQL untuk ralat sintaks. Sahkan bahawa pelayan MySQL sedang berjalan dan boleh disambungkan. Sahkan bahawa anda menggunakan nombor port yang betul. Semak fail log MySQL atau Pencari Kod Ralat untuk butiran ralat lain.

Bagaimana untuk melaksanakan pernyataan sql dalam pangkalan data mysql Bagaimana untuk melaksanakan pernyataan sql dalam pangkalan data mysql Apr 14, 2024 pm 07:48 PM

Penyata MySQL SQL boleh dilaksanakan dengan: Menggunakan MySQL CLI (Antaramuka Talian Perintah): Log masuk ke pangkalan data dan masukkan pernyataan SQL. Menggunakan MySQL Workbench: Mulakan aplikasi, sambung ke pangkalan data, dan laksanakan pernyataan. Gunakan bahasa pengaturcaraan: import perpustakaan sambungan MySQL, buat sambungan pangkalan data, dan laksanakan pernyataan. Gunakan alat lain seperti Pelayar DB untuk SQLite: muat turun dan pasang aplikasi, buka fail pangkalan data dan laksanakan penyata.

Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Mar 16, 2024 am 11:33 AM

Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Dalam pangkalan data MySQL, urus niaga ialah satu set penyata SQL sama ada semua pelaksanaan berjaya atau semua pelaksanaan gagal, memastikan ketekalan dan integriti data. Dalam MySQL, urus niaga boleh dibahagikan kepada penyerahan automatik dan penyerahan manual Perbezaannya terletak pada masa penyerahan transaksi dan skop kawalan ke atas transaksi. Berikut akan memperkenalkan perbezaan antara penyerahan automatik dan penyerahan manual secara terperinci, dan memberikan contoh kod khusus untuk digambarkan. 1. Hantar secara automatik dalam MySQL, jika ia tidak dipaparkan

Perbandingan persamaan dan perbezaan antara MySQL dan PL/SQL Perbandingan persamaan dan perbezaan antara MySQL dan PL/SQL Mar 16, 2024 am 11:15 AM

MySQL dan PL/SQL ialah dua sistem pengurusan pangkalan data yang berbeza, mewakili ciri pangkalan data hubungan dan bahasa prosedur masing-masing. Artikel ini akan membandingkan persamaan dan perbezaan antara MySQL dan PL/SQL, dengan contoh kod khusus untuk digambarkan. MySQL ialah sistem pengurusan pangkalan data hubungan popular yang menggunakan Bahasa Pertanyaan Berstruktur (SQL) untuk mengurus dan mengendalikan pangkalan data. PL/SQL ialah bahasa prosedur yang unik untuk pangkalan data Oracle dan digunakan untuk menulis objek pangkalan data seperti prosedur tersimpan, pencetus dan fungsi. sama

See all articles