Heim >Datenbank >MySQL-Tutorial >Die MySQL5.7-Datenbank führt Tabellenverbindungen, Unterabfragen und Fremdschlüssel ein
Kostenlose Lernempfehlung: MySQL-Video-Tutorial
Bildbeschreibung hier einfügen
Das Ergebnis der Abfrage sind die von den beiden Tabellen übereinstimmenden Daten. Die in der linken Tabelle enthaltenen Daten werden gefüllt mit Null für die Daten, die in der rechten Tabelle nicht vorhanden sind
select * from 表1 inner join 表2 on 表1.列 = 表2.列-- 显示学生的所有信息,但只显示班级名称select s.*, c.name from students s inner join classes c on s.id=c.id;-- 将班级名称显示在第一列select c.name, s.* from students s inner join classes c on s.id=c.id;-- 查询 有能够对应班级的学生以及班级信息,按照班级进行排序select c.name, s.* from students s inner join classes c on s.cls_id = c.id order by c.name asc;-- 当同一个班级时,按照学生的id进行从小到大排序select c.name, s.* from students s inner join classes c on s.cls_id = c.id order by c.name asc, s.id asc;
Das Abfrageergebnis sind die von den beiden Tabellen übereinstimmenden Daten. Die in der rechten Tabelle enthaltenen Daten werden mit Null gefüllt Daten, die in der linken Tabelle nicht vorhanden sind.
select * from 表1 left join 表2 on 表1.列=表2.列-- students表左连接classes表 并查看班级为null的数据select * from students s left join classes c on s.cls_id=c.id having s.cls_id is null;-- 左连接 并且 查询 s.cls_id=1 并且 s.name="small-j" 的数据select * from students s left join classes c on s.cls_id=c.id having s.cls_id=1 and s.name="small-j";
In einigen Fällen ist die erforderliche Bedingung bei einer Abfrage das Ergebnis einer anderen SELECT-Anweisung. In diesem Fall wird eine Unterabfrage verwendet
select * from 表1 right join 表2 on 表1.列 = 表2.列;
Bildbeschreibung hier einfügen
wird einfach als eine Verbindungsabfrage zwischen sich selbst und sich selbst verstanden. Bei zwei Tabellen mit einer zugehörigen Beziehung ist die Tabelle, in der sich der Primärschlüssel des zugehörigen Felds befindet, die Haupttabelle (übergeordnete Tabelle) und die Tabelle, in der sich der Fremdschlüssel befindet, die sekundäre Tabelle (untergeordnete Tabelle).
Hinweis: Der Primärschlüssel darf keine Nullwerte enthalten, aber in Fremdschlüsseln sind Nullwerte zulässig. Das heißt, solange jeder Nicht-Null-Wert des Fremdschlüssels im angegebenen Primärschlüssel vorkommt Der Inhalt dieses Fremdschlüssels ist korrekt.
select * from 表 where 表(子查询语句)-- 查询出students中身高最高的男生。显示名字和身高select s.name, s.high from students s where high=(select max(high) from students) and gender="男";-- 查询出高于平均身高的学生信息select * from students where high>(select avg(high) from students);-- 查询学生班级号cls_id能够对应的学生信息select * from students where cls_id in (select id from students);-- 查询最大年龄的女生的idselect * from students where id=(select max(id) from students where gender="女") and gender="女";
-- 查询广东省下的所有广东市select * from cities c inner join provinces p on c.provinceid=p.provinceid having p.province="广东省";-- 查询广东省下的所有广东市-- 自关联select * from areas a inner join areas b on a.id=b.pid having a.name="广东";
Verwandte kostenlose Lernempfehlungen:
Das obige ist der detaillierte Inhalt vonDie MySQL5.7-Datenbank führt Tabellenverbindungen, Unterabfragen und Fremdschlüssel ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!