Rumah > Artikel > pangkalan data > Satu artikel menganalisis pertanyaan struktur pokok ORACLE
Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle terutamanya artikel yang menganalisis pertanyaan struktur pokok ORACLE. Mari kita lihat bersama-sama semua orang.
Tutorial yang disyorkan: "Tutorial Video Oracle"
Dalam pengaturcaraan harian, kita sering menghadapi struktur pokok Mewakili, sebagai contoh, organisasi struktur, bahagian pentadbiran, dsb. Ini sering dipaparkan melalui jadual dalam pangkalan data. Di sini kita mengambil jadual pembahagian pentadbiran yang mudah sebagai contoh Dalam penggunaan sebenar, medan dan tahap penerangan lain boleh ditambah kepadanya.
Jadual dikaitkan dengan ID dan PID untuk merealisasikan penyimpanan struktur pokok. Penciptaan jadual dan pernyataan data adalah seperti berikut:
-- Create table create table TREETEST ( id NVARCHAR2(50), pid NVARCHAR2(50), name NVARCHAR2(50) )
insert into TREETEST (ID, PID, NAME) values ('1', null, '山东省'); insert into TREETEST (ID, PID, NAME) values ('2', '1', '青岛市'); insert into TREETEST (ID, PID, NAME) values ('3', '1', '烟台市'); insert into TREETEST (ID, PID, NAME) values ('4', null, '河南省'); insert into TREETEST (ID, PID, NAME) values ('5', null, '河北省'); insert into TREETEST (ID, PID, NAME) values ('6', '2', '市南区'); insert into TREETEST (ID, PID, NAME) values ('7', '2', '市北区'); insert into TREETEST (ID, PID, NAME) values ('8', '2', '即墨市');
Bagaimana hendak menanyakan struktur pokok? Oracle menyediakan pertanyaan rekursif untuk pertanyaan. , Tapis semua rekod yang dikembalikan.
Syarat 2---Keadaan mengehadkan nod akar Sudah tentu, anda juga boleh melonggarkan kebenaran untuk mendapatkan berbilang nod akar, iaitu, mendapatkan berbilang pokokSELECT [Column]….. FEOM [Table] WHERE Conditional1 START WITH Conditional2 CONNECT BY PRIOR Conditional3 ORDER BY [Column]
Syarat 3-- -Syarat pautan, tujuannya ialah Berikan apakah hubungan antara bapa dan anak lelaki, dan lakukan pertanyaan rekursif berdasarkan hubungan ini (dalam jadual di atas, ia adalah ID=PID) Isih---isih semua rekod yang dikembalikan
di mana Nod dengan ID 1 ialah Wilayah Shandong Hasil pertanyaan adalah seperti berikut:
SELECT * FROM TREETEST t START WITH t.PID=1 CONNECT BY PRIOR t.ID = t.PID2. Pertanyaan. nod anak peringkat seterusnya bagi Bandar Qingdao (perhatikan perbezaan daripada yang di atas , semua nod anak dan nod anak peringkat seterusnya)
3. Jika anda perlu menyambungkan Bandar Qingdao, Wilayah Shandong, dsb. untuk dipaparkan, anda boleh menggunakan SYS_CONNECT_BY_PATH Untuk mencapai
hasil pertanyaan adalah seperti berikut:
SELECT t.ID, SYS_CONNECT_BY_PATH(t.NAME, '\') AS INDU_NAME FROM TREETEST t START WITH t.PID IS NULL CONNECT BY PRIOR t.ID = t.PID4. Dengan cara yang sama, anda juga boleh menggunakan Carian dari bawah ke atas
Tutorial yang disyorkan: "
Tutorial Video Oracle"
Atas ialah kandungan terperinci Satu artikel menganalisis pertanyaan struktur pokok ORACLE. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!