Legen Sie Operationen mit SQL fest
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 ;
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);
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');
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);
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','保险丝');
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) ;
-Übung
drop table if exists products;create table products( rowid int4, name1 varchar(10), price int4 );insert into products values(1,'苹果',50);insert into products values(2,'橘子',100); insert into products values(3,'橘子',100);insert into products values(4,'橘子',100); insert into products values(5,'香蕉',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 );
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!

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



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

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

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

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

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

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.

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
