Inhaltsverzeichnis
1
2. Verwenden Sie den Differenzsatz, um eine relationale Divisionsoperation zu implementieren
3. Suchen Sie nach gleichen Teilmengen
4 Löschen Sie die doppelte
-Übung
Inhalt Die meisten davon stammen aus dem „SQL Advanced Textbook“ und sind nur Notizen. Einige der Codes in den Übungen sind original. " > Inhalt Die meisten davon stammen aus dem „SQL Advanced Textbook“ und sind nur Notizen. Einige der Codes in den Übungen sind original.
Heim Datenbank MySQL-Tutorial Legen Sie Operationen mit SQL fest

Legen Sie Operationen mit SQL fest

Jun 04, 2018 am 09:29 AM
运算 Benehmen 集合

Dieser Artikel stellt hauptsächlich die Verwendung von SQL für Mengenoperationen vor, die einen gewissen Referenzwert haben. Jetzt können Freunde in Not darauf zurückgreifen

1

drop table if exists tbl_a;create table tbl_a(
key1 varchar(10),
col_1 int4,
col_2 int4,
col_3 int4
);insert into tbl_a values('A', 2, 3, 4);
insert into tbl_a values('B', 0, 7, 9);
insert into tbl_a values('c', 5, 1, 6);
drop table if exists tbl_b;create table tbl_b(
key1 varchar(10),
col_1 int4,
col_2 int4,
col_3 int4
);
insert into tbl_b values('A', 2, 3, 4);
insert into tbl_b values('B', 0, 7, 9);
insert into tbl_b values('c', 5, 1, 6);-- ## 如果union a b 行数一致则两张表相等 select count(1) row_cnt  from ( select * 
           from tbl_A           union 
          select *            from tbl_b
        ) tmp
;
Nach dem Login kopieren


Finden Sie direkt den Unterschied zwischen den beiden Tabellen

(select * from tbl_a except
 select * from tbl_b) union all
 (select * from tbl_b  except
  select * from tbl_a);
Nach dem Login kopieren

2. Verwenden Sie den Differenzsatz, um eine relationale Divisionsoperation zu implementieren

Erstellen Sie eine Tabelle

drop table if exists skills;create table skills(
skill varchar(10)
);insert into skills values('oracle');
insert into skills values('unix');insert into skills values('java');drop table if exists empskills;create table empskills(
emp varchar(10),
skill varchar(10)
);insert into empskills values('相田','oracle');
insert into empskills values('相田','unix');
insert into empskills values('相田','java');
insert into empskills values('相田','c#');
insert into empskills values('神奇','oracle');
insert into empskills values('神奇','unix');
insert into empskills values('神奇','java');
insert into empskills values('平井','oracle');
insert into empskills values('平井','unix');
insert into empskills values('平井','PHP');
insert into empskills values('平井','Perl');
insert into empskills values('平井','C++');
insert into empskills values('若田部','Perl');
insert into empskills values('度来','oracle');
Nach dem Login kopieren
rrree

3. Suchen Sie nach gleichen Teilmengen

--把除法变成减法select distinct emp  from empskills es1 where not exists
        (select skill from skills
         expect         select skill from empskills es2          where es1.emp = es2.emp);
Nach dem Login kopieren

Ideen: Beide Lieferanten handeln mit der gleichen Art von Teilen (einfach entsprechend der Teilespalte verbinden) Die Anzahl der Teiletypen der beiden Lieferanten ist gleich (d. h. es erfolgt eine Eins-zu-Eins-Zuordnung) (Anzahllimit)

drop table if exists supparts;create table supparts(
sup varchar(10),
part varchar(10)
);insert into supparts values('A', '螺丝');
insert into supparts values('A', '螺母');
insert into supparts values('A', '管子');
insert into supparts values('B', '螺丝');
insert into supparts values('B', '管子');
insert into supparts values('C', '螺丝');
insert into supparts values('C', '螺母');
insert into supparts values('C', '管子');
insert into supparts values('D', '螺丝');
insert into supparts values('D', '管子');
insert into supparts values('E','保险丝');
insert into supparts values('E', '螺母');
insert into supparts values('E', '管子');
insert into supparts values('F','保险丝');
Nach dem Login kopieren

4 Löschen Sie die doppelte

select a.sup s1, b.sup s2  from supparts a, supparts b where a.sup < b.sup                       -- 生成供应商的全部组合 
   and a.part = b.part                     -- 条件1:经营同种类型的零件 
 group by a.sup, b.suphaving count(*) = (select count(1)         -- 条件2:经营的零件的数量种类相同 a = 中间数                     from supparts c                    where c.sup = a.sup)   and count(*) = (select count(1)         -- 条件2:经营的零件的数量种类相同 b = 中间数                     from supparts d                    where d.sup = b.sup)
;
Nach dem Login kopieren

-Übung

drop table if exists products;create table products(
rowid int4,
name1 varchar(10),
price int4
);insert into products values(1,&#39;苹果&#39;,50);insert into products values(2,&#39;橘子&#39;,100);
insert into products values(3,&#39;橘子&#39;,100);insert into products values(4,&#39;橘子&#39;,100);
insert into products values(5,&#39;香蕉&#39;,80);-- 删除重行高效SQL语句(1):通过EXCEPT求补集delete from productswhere rowid  in (select rowid           -- 全部rowid                   from products 
                 except                 -- 减去                 select max(rowid)      -- 要留下的rowid                   from products                  group by name1, price
                  );-- 删除重行高效SQL语句(2):通过not indelete from products where rowid not in (select max(rowid)                      from products                     group by name1, price
                    );
Nach dem Login kopieren

Inhalt Die meisten davon stammen aus dem „SQL Advanced Textbook“ und sind nur Notizen. Einige der Codes in den Übungen sind original.

Das obige ist der detaillierte Inhalt vonLegen Sie Operationen mit SQL fest. 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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Warum ist es schwierig, sammlungsähnliche Funktionen in der Go-Sprache zu implementieren? Warum ist es schwierig, sammlungsähnliche Funktionen in der Go-Sprache zu implementieren? Mar 24, 2024 am 11:57 AM

Es ist schwierig, sammlungsähnliche Funktionen in der Go-Sprache zu implementieren, was viele Entwickler beschäftigt. Im Vergleich zu anderen Programmiersprachen wie Python oder Java verfügt die Go-Sprache nicht über integrierte Sammlungstypen wie Set, Map usw., was Entwickler bei der Implementierung von Sammlungsfunktionen vor einige Herausforderungen stellt. Schauen wir uns zunächst an, warum es schwierig ist, sammlungsähnliche Funktionen direkt in der Go-Sprache zu implementieren. In der Go-Sprache sind die am häufigsten verwendeten Datenstrukturen Slice und Map. Sie können jedoch sammlungsähnliche Funktionen ausführen

So optimieren Sie die Sortierleistung von Java-Sammlungen So optimieren Sie die Sortierleistung von Java-Sammlungen Jun 30, 2023 am 10:43 AM

Java ist eine leistungsstarke Programmiersprache, die in verschiedenen Arten der Softwareentwicklung weit verbreitet ist. Bei der Java-Entwicklung handelt es sich um Szenarien, bei denen es häufig um das Sortieren von Sammlungen geht. Wenn jedoch keine Leistungsoptimierung für die Sammlungssortierung durchgeführt wird, kann die Ausführungseffizienz des Programms sinken. In diesem Artikel wird untersucht, wie die Leistung der Sortierung von Java-Sammlungen optimiert werden kann. 1. Wählen Sie die entsprechende Sammlungsklasse aus. In Java gibt es viele Sammlungsklassen, die zum Sortieren verwendet werden können, z. B. ArrayList, LinkedList, TreeSet usw. Es gibt verschiedene Sammlungsklassen

Kenntnisse im Betrieb von Oracle-Datenbanken: Detaillierte Erläuterung des Subtraktionsvorgangs Kenntnisse im Betrieb von Oracle-Datenbanken: Detaillierte Erläuterung des Subtraktionsvorgangs Mar 02, 2024 pm 06:15 PM

Als leistungsstarkes relationales Datenbankverwaltungssystem bietet die Oracle-Datenbank eine Fülle von Rechenoperationen, um den Benutzeranforderungen gerecht zu werden. Im täglichen Datenbankbetrieb ist die Subtraktionsoperation eine häufige und wichtige Operation. Sie kann uns dabei helfen, die Subtraktionsoperation von Daten zu realisieren, um die benötigten Ergebnisse zu erhalten. In diesem Artikel werden die Techniken im Zusammenhang mit Subtraktionsoperationen in der Oracle-Datenbank ausführlich erläutert und spezifische Codebeispiele gegeben, um den Lesern zu helfen, diese Funktion besser zu verstehen und zu verwenden. 1. Grundkonzepte von Subtraktionsoperationen in Oracle-Daten

Fügen Sie alle Elemente einer Sammlung zu einer anderen hinzu, indem Sie die Methode addAll() der Klasse HashSet verwenden Fügen Sie alle Elemente einer Sammlung zu einer anderen hinzu, indem Sie die Methode addAll() der Klasse HashSet verwenden Jul 24, 2023 am 08:58 AM

Verwenden Sie die Methode addAll() der Klasse HashSet, um alle Elemente in einer Sammlung zu einer anderen Sammlung hinzuzufügen. HashSet ist eine Implementierungsklasse im Java-Sammlungsframework. Sie erbt von AbstractSet und implementiert die Set-Schnittstelle. HashSet ist eine ungeordnete Menge, die auf einer Hash-Tabelle basiert und keine doppelten Elemente zulässt. Es bietet viele häufig verwendete Methoden zum Betreiben von Elementen in der Sammlung, darunter die Methode addAll(). Die Funktion der Methode addAll() besteht darin, das angegebene hinzuzufügen

Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Mar 10, 2024 pm 04:36 PM

Praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Während der Entwicklung des Laravel-Frameworks stellen Sammlungen eine sehr nützliche Datenstruktur dar, die umfangreiche Methoden zur Datenbearbeitung bereitstellt. Unter diesen ist die Where-Methode eine häufig verwendete Filtermethode, mit der Elemente in einer Sammlung basierend auf bestimmten Bedingungen gefiltert werden können. In diesem Artikel wird die Verwendung der Where-Methode in Laravel-Sammlungen vorgestellt und ihre Verwendung anhand spezifischer Codebeispiele demonstriert. 1. Grundlegende Verwendung der Where-Methode

Häufige Probleme mit gleichzeitigen Sammlungen und Thread-Sicherheit in C# Häufige Probleme mit gleichzeitigen Sammlungen und Thread-Sicherheit in C# Oct 09, 2023 pm 10:49 PM

Häufige Probleme mit gleichzeitigen Sammlungen und Thread-Sicherheit in C# Bei der C#-Programmierung ist die Handhabung gleichzeitiger Vorgänge eine sehr häufige Anforderung. Thread-Sicherheitsprobleme treten auf, wenn mehrere Threads gleichzeitig auf dieselben Daten zugreifen und diese ändern. Um dieses Problem zu lösen, bietet C# einige gleichzeitige Erfassungs- und Thread-Sicherheitsmechanismen. In diesem Artikel werden gängige gleichzeitige Sammlungen in C# und der Umgang mit Thread-Sicherheitsproblemen vorgestellt und spezifische Codebeispiele gegeben. Gleichzeitige Sammlung 1.1ConcurrentDictionaryConcurrentDictio

Analyse und Lösungen für PHP-Gleitkomma-Operationsprobleme Analyse und Lösungen für PHP-Gleitkomma-Operationsprobleme Feb 27, 2024 am 11:03 AM

PHP ist eine in der Website-Entwicklung weit verbreitete Skriptsprache. Aufgrund ihrer leistungsstarken Funktionen und Flexibilität ist sie für viele Entwickler das Werkzeug der Wahl. Allerdings hat PHP auch einige Probleme beim Umgang mit Gleitkommaoperationen, insbesondere wenn es um Präzision und Genauigkeit geht. In diesem Artikel werden PHP-Gleitkomma-Betriebsprobleme analysiert und einige Lösungen vorgeschlagen. Außerdem werden spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Probleme besser zu verstehen und zu lösen. Problemanalyse In PHP sind Gleitkommazahlen ein Datentyp, der zur Darstellung von Dezimalzahlen verwendet wird.

Java Iterator vs. Iterable: Ein Schritt zum Schreiben eleganten Codes Java Iterator vs. Iterable: Ein Schritt zum Schreiben eleganten Codes Feb 19, 2024 pm 02:54 PM

Iterator-Schnittstelle Die Iterator-Schnittstelle ist eine Schnittstelle zum Durchlaufen von Sammlungen. Es bietet mehrere Methoden, darunter hasNext(), next() und remove(). Die Methode hasNext() gibt einen booleschen Wert zurück, der angibt, ob es ein nächstes Element in der Sammlung gibt. Die Methode next() gibt das nächste Element in der Sammlung zurück und entfernt es aus der Sammlung. Die Methode „remove()“ entfernt das aktuelle Element aus der Sammlung. Das folgende Codebeispiel zeigt, wie die Iterator-Schnittstelle zum Durchlaufen einer Sammlung verwendet wird: Listnames=Arrays.asList("John","Mary","Bob");Iterator

See all articles