


Detaillierte Erläuterung von Einschränkungen, Mehrtabellenabfragen und Unterabfragen in MySQL
1. Primärschlüsseleinschränkungen von Einschränkungen
Einschränkungen: Einschränkungen werden zu Spalten hinzugefügt, um Spalten einzuschränken.
1. Primärschlüsseleinschränkung (eindeutige Identifikation): ungleich Null, eindeutig, referenziert
Wenn eine Spalte der Tabelle als Primärschlüssel festgelegt ist, darf die Klasse nicht leer sein oder ein Duplikat haben Werte. Es gibt
zwei Möglichkeiten, den Primärschlüssel beim Erstellen einer Tabelle anzugeben:
CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, sex VARCHEAR(10) ); CREATE TABLE stu( sid CHAR(6) , sname VARCHAR(20), age INT, sex VARCHEAR(10), PRIMARY KEY(sid) );
Geben Sie die SID-Spalte als Primärschlüsselspalte an, d. h. fügen Sie eine Primärschlüsseleinschränkung hinzu die Sid-Spalte
Beim Ändern des Tabellenprimärschlüssels angeben:
ALTER TABLE stu ADD PRIMARY KEY(sid);
Primärschlüssel löschen:
ALTER TABLE stu DROP PRIMARY KEY;
2. Primärschlüssel automatisch inkrementieren
Weil die Eigenschaften der Primärschlüsselspalte sind: Sie muss eindeutig sein und darf nicht leer sein. Daher wird der Primärschlüssel normalerweise als Ganzzahl angegeben und dann wird sein automatisches Wachstum festgelegt. Dadurch wird sichergestellt, dass die Primärschlüsselspalte vorhanden ist eindeutig und ungleich Null beim Einfügen von Daten.
Geben Sie die automatische Inkrementierung des Primärschlüssels beim Erstellen einer Tabelle an.
CREATE TABLE stu( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(20), age INT, sex VARCHEAR(10) );
Legen Sie die automatische Inkrementierung des Primärschlüssels beim Ändern der Tabelle fest:
ALTER TABLE stu CHANGE sid sid INT AUTO_INCREMENT;
Löschen Sie den Primärschlüssel Automatisches Inkrementieren des Schlüssels beim Ändern der Tabelle:
ALTER TABLE stu CHANGE sid sid INT ;
Automatisches Inkrementieren des Primärschlüssels testen:
INSERT INTO stu VALUES(NULL,'zhangsan',23,'man'); INSERT INTO stu(sname,age,sex) VALUES(NULL,'zhangsan',23,'man');
3. Nicht-Null-Einschränkungen
Da einige Spalten dies nicht können auf Nullwerte gesetzt werden, können Sie Nicht-Null-Einschränkungen hinzufügen.
Zum Beispiel:
CREATE TABLE stu ( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(20) NOT NULL, age INT, sex VARCHAR(10) );
Für die Sname-Spalte wird eine Nicht-Null-Einschränkung festgelegt.
4. Eindeutige Einschränkungen
Einige Spalten in der Garage können keine wiederholten Werte haben, daher können Sie den Spalten eindeutige Einschränkungen hinzufügen.
Zum Beispiel:
CREATE TABLE stu ( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(20) NOT NULL UNIQUE, age INT, sex VARCHAR(10) );
2. Konzeptmodell
1. Objektmodell: In Java ist es Domäne, zum Beispiel: Benutzer, Student.
2. Relationales Modell: Tabellen in der Datenbank sind 1-zu-viele, 1-zu-1 und viele-zu-viele.
3. Fremdschlüsseleinschränkungen
Der Fremdschlüssel muss der Wert des Primärschlüssels einer anderen Tabelle sein (der Fremdschlüssel muss auf den Primärschlüssel verweisen).
Fremdschlüssel kann wiederholt werden
Fremdschlüssel können leer sein
1. Fremdschlüsseleinschränkungen beim Erstellen hinzufügen
CREATE TABLE dept ( deptno INT PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(50) ); insert into dept values(10,'研发部'); insert into dept values(20,'人力部'); insert into dept values(30,'财务部'); CREATE TABLE emp ( empno INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(50), deptno INT, CONSTRAINT fk_emp_dept FOREIGN KEY(dno) REFERENCES dept(deptno) ); CREATE TABLE dept ( deptno INT PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(50) ); INSERT INTO dept VALUES(10,'研发部'); INSERT INTO dept VALUES(20,'人力部'); INSERT INTO dept VALUES(30,'财务部'); INSERT INTO emp(empno,ename) VALUES(null,'zhangsan'); INSERT INTO emp(empno,ename,deptno) VALUES(null,'lisi',10); INSERT INTO emp(empno,ename,deptno) VALUES(null,'zhangsan',80); /* Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`mydb2`.`emp`, CONSTRAINT `fk_emp_dept` FOREIGN KEY (`deptno`) REFERENCES `dept` (`deptno`)) */
2. Fremdschlüsseleinschränkungen hinzufügen, wenn die Tabelle geändert wird:
ALTER TABLE emp ADD CONSTRAINT fk_emp_dept FOREIGN KEY(dno) REFERNCES dept(deptno);
IV, Datenbankrelationales Modell
1. Eine Eins-zu-Eins-Beziehung in einer Tabelle herzustellen Es ist notwendig, den Primärschlüssel einer der Tabellen sowohl zu einem Primärschlüssel als auch zu einem Fremdschlüssel zu machen.
2. Viele-zu-viele-BeziehungCREATE TABLE hasband ( hid INT PRIMARY KEY AUTO_INCREMENT, hname VARCHAR(50) ); CREATE TABLE wife ( wid INT PRIMARY KEY AUTO_INCREMENT, wname VARCHAR(50), CONSTRAINT fk_wife_hasband FOREIGN KEY (wid) REFERENCES hasband(hid) );
Um eine Viele-zu-viele-Beziehung in einer Tabelle herzustellen, müssen Sie eine Zwischentabelle verwenden, das heißt, Sie benötigen drei Tabellen und zwei Fremdschlüssel in der Zwischentabelle verweisen jeweils auf die Primärschlüssel der anderen beiden Tabellen.
Stellen Sie eine Beziehung in der Zwischentabelle her, wie zum Beispiel:CREATE TABLE student ( sid INT PRIMARY KEY , ...... ); CREATE TABLE teacher( tid INT PRIMARY KEY , ...... ); CREATE TABLE stu_tea ( sid INT, tid INT, ADD CONSTRAINT fk_stu_tea_sid FOREIGN KEY (sid) REFERENCES student(sid) , ADD CONSTRAINT fk_stu_tea_tid FOREIGN KEY (tid) REFERENCES teacher(tid) );
INSERT INTO stu_tea VALUES(5,1); INSERT INTO stu_tea VALUES(2,2); INSERT INTO stu_tea VALUES(3,2);
Ergebnismenge zusammenführen
Abfrage zusammenführen
Unterabfrage
2. Ergebnisabfrage zusammenführen
Erfordert den Typ und die Anzahl der Spalten in der Ergebnismenge in der zusammengeführten Tabelle sind gleich
UNION, doppelte Zeilen entfernen
UNION ALL, keine doppelten Zeilen entfernen
3. Verbindungsabfrage①KlassifizierungSELECT * FROM 表1名 UNION ALL SELECT * FROM 表2名;
Verbindung
Äußerer Join
Linker äußerer Join
Rechter äußerer Join
Vollständiger äußerer Join (MySQL wird nicht unterstützt)
Natürlicher Join (gehört zu einer vereinfachten Methode)
②Inner Join
Dialekt: SELECT * FROM Tabelle 1 Alias 1, Tabelle 2 Alias 2 WHERE Alias 1.xx = Alias 2.xx ;
Verwenden Sie bedingte Filterung, um nutzlose Informationen aus dem kartesischen Produkt zu entfernen. Standard: SELECT * FROM Tabelle 1 Alias 1 INNER JOIN Tabelle 2 Alias 2 ON Alias 1.xx = Alias 2.xx;SELECT * FROM emp,dept WHERE emp.deptno=dept.deptno; SELECT e.ename, e.sal, d.dname FROM emp e, dept d WHERE e.deptno=d.deptno;
SELECT e.ename, e.sal , d.dname FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;
SELECT e.ename, e.sal , d.dname FROM emp e NATURAL JOIN dept d;
Links außen: SELECT * FROM Table 1 Alias 1 LEFT OUTER JOIN Tabelle 2 Alias 2 ON Alias 1.xx = Alias 2.xx
Die Datensätze in der linken Tabelle werden abgefragt, unabhängig davon, ob sie die Bedingungen erfüllen Die Datensätze in der rechten Tabelle können nur abgerufen werden, wenn sie die Bedingungen erfüllen. Datensätze in der linken Tabelle, die die Bedingungen nicht erfüllen, sind in der rechten Tabelle null.
Linker äußerer natürlicher: SELECT * FROM Tabelle 1 Alias 1 NATURAL LEFT OUTER JOIN Tabelle 2 Alias 2 ON Alias 1.xx = Alias 2.xx;Rechts außen: SELECT * FROM Tabelle 1 Alias 1 RIGHT OUTER JOIN Tabelle 2 Alias 2 ON Alias 1.xx = Alias 2.xx; Die Datensätze auf der rechten Seite In der Tabelle wird abgefragt, ob sie die Bedingungen erfüllen oder nicht, während die Datensätze in der linken Tabelle nur abgerufen werden können, wenn sie die Bedingungen erfüllen. Datensätze in der rechten Tabelle, die die Bedingungen nicht erfüllen, sind in der linken Tabelle null.
SELECT e.ename, e.sal , IFNULL(d.dname,'无部门') AS dname FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno;
4. Unterabfrage
Es gibt eine Abfrage in der Abfrage (überprüfen Sie die Anzahl der ausgewählten Schlüsselwörter)
①Die Position, an der sie erscheint
Nach WHERE Existiert als Bedingung
SELECT e.ename, e.sal , d.dname FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno UNION SELECT e.ename, e.sal , d.dname FROM emp e RIGHT OUTER JOIN dept d ON e.deptno=d.deptno;
Mehrere Zeilen und einzelne Spalte : SELECT * FROM Tabelle 1 Alias 1 WHERE Spalte 1 [IN,ALL,ANY] (SELECT Spalte FROM Tabelle 2 Alias 2 WHERE Bedingung);
Einzelne Zeile und mehrere Spalten: SELECT * FROM Tabelle 1 Alias 1 WHERE (Spalte 1, Spalte 2) IN (SELECT Spalte 1, Spalte 2 FROM Tabelle 2 Alias 2 WHERE Bedingung);Mehrere Zeilen und Spalten: SELECT * FROM Tabelle 1 Alias 1, ( SELECT...) Tabelle 2 Alias 2 WHERE-Bedingung;
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Einschränkungen, Mehrtabellenabfragen und Unterabfragen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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



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 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.

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.

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

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.

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.
