Inhaltsverzeichnis
Mehrere Tabellenbeziehungen
Fremdschlüssel-Einschränkungskonzepte
Fremdschlüsseleinschränkungen:
验证外键约束的作用
删除外键约束
多表联合查询(非常重要)
内连接查询
外连接查询
Heim Datenbank MySQL-Tutorial Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

Mar 28, 2022 pm 01:48 PM
mysql

Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL, in dem hauptsächlich Probleme im Zusammenhang mit Operationen mit mehreren Tabellen vorgestellt werden, einschließlich Beziehungen mit mehreren Tabellen, Fremdschlüsseleinschränkungen, gemeinsame Abfragen mit mehreren Tabellen, Abfragen für innere Verknüpfungen und Abfragen für äußere Verknüpfungen. Warten Sie, ich hoffe es hilft allen.

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

Empfohlenes Lernen: MySQL-Tutorial

Mehrere Tabellenbeziehungen

Eins-zu-eins (normalerweise zusammengeführte Tabellen),
Eins-zu-viele/viele-zu-eins (Abteilungen und Mitarbeiter),
viele -to-many (Studenten und Kurs) – Verwendung von Zwischentabellen

Fremdschlüssel-Einschränkungskonzepte

Wird speziell für Einschränkungen in Beziehungen mit mehreren Tabellen verwendet
Verwenden Sie den Primärschlüssel der Master-Tabelle, um die Fremdschlüssel der Slave-Tabelle zu steuern

Fremdschlüsseleinschränkungen:

1. Die Mastertabelle muss bereits vorhanden sein oder wird erstellt
2. Die Primärschlüsselspalte muss für die Haupttabelle festgelegt sein
3. Der Primärschlüssel darf keine Nullwerte enthalten, der Fremdschlüssel jedoch Nullwerte
4. Der Listen- oder Spaltenname, der nach dem Tabellennamen der Haupttabellenkombination angegeben wird. Diese Spalte oder Spaltenkombination muss der Primärschlüssel oder Kandidatenschlüssel der Haupttabelle sein
5. Die Anzahl der Spalten im Fremdschlüssel muss mit der Anzahl der Spalten im Primärschlüssel übereinstimmen
6. Der Datentyp der Die Spalte im Fremdschlüssel muss mit den Daten der entsprechenden Spalte im Primärschlüssel identisch sein. Derselbe Typ

• Erstellen Sie Fremdschlüsseleinschränkungen Foreign Keyforeign key
在创建表之前添加外键约束
Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

在创建表之后添加外键约束

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

验证外键约束的作用

1、数据插入:
要先给主表添加约束
从表添加约束要依赖于主表,主表没有的数据不能添加
Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

2、数据删除
主表的数据被从表依赖时,不能删除,否则可以删除
从表的数据可以任意删除

eg:

delete from dept where deptno = '1001';-----不可以删除(被依赖了)delete from dept where deptno = '1004';
------可以删除delete from emp where eid = '7';  -----可以删除
Nach dem Login kopieren

删除外键约束

删除之后,表与表之间就没有关系了
语法:

alter table 表名字 drop foreign key 外键约束名alter table emp2 drop foreign key emp2_fk;
Nach dem Login kopieren

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

• 多对多关系-构建外键约束
A表的一行对应B表的多行,B表的一行对应A表的多行,这时候需要再重新建立一个中间表,记录表关系
Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

注意:
修改和删除时,中间从表可以随便删除和修改,但是两边从表手主表依赖的数据不能删除或者修改。

多表联合查询(非常重要)

• 概念
就是同时 查询两个或者两个以上的表,因为有时候用户在查看数据的时候,需要显示的数据来自多张表

• 数据准备
注意:
外键约束只对数据的增删改起作用,对于数据查询没有影响

• 交叉连接查询 select * from A ,B;---会产生冗余数据

1、交叉连接查询返回返回被连接的两个表所有数据行的笛卡尔积
2、笛卡尔集可以理解为一张表的每一行去和另外一张表的任意一行进行匹配
3、假如A表有 m 行数据,B表有 n 行数据,则返回 m * n 行数据
4、笛卡尔积会产生很多冗余的数据,后期的其他查询可以在该集合的基础上进行条件筛选

内连接查询

求的是两个表之间的交集
Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

inner 可以省略

隐式内连接(SQL92标准):

select * from A,B where 条件;
Nach dem Login kopieren

显式内连接(SQL99标准);

select * from A inner join B on 条件
Nach dem Login kopieren
---查询每个部门的所属员工  //隐式内连接
Nach dem Login kopieren
select* from dept3,emp3 where dept3.deptno = emp3.dept_id;  //这样写标准
Nach dem Login kopieren

还可以给表起别名,如;

select* from dept3  a ,emp3 b  where a.deptno = b.dept_id;
Nach dem Login kopieren
	---查询每个部门的所属员工  
	//显式内连接select *from dept3 inner join emp3  on dept3.deptno = emp3.dept_id;  
	//这样写标准
Nach dem Login kopieren

还可以给表起别名,如;

select *from dept3 a join emp3 b on a.deptno = b.dept_id;
Nach dem Login kopieren

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig
Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

外连接查询

分为:(outer可以 省略)
左外连接left outer join

select* from A left outer join B on 条件;
Nach dem Login kopieren

右外连接right outer join

select* from A right outer join B on 条件;
Nach dem Login kopieren

满外连接full outer join Fügen Sie Fremdschlüsseleinschränkungen hinzu, bevor Sie die Tabelle erstellen

Bildbeschreibung hier einfügen🎜🎜Fremdschlüsseleinschränkungen nach dem Erstellen hinzufügen table🎜🎜Bildbeschreibung hier einfügen🎜🎜Überprüfen Sie die Rolle von Fremdschlüsseleinschränkungen🎜🎜1. Dateneinfügung: 🎜 Sie müssen zuerst Einschränkungen zur Haupttabelle hinzufügen🎜 Das Hinzufügen von Einschränkungen zur Tabelle hängt von der Haupttabelle ab. Daten, die nicht in der Haupttabelle vorhanden sind, können nicht hinzugefügt werden🎜„Bildbeschreibung🎜🎜2. Datenlöschung🎜 Wenn die Daten des Haupt Die Tabelle hängt von der Slave-Tabelle ab und kann nicht gelöscht werden. Andernfalls können sie gelöscht werden. Die Daten der Slave-Tabelle können beliebig gelöscht werden. Beispiel: 🎜
select* from A full outer join B on 条件;
Nach dem Login kopieren
keine Beziehung zwischen den Tabellen 🎜 Syntax: 🎜
use mydb3;select* from dept3 left outer join emp3 on dept3.deptno =emp3.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren
🎜Bildbeschreibung hier einfügen🎜🎜• Viele-zu-viele-Beziehung – Erstellen von Fremdschlüsseleinschränkungen🎜 Eine Zeile von Tabelle A entspricht mehreren Zeilen von Tabelle B, und eine Zeile von Tabelle B entspricht mehreren Zeilen von Tabelle A. Zu diesem Zeitpunkt müssen Sie dies tun Erstellen Sie eine 🎜Zwischentabelle🎜 neu, um die Tabellenbeziehung aufzuzeichnen Bildbeschreibung "/>🎜🎜Hinweis: 🎜🎜Beim Ändern und Löschen kann die mittlere Slave-Tabelle nach Belieben gelöscht und geändert werden, aber die Daten, die die Slave-Tabelle auf beiden Seiten von der Master-Tabelle abhängt, können nicht gelöscht oder geändert werden. 🎜🎜🎜Gemeinsame Abfrage mehrerer Tabellen (sehr wichtig)🎜🎜• Das Konzept🎜 besteht darin, zwei oder mehr Tabellen gleichzeitig abzufragen🎜, denn manchmal, wenn Benutzer Daten anzeigen, stammen die Daten, die sie anzeigen müssen, aus mehreren Tabellen🎜🎜 • Datenvorbereitung 🎜 Hinweis: 🎜 Fremdschlüsseleinschränkungen wirken sich nur auf das Hinzufügen, Löschen und Ändern von Daten aus und haben keinen Einfluss auf die Datenabfrage 🎜🎜 • Querverbindungsabfrage select * from A, B – -- erzeugt Redundanz. Verbleibende Daten 🎜🎜 1. Die Querverbindungsabfrage gibt das kartesische Produkt aller Datenzeilen der verbundenen 🎜 zwei Tabellen zurück 🎜🎜 2. Die kartesische Menge kann als jede Zeile einer Tabelle und jede Zeile einer anderen Tabelle verstanden werden Tabellenübereinstimmung 🎜 3. Wenn Tabelle A m Datenzeilen und Tabelle B n Datenzeilen enthält, werden 🎜m * n Datenzeilen zurückgegeben 🎜🎜 4. Das kartesische Produkt erzeugt viele 🎜redundante🎜Daten und Andere nachfolgende Abfragen können basierend auf dem Satz eine bedingte Filterung durchführen. 🎜🎜Inner-Join-Abfrage🎜🎜 sucht nach der 🎜Schnittmenge zwischen den beiden Tabellen🎜🎜Bildbeschreibung hier einfügen🎜🎜inner kann weggelassen werden🎜🎜Impliziter innerer Join (SQL92-Standard): 🎜
select* from dept3 right outer join emp3 on dept3.deptno =emp3.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren
🎜Explizite innere Verbindung ( SQL99-Standard); 🎜
select* from dept3 left outer join emp3 on dept3.deptno=emp3.dept_idunionselect* from dept3 right outer join emp3 on dept3.deptno =emp3.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren
usemydb3;select* from dept3 a left outer join emp3 b on a.deptno = b.dept.idselect* from dept3 a left join emp3 b on a.deptno = b.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren
🎜 Sie können der Tabelle auch einen Alias ​​geben, wie zum Beispiel; 🎜
select* from Aleft join B on 条件1left join C on 条件2left join D on 条件3;
Nach dem Login kopieren
Nach dem Login kopieren
🎜Bildbeschreibung hier einfügen🎜🎜 Bilde Beschreibung 🎜 Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

----外连接查询
----查询哪些部门有员工,哪些部门没有员工

use mydb3;select* from dept3 left outer join emp3 on dept3.deptno =emp3.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren

----查询哪些员工有对应的部门,哪些没有

select* from dept3 right outer join emp3 on dept3.deptno =emp3.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren

----使用 union 关键字实现左外连接和右外连接的并集

select* from dept3 left outer join emp3 on dept3.deptno=emp3.dept_idunionselect* from dept3 right outer join emp3 on dept3.deptno =emp3.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

----外连接查询
----查询哪些部门有员工,哪些部门没有员工

usemydb3;select* from dept3 a left outer join emp3 b on a.deptno = b.dept.idselect* from dept3 a left join emp3 b on a.deptno = b.dept_id;
Nach dem Login kopieren
Nach dem Login kopieren

----外连接多个表

select* from Aleft join B on 条件1left join C on 条件2left join D on 条件3;
Nach dem Login kopieren
Nach dem Login kopieren

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

----查询哪些员工有对应的部门,哪些没有

select * from dept3 a right outer join emp3 b on a.deptno = b.dept_id;select* from dept3 a right join emp3 b on a.deptno = b,dept_id;select*from Aright joinB on条件1,right joinC on条件2,right joinD on条件3;
Nach dem Login kopieren

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

----实现满外连接: full join
----使用 union 关键字实现左外连接和右外连接的并集
----select * from dept3 a full join emp3 b on a.deptno = b.dept_id; --不能执行

----union是将两个查询结果上下拼接,并去重

select* from dept3 a left join emp3 b on a.deptno = b.dept_idunionselect* from dept3 a right join emp3 b on a.deptno = b.dept_id
Nach dem Login kopieren

----union all 是将两个查询结果上下拼接,不去重

select* from dept3 a left join emp3 b on a.deptno = b.dept_idunion allselect* from dept3 a right join emp3 b on a.deptno= b.dept_id
Nach dem Login kopieren

Beherrschen Sie den MySQL-Multitabellenbetrieb vollständig

• 基本子查询
• 子查询关键字-ALL
• 子查询关键字-ANY ,SOME
• 子查询关键字-IN
• 子查询关键字-EXISTS
• 自关联查询

推荐学习:mysql视频教程

Das obige ist der detaillierte Inhalt vonBeherrschen Sie den MySQL-Multitabellenbetrieb vollständig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Apr 10, 2025 pm 01:36 PM

Eine effektive Überwachung von Redis -Datenbanken ist entscheidend für die Aufrechterhaltung einer optimalen Leistung, die Identifizierung potenzieller Engpässe und die Gewährleistung der Zuverlässigkeit des Gesamtsystems. Redis Exporteur Service ist ein leistungsstarkes Dienstprogramm zur Überwachung von Redis -Datenbanken mithilfe von Prometheus. In diesem Tutorial führt Sie die vollständige Setup und Konfiguration des Redis -Exporteur -Dienstes, um sicherzustellen, dass Sie nahtlos Überwachungslösungen erstellen. Durch das Studium dieses Tutorials erhalten Sie voll funktionsfähige Überwachungseinstellungen

See all articles