MySQL 詳解_MySQL
還是先 Create table 吧
create table emp(
id int not null primary key,
name varchar(10)
);
create table emp_dept(
dept_id varchar(4) not null,
emp_id int not null,
emp_name varchar(10),
primary key (dept_id,emp_id));
insert into emp() values
(1,"Dennis-1"),
(2,"Dennis-2"),
(3,"Dennis-3"),
(4,"Dennis-4"),
(5,"Dennis-5"),
(6,"Dennis-6"),
(7,"Dennis-7"),
(8,"Dennis-8"),
(9,"Dennis-9"),
(10,"Dennis-10");
insert into emp_dept() values
("R&D",1,"Dennis-1"),
("DEv",2,"Dennis-2"),
("R&D",3,"Dennis-3"),
("Test",4,"Dennis-4"),
("Test",5,"Dennis-5");
>> left join
-------------
select a.id,a.name,b.dept_id
from emp a left join emp_dept b on (a.id=b.emp_id);
# 挑出左邊的 table emp 中的所有資料,即使 emp_dept 中沒有的資料也挑出來,沒有的就用 NULL 來顯示,
# 也即顯示資料是以左邊的 table emp 中的資料為基礎
mysql> select a.id,a.name,b.dept_id
-> from emp a left join emp_dept b on (a.id=b.emp_id);
+----+-----------+---------+
| id | name | dept_id |
+----+-----------+---------+
| 1 | Dennis-1 | R&D |
| 2 | Dennis-2 | DEv |
| 3 | Dennis-3 | R&D |
| 4 | Dennis-4 | Test |
| 5 | Dennis-5 | Test |
| 6 | Dennis-6 | NULL |
| 7 | Dennis-7 | NULL |
| 8 | Dennis-8 | NULL |
| 9 | Dennis-9 | NULL |
| 10 | Dennis-10 | NULL |
+----+-----------+---------+
# 挑出 table emp 中有而 table emp_dept 中沒有的人員資料
select a.id,a.name,b.dept_id
from emp a left join emp_dept b on (a.id=b.emp_id)
where b.dept_id IS NULL;
mysql> select a.id,a.name,b.dept_id
-> from emp a left join emp_dept b on (a.id=b.emp_id)
-> where b.dept_id IS NULL;
+----+-----------+---------+
| id | name | dept_id |
+----+-----------+---------+
| 6 | Dennis-6 | NULL |
| 7 | Dennis-7 | NULL |
| 8 | Dennis-8 | NULL |
| 9 | Dennis-9 | NULL |
| 10 | Dennis-10 | NULL |
+----+-----------+---------+
# 把 table emp_dept 放在左邊的情形(當然以 emp_dept 中的數據為基礎來顯示資料,emp 中比emp_dept 中多的資料也就不會顯示出來了):
select a.id,a.name,b.dept_id
from emp_dept b left join emp a on (a.id=b.emp_id);
mysql> select a.id,a.name,b.dept_id
-> from emp_dept b left join emp a on (a.id=b.emp_id);
+------+----------+---------+
| id | name | dept_id |
+------+----------+---------+
| 2 | Dennis-2 | DEv |
| 1 | Dennis-1 | R&D |
| 3 | Dennis-3 | R&D |
| 4 | Dennis-4 | Test |
| 5 | Dennis-5 | Test |
+------+----------+---------+
>> right join
---------------
select a.id,a.name,b.dept_id
from emp a right join emp_dept b on (a.id=b.emp_id);
# 挑資料時以右邊 table emp_dept 中的資料為基礎來顯示資料
mysql> select a.id,a.name,b.dept_id
-> from emp a right join emp_dept b on (a.id=b.emp_id);
+------+----------+---------+
| id | name | dept_id |
+------+----------+---------+
| 2 | Dennis-2 | DEv |
| 1 | Dennis-1 | R&D |
| 3 | Dennis-3 | R&D |
| 4 | Dennis-4 | Test |
| 5 | Dennis-5 | Test |
+------+----------+---------+
5 rows in set (0.00 sec)
# 我們再把 table 的位置交換一下,再用 right join 試試
select a.id,a.name,b.dept_id
from emp_dept b right join emp a on (a.id=b.emp_id);
mysql> select a.id,a.name,b.dept_id
-> from emp_dept b right join emp a on (a.id=b.emp_id);
+----+-----------+---------+
| id | name | dept_id |
+----+-----------+---------+
| 1 | Dennis-1 | R&D |
| 2 | Dennis-2 | DEv |
| 3 | Dennis-3 | R&D |
| 4 | Dennis-4 | Test |
| 5 | Dennis-5 | Test |
| 6 | Dennis-6 | NULL |
| 7 | Dennis-7 | NULL |
| 8 | Dennis-8 | NULL |
| 9 | Dennis-9 | NULL |
| 10 | Dennis-10 | NULL |
+----+-----------+---------+
# 是不是和 left join 一樣了?
>> direct join
--------------
# 如果用right join 同不用 Join 直接挑資料是相同的,它等介於以下的指令
select a.id,a.name,b.dept_id
from emp a ,emp_dept b
where a.id=b.emp_id;
mysql> select a.id,a.name,b.dept_id
-> from emp a ,emp_dept b
-> where a.id=b.emp_id;
+----+----------+---------+
| id | name | dept_id |
+----+----------+---------+
| 2 | Dennis-2 | DEv |
| 1 | Dennis-1 | R&D |
| 3 | Dennis-3 | R&D |
| 4 | Dennis-4 | Test |
| 5 | Dennis-5 | Test |
+----+----------+---------+
怎樣,弄明白了嗎?
Enjoy it!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



ASUS b450 ist ein sehr hervorragendes Motherboard. Wenn Sie das Win11-System auf diesem Motherboard installieren möchten, müssen Sie tpm2.0 und die sichere Startoption aktivieren. Der Editor unten wird es möglicherweise nicht tun Werfen wir einen Blick auf die Bedienung. So installieren Sie win11 auf dem ASUS b450: 1. Zuerst starten wir das System neu, verwenden „F2“, um die BIOS-Einstellungen einzugeben, und klicken dann zum Aufrufen auf „Erweiterter Modus“ in der unteren rechten Ecke. 2. Geben Sie dann unter der Option „Startup“ „Secure Boot“ ein. 3. Wählen Sie dann rechts neben „Operating System Type“ „Windows UEFI Mode“ aus. 4. Nachdem die Einstellungen abgeschlossen sind, klicken Sie oben rechts auf „Suchen“. Geben Sie die Suche ein. 5. Suchen Sie dann nach „PTT“ und klicken Sie

Die Bedeutung von JOIN ist genau wie das englische Wort „join“. Es verbindet zwei Tabellen und kann grob in Inner Join, Outer Join, Right Join, Left Join und Natural Join unterteilt werden. Erstellen Sie zunächst zwei Tabellen. Das Folgende wird als Beispiel verwendet: CREATETABLEt_blog(idINTPRIMARYKEYAUTO_INCREMENT,titleVARCHAR(50),typeIdINT);SELECT*FROMt_blog;+----+------+--------+ |. id|title|typeId|+----+-------+--------+|1|aaa|1||2|bbb|2||3|ccc|3 |

Der Unterschied zwischen null und NULL in der C-Sprache ist: null ist eine Makrodefinition in der C-Sprache, die normalerweise zur Darstellung eines Nullzeigers verwendet wird und zum Initialisieren von Zeigervariablen oder zum Bestimmen, ob der Zeiger in einer bedingten Anweisung null ist, verwendet werden kann. NULL ist eine Makrodefinition in der C-Sprache. Eine vordefinierte Konstante in, die normalerweise zur Darstellung eines Nullwerts verwendet wird und zur Darstellung eines Nullzeigers, eines Nullzeigerarrays oder eines Nullstrukturzeigers verwendet wird.

Der Join-Typ Leftjoin verwendet die linke Tabelle als treibende Tabelle und die linke Tabelle als Basis der Ergebnismenge. Die Daten aus der rechten Tabelle werden mit der Ergebnismenge verbunden. Rightjoin verwendet die rechte Tabelle als treibende Tabelle und die rechte Tabelle als Die Basis der Ergebnismenge besteht darin, die Daten zur Ergebnismenge hinzuzufügen. Die Ergebnismenge nimmt die Vereinigung der beiden Tabellen an fulljoin. Der Unterschied zwischen Union und Unionall besteht darin, dass Union das kartesische Crossjoin-Produkt dedupliziert. Wenn die Where-Bedingung nicht verwendet wird, ist die Ergebnismenge das Produkt und die beiden zugehörigen Tabellenzeilen Crossjoin erstellt die Ergebnismenge, sie wird gemäß der On-Bedingung übergeben.

In JavaScript stellen sowohl undefiniert als auch null das Konzept von „nichts“ dar: 1. undefiniert stellt eine nicht initialisierte Variable oder eine nicht vorhandene Eigenschaft dar. Wenn eine Variable deklariert, ihr aber kein Wert zugewiesen ist, ist der Wert der Variablen undefiniert. Beim Zugriff auf Eigenschaften, die nicht im Objekt vorhanden sind, ist der zurückgegebene Wert ebenfalls undefiniert. 2. Null stellt eine leere Objektreferenz dar. In einigen Fällen kann die Objektreferenz auf Null gesetzt werden, um den von ihr belegten Speicher freizugeben.

Sowohl null als auch undefiniert weisen auf einen fehlenden Wert oder einen undefinierten Zustand hin. Je nach Verwendungsszenario gibt es einige Leitprinzipien für die Verwendung von null oder undefiniert: 1. Wenn Sie klar angeben müssen, dass eine Variable leer oder ungültig ist, müssen Sie Folgendes tun: kann null verwenden; 2. Wenn eine Variable deklariert wurde, aber noch kein Wert zugewiesen wurde, wird sie standardmäßig auf undefiniert gesetzt. 3. Wenn Sie überprüfen müssen, ob eine Variable leer oder undefiniert ist, verwenden Sie den strikten Gleichheitsoperator „=“. ==" um festzustellen, ob die Variable null oder undefiniert ist. .

Der Unterschied zwischen null und undefiniert ist: 1. Semantische Bedeutung; . Leistung bei der JSON-Serialisierung; 9. Beziehung zu Typen. Detaillierte Einführung: 1. Semantische Bedeutung: Null bedeutet normalerweise, dass diese Variable keinen gültigen Objektwert hat, während undefiniert normalerweise bedeutet, dass der Variablen kein Wert zugewiesen wurde oder das Objekt dieses Attribut nicht hat. 2. Verwendungsszenarien , usw.

Welche ist im Vergleich zu Join-Abfragen und mehreren Abfragen effizienter: MySQL-Abfragen mit mehreren Tabellen oder mehrere Abfragen mit einzelnen Tabellen? Wenn die Datenmenge nicht groß genug ist, ist die Verwendung von Join kein Problem, sie erfolgt jedoch normalerweise auf der Serviceebene. Erstens: Die Rechenressourcen einer Einzelmaschinendatenbank sind sehr teuer und die Datenbank muss beide Schreibvorgänge unterstützen und Lesen gleichzeitig, was einen CPU-Verbrauch erfordert. Der Durchsatz wird höher und das Unternehmen kümmert sich nicht um die Verzögerungslücke von Hunderten von Mikrosekunden bis hin zu Millisekunden. Das Unternehmen wird mehr Berechnungen in die Serviceschicht einbinden Schließlich können Computerressourcen leicht horizontal erweitert werden, und Datenbanken sind schwierig. Daher werden die meisten Unternehmen reine Computeroperationen in die Serviceschicht verlagern und die Datenbank als KV-System mit Transaktionsfunktionen verwenden.
