Jadual Kandungan
Cara oracle secara rekursif menanyakan nod anak
Rumah pangkalan data Oracle Bagaimana untuk menanyakan nod anak secara rekursif dalam Oracle

Bagaimana untuk menanyakan nod anak secara rekursif dalam Oracle

Jan 25, 2022 pm 02:38 PM
oracle

Dalam Oracle, anda boleh menggunakan pernyataan pilih untuk menanyakan nod anak secara rekursif Fungsi pernyataan ini adalah untuk melakukan pertanyaan ringkas pada data jadual MENGIKUT keadaan SEBELUM 2 DI MANA Syarat 3".

Bagaimana untuk menanyakan nod anak secara rekursif dalam Oracle

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Cara oracle secara rekursif menanyakan nod anak

Struktur tatabahasa

SELECT ... FROM    + 表名  START WITH + 条件1 CONNECT BY PRIOR + 条件2  WHERE  + 条件3
Salin selepas log masuk

Syarat 1: Ia adalah pernyataan kelayakan nod akar Sudah tentu, syarat kelayakan boleh santai untuk mendapatkan berbilang akar, iaitu, berbilang pokok dalam hubungan sambungan, selain penyenaraian, ungkapan lajur juga dibenarkan. Klausa START WITH adalah pilihan dan digunakan untuk mengenal pasti nod yang digunakan sebagai nod akar struktur pepohon carian. Jika klausa ini ditinggalkan, ini bermakna semua baris yang memenuhi syarat pertanyaan digunakan sebagai nod akar.

Syarat 2: Ia adalah syarat sambungan, di mana PRIOR digunakan untuk mewakili rekod sebelumnya Contohnya, CONNECT BY PRIOR STUDENT_ID = GRADE_ID, yang bermaksud STUDENT_ID rekod sebelumnya ialah GRADE_ID ini. rekod, iaitu bapa rekod ini adalah rekod sebelumnya. Klausa CONNECT BY menunjukkan bahawa setiap baris data akan diambil dalam susunan hierarki dan menentukan bahawa data dalam jadual akan disambungkan ke dalam hubungan berstruktur pepohon. Operator PRIOR mesti diletakkan di hadapan salah satu daripada dua lajur perhubungan gabungan. Untuk perhubungan induk-anak antara nod, pengendali PRIOR mewakili nod induk pada satu sisi dan nod anak di sisi lain, dengan itu menentukan sama ada susunan struktur pokok dicari adalah atas ke bawah atau bawah ke atas.

Syarat 3: Ia adalah keadaan penapisan, digunakan untuk menapis rekod yang dikembalikan.

Nota:

1, CONNECT BY PRIOR digunakan dalam pertanyaan berstruktur;

2, peranan MULAKAN DENGAN... CONNECT BY PRIOR..., Ringkasnya , ia adalah untuk menyimpan struktur pokok dalam jadual.

Melintasi nod anak ke nod akar.

select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid
Salin selepas log masuk

Melintasi nod akar nod anak (tidak termasuk nod akar).

select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid
Salin selepas log masuk

Melintasi melalui nod akar Nod anak (termasuk nod akar).

select * from persons.dept start with deptid=0 connect by prior deptid=paredeptid
Salin selepas log masuk

Anda boleh menanyakan tahap melalui kata kunci tahap.

select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid
Salin selepas log masuk

Catatan:

mulakan dengan .. Dalam penggunaan .connect by, yang berikut bermula dengan ialah benih rekursif.

Benih rekursi ialah tempat rekursif bermula "sebelumnya" selepas disambungkan oleh Jika lalai: hanya baris permulaan yang memenuhi syarat boleh ditanya dan tiada pertanyaan rekursif akan dilakukan;

Medan yang diletakkan selepas sambung dengan sebelumnya adalah berkaitan dan menunjukkan arah pertanyaan.

Latihan: Dapatkan nod teratas melalui nod anak

select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid
Salin selepas log masuk

Struktur jadual

DEPTID PAREDEPTID NAME
NUMBER NUMBER CHAR (40 Byte)
Salin selepas log masuk

id Jabatan Id jabatan induk (kepunyaan id jabatan mana) Nama jabatan

Tutorial yang disyorkan: "Tutorial Video Oracle"

Atas ialah kandungan terperinci Bagaimana untuk menanyakan nod anak secara rekursif dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memeriksa saiz meja oracle Cara memeriksa saiz meja oracle Apr 11, 2025 pm 08:15 PM

Untuk menanyakan saiz ruang meja oracle, ikuti langkah -langkah berikut: Tentukan nama meja dengan menjalankan pertanyaan: pilih Tablespace_Name dari DBA_TableSpaces; Tanya saiz meja dengan menjalankan pertanyaan: pilih jumlah (bait) sebagai total_size, jumlah (bytes_free) sebagai tersedia_space, jumlah (bytes) - jumlah (bytes_free) sebagai digunakan_space dari dba_data_files di mana tablespace_

Cara mengimport pangkalan data oracle Cara mengimport pangkalan data oracle Apr 11, 2025 pm 08:06 PM

Kaedah Import Data: 1. Gunakan utiliti SQLLoader: Sediakan fail data, buat fail kawalan, dan jalankan SQLLoader; 2. Gunakan alat IMP/EXP: data eksport, data import. Petua: 1. Disyorkan SQL*loader untuk set data besar; 2. Jadual sasaran harus wujud dan perlawanan definisi lajur; 3. Selepas mengimport, integriti data perlu disahkan.

Cara menyahpasang pemasangan Oracle gagal Cara menyahpasang pemasangan Oracle gagal Apr 11, 2025 pm 08:24 PM

Nyahpasang Kaedah untuk kegagalan pemasangan Oracle: Tutup Perkhidmatan Oracle, Padam Fail Program Oracle dan Kekunci Pendaftaran, Nyahpasang pembolehubah persekitaran Oracle, dan mulakan semula komputer. Jika penyahpasang gagal, anda boleh menyahpasang secara manual menggunakan alat penyahpasang Oracle Universal.

Cara menambah medan meja ke oracle Cara menambah medan meja ke oracle Apr 11, 2025 pm 07:30 PM

Gunakan pernyataan ALTER Jadual, sintaks khusus adalah seperti berikut: alter table table_name Tambah column_name data_type [kekangan-klausa]. Di mana: Table_name adalah nama jadual, column_name adalah nama medan, data_type adalah jenis data, dan kekangan-fasal adalah kekangan pilihan. Contoh: Alter Table Pekerja menambah e -mel varchar2 (100) Tambahkan medan e -mel ke jadual pekerja.

Cara menyampaikan semula oracle Cara menyampaikan semula oracle Apr 11, 2025 pm 07:33 PM

Oracle menyediakan pelbagai kaedah pertanyaan deduplikasi: Kata kunci yang berbeza mengembalikan nilai yang unik untuk setiap lajur. Kumpulan oleh klausa mengumpulkan hasil dan mengembalikan nilai tidak berulang bagi setiap kumpulan. Kata kunci yang unik digunakan untuk membuat indeks yang mengandungi hanya baris unik, dan pertanyaan indeks akan secara automatik deduplicate. Fungsi row_number () memberikan nombor unik dan menapis hasil yang mengandungi hanya baris 1. Min () atau max () mengembalikan nilai tidak berulang dari lajur angka. Operator Intersect mengembalikan nilai -nilai bersama kedua -dua set hasil (tiada pendua).

Cara membuat jadual di oracle Cara membuat jadual di oracle Apr 11, 2025 pm 08:00 PM

Mewujudkan Jadual Oracle melibatkan langkah -langkah berikut: Gunakan sintaks Create Table untuk menentukan nama jadual, nama lajur, jenis data, kekangan, dan nilai lalai. Nama jadual harus ringkas dan deskriptif, dan tidak boleh melebihi 30 aksara. Nama lajur hendaklah menjadi deskriptif, dan jenis data menentukan jenis data yang disimpan dalam lajur. Kekangan tidak null memastikan bahawa nilai null tidak dibenarkan dalam lajur, dan klausa lalai menentukan nilai lalai untuk lajur. Kekangan utama utama untuk mengenal pasti rekod unik jadual. Kekangan utama asing menentukan bahawa lajur dalam jadual merujuk kepada kunci utama dalam jadual lain. Lihat penciptaan pelajar jadual sampel, yang mengandungi kunci utama, kekangan unik, dan nilai lalai.

Cara menyulitkan pandangan oracle Cara menyulitkan pandangan oracle Apr 11, 2025 pm 08:30 PM

Penyulitan Oracle View membolehkan anda menyulitkan data dalam pandangan, dengan itu meningkatkan keselamatan maklumat sensitif. Langkah -langkah termasuk: 1) mewujudkan kunci penyulitan induk (MEK); 2) mencipta pandangan yang disulitkan, menyatakan pandangan dan MEK untuk disulitkan; 3) Memberi kuasa pengguna untuk mengakses pandangan yang disulitkan. Bagaimana pandangan yang disulitkan berfungsi: Apabila permintaan pengguna untuk paparan yang disulitkan, Oracle menggunakan MEK untuk menyahsulit data, memastikan bahawa hanya pengguna yang diberi kuasa dapat mengakses data yang boleh dibaca.

Cara melihat contoh nama oracle Cara melihat contoh nama oracle Apr 11, 2025 pm 08:18 PM

Terdapat tiga cara untuk melihat nama contoh di Oracle: Gunakan "sqlplus" dan "pilih instance_name dari v $ instance;" Perintah pada baris arahan. Gunakan "pertunjukan instance_name;" Perintah dalam SQL*Plus. Semak Pembolehubah Alam Sekitar (ORACLE_SID pada Linux) melalui Pengurus Tugas Sistem Operasi, Pengurus Oracle Enterprise, atau melalui sistem operasi.

See all articles