Heim Datenbank MySQL-Tutorial oracle 递归查询-个人总结

oracle 递归查询-个人总结

Jun 07, 2016 pm 03:18 PM
c leo oracle persönlich 总结 查询 递归 首先

首先,建表: create table T_TEST_WORD( id NUMBER, pid VARCHAR2(20), name VARCHAR2(20)) 插入数据: insert into T_TEST_WORD (id, pid, name)values (1, '-1', '中国');insert into T_TEST_WORD (id, pid, name)values (2, '1', '江苏');insert into T_

首先,建表:

create table T_TEST_WORD
(
  id   NUMBER,
  pid  VARCHAR2(20),
  name VARCHAR2(20)
)
Nach dem Login kopieren


插入数据:


insert into T_TEST_WORD (id, pid, name)
values (1, '-1', '中国');
insert into T_TEST_WORD (id, pid, name)
values (2, '1', '江苏');
insert into T_TEST_WORD (id, pid, name)
values (3, '1', '浙江');
insert into T_TEST_WORD (id, pid, name)
values (4, '2', '南京');
insert into T_TEST_WORD (id, pid, name)
values (5, '2', '无锡');
insert into T_TEST_WORD (id, pid, name)
values (6, '1', '安徽');
insert into T_TEST_WORD (id, pid, name)
values (7, '4', '雨花台区');
insert into T_TEST_WORD (id, pid, name)
values (8, '-1', '美国');
insert into T_TEST_WORD (id, pid, name)
values (9, '-1', '俄罗斯');
commit;
Nach dem Login kopieren

查询下表中的数据:

表1

oracle 递归查询-个人总结


其中PID为-1的代表根节点。


开始进行递归查询:

查询结果如下:

表2

oracle 递归查询-个人总结


说明:

select ... from tablename(表名)   where  条件1  start  with  条件2   connect  by  条件3  and  条件4 ...


看下这个语句(由根节点向子节点查询)


select  t.* , level  from T_TEST_WORD  t  start  with pid='-1'  connect  by  prior  id = pid(由根节点向子节点查询)


从T_TEST_WORD表中查询所有记录,从pid=-1的开始查询,且上一次查询记录的id作为本次查询的pid,以上表为例,举例如下:

第一次查询出pid=-1的记录是id为1的那条。

第二次查询时,查询pid=1的(上次查询记录的id是1)记录,可以查询到id为2的那条记录

第三次查询时,查询pid=2的(上次查询记录的id是2)记录,可以查询到id为4的那条记录,以此类推......

由上,查询到了表2的记录。


由树的根节点向子节点查询时,查询节点的顺序是按照树的前序遍历(DLR)进行的(1,2,4,7,5,3,6,8,9),如下图1

图1:

oracle 递归查询-个人总结

(比较丑的图,凑合看吧,嘻嘻)

注意:那个level要有start  with  ......  connect  by ......  才有效哦,不然会报错的。


再看这句(由子节点向根节点查询)

select t.* ,level from T_TEST_WORD t start with pid='2' connect by  id = prior pid
Nach dem Login kopieren

从pid=2的开始(向上)查询,且上一次查询记录的pid作为本次查询的id


oracle 递归查询-个人总结


prior挨着谁,就将谁作为本次查询的某某关键字,比如connect by  id = prior pid,就是将上次的pid作为本次查询的id。

注意,level是伪列,查询数据所对应的级,或者说深度吧。


小菜的总结,有问题请指出,谢谢咯!


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 尊渡假赌尊渡假赌尊渡假赌

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)

Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? May 10, 2024 am 03:27 AM

Der Aufbewahrungszeitraum von Oracle-Datenbankprotokollen hängt vom Protokolltyp und der Konfiguration ab, einschließlich: Redo-Protokolle: Wird durch die maximale Größe bestimmt, die mit dem Parameter „LOG_ARCHIVE_DEST“ konfiguriert wird. Archivierte Redo-Protokolle: Bestimmt durch die maximale Größe, die durch den Parameter „DB_RECOVERY_FILE_DEST_SIZE“ konfiguriert wird. Online-Redo-Logs: nicht archiviert, gehen beim Neustart der Datenbank verloren und der Aufbewahrungszeitraum stimmt mit der Instanzlaufzeit überein. Audit-Protokoll: Wird durch den Parameter „AUDIT_TRAIL“ konfiguriert und standardmäßig 30 Tage lang aufbewahrt.

Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist May 10, 2024 am 01:48 AM

Die Startsequenz der Oracle-Datenbank ist: 1. Überprüfen Sie die Voraussetzungen. 3. Starten Sie die Datenbankinstanz. 6. Überprüfen Sie den Datenbankstatus . Aktivieren Sie den Dienst (falls erforderlich). 8. Testen Sie die Verbindung.

Wie viel Speicher benötigt Oracle? Wie viel Speicher benötigt Oracle? May 10, 2024 am 04:12 AM

Die von Oracle benötigte Speichermenge hängt von der Datenbankgröße, dem Aktivitätsniveau und dem erforderlichen Leistungsniveau ab: zum Speichern von Datenpuffern, Indexpuffern, zum Ausführen von SQL-Anweisungen und zum Verwalten des Datenwörterbuch-Cache. Die genaue Menge hängt von der Datenbankgröße, dem Aktivitätsgrad und dem erforderlichen Leistungsniveau ab. Zu den Best Practices gehören das Festlegen der geeigneten SGA-Größe, die Dimensionierung von SGA-Komponenten, die Verwendung von AMM und die Überwachung der Speichernutzung.

So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle May 09, 2024 pm 09:33 PM

Um die Anzahl der Vorkommen eines Zeichens in Oracle zu ermitteln, führen Sie die folgenden Schritte aus: Ermitteln Sie die Gesamtlänge einer Zeichenfolge. Ermitteln Sie die Länge der Teilzeichenfolge, in der ein Zeichen vorkommt. Zählen Sie die Anzahl der Vorkommen eines Zeichens, indem Sie die Länge der Teilzeichenfolge subtrahieren von der Gesamtlänge.

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers May 10, 2024 am 04:00 AM

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers: Prozessor: Multi-Core, mit einer Hauptfrequenz von mindestens 2,5 GHz. Für große Datenbanken werden 32 Kerne oder mehr empfohlen. Speicher: Mindestens 8 GB für kleine Datenbanken, 16–64 GB für mittelgroße Datenbanken, bis zu 512 GB oder mehr für große Datenbanken oder hohe Arbeitslasten. Speicher: SSD- oder NVMe-Festplatten, RAID-Arrays für Redundanz und Leistung. Netzwerk: Hochgeschwindigkeitsnetzwerk (10 GbE oder höher), dedizierte Netzwerkkarte, Netzwerk mit geringer Latenz. Sonstiges: Stabile Stromversorgung, redundante Komponenten, kompatibles Betriebssystem und Software, Wärmeableitung und Kühlsystem.

So lesen Sie eine DBF-Datei in Oracle So lesen Sie eine DBF-Datei in Oracle May 10, 2024 am 01:27 AM

Oracle kann DBF-Dateien durch die folgenden Schritte lesen: Erstellen Sie eine externe Tabelle und verweisen Sie auf die DBF-Datei.

Wie viel Speicher wird für die Verwendung der Oracle-Datenbank benötigt? Wie viel Speicher wird für die Verwendung der Oracle-Datenbank benötigt? May 10, 2024 am 03:42 AM

Die für eine Oracle-Datenbank erforderliche Speichermenge hängt von der Datenbankgröße, dem Workload-Typ und der Anzahl gleichzeitiger Benutzer ab. Allgemeine Empfehlungen: Kleine Datenbanken: 16–32 GB, mittlere Datenbanken: 32–64 GB, große Datenbanken: 64 GB oder mehr. Weitere zu berücksichtigende Faktoren sind die Datenbankversion, Speicheroptimierungsoptionen, Virtualisierung und Best Practices (Speichernutzung überwachen, Zuweisungen anpassen).

Von Oracle geplante Aufgaben führen den Erstellungsschritt einmal täglich aus Von Oracle geplante Aufgaben führen den Erstellungsschritt einmal täglich aus May 10, 2024 am 03:03 AM

Um in Oracle eine geplante Aufgabe zu erstellen, die einmal täglich ausgeführt wird, müssen Sie die folgenden drei Schritte ausführen: Erstellen Sie einen Job. Fügen Sie dem Job einen Unterjob hinzu und legen Sie seinen Zeitplanausdruck auf „INTERVALL 1 TAG“ fest. Aktivieren Sie den Job.

See all articles