Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan bahasa Oracle untuk pertanyaan berkaitan

Cara menggunakan bahasa Oracle untuk pertanyaan berkaitan

PHPz
PHPzasal
2023-04-17 11:27:592493semak imbas

Dalam Bahasa Pertanyaan Pangkalan Data (SQL), pertanyaan jadual hubungan ialah teknik biasa yang digunakan untuk mendapatkan semula data daripada berbilang jadual dan mewujudkan beberapa hubungan antara jadual ini. Pangkalan data Oracle ialah salah satu sistem pengurusan pangkalan data hubungan yang paling biasa digunakan dan mempunyai fungsi pertanyaan perkaitan data yang berkuasa. Dalam artikel ini, kami akan meneroka cara melaksanakan pertanyaan hubungan menggunakan bahasa Oracle.

1. Pertanyaan korelasi data dan jenisnya

Pertanyaan korelasi data menghubungkan dua atau lebih jadual bersama-sama untuk pertanyaan dan menggabungkan semua data yang akan diambil apabila mengembalikan set hasil. Dalam Oracle, terdapat tiga jenis pertanyaan perkaitan data:

  1. INNER JOIN: Jenis sambungan ini hanya akan mengembalikan data yang memenuhi syarat antara kedua-dua jadual, iaitu, hanya data antara kedua-dua jadual akan dikembalikan baris yang wujud dalam jadual.
  2. LEFT JOIN: Cantuman ini akan mengembalikan semua data yang sepadan antara kedua-dua jadual serta rekod yang tidak sepadan dalam jadual kiri.
  3. SERTAI KANAN: Gabungan ini akan mengembalikan semua data yang sepadan antara kedua-dua jadual serta rekod yang tidak sepadan dalam jadual yang betul.

2. Sintaks Oracle untuk melaksanakan pertanyaan korelasi data

Apabila kita ingin melaksanakan pertanyaan korelasi dalam Oracle, kita boleh menggunakan sintaks berikut:

SELECT *
FROM table1 
JOIN table2 
ON table1.column = table2.column;

Dalam Dalam contoh ini, kami menggunakan kata kunci JOIN untuk menyertai Jadual 1 dan Jadual 2, dan menggunakan klausa ON untuk menentukan keadaan perkaitan antara kedua-dua jadual. Dalam keadaan korelasi, kita boleh menentukan lajur yang hendak dikaitkan dan menetapkan kaedah korelasi.

Sebagai contoh, jika anda ingin menanyakan maklumat pekerja dan jabatan, anda boleh menggunakan arahan berikut:

SELECT employees.name, departments.department_name
FROM employees 
JOIN departments 
ON employees.department_id = departments.department_id;

Dalam contoh ini, kami menggunakan kata kunci JOIN untuk menyambungkan jadual pekerja dan Jadual jabatan Klausa ON digunakan untuk menentukan bahawa nombor jabatan adalah keadaan perkaitan antara dua jadual. Akhir sekali, kami memilih nama pekerja dan nama jabatan daripada dua jadual sebagai hasil pulangan kami.

3. Contoh pertanyaan sertai Oracle

Contoh berikut akan menunjukkan cara melaksanakan pertanyaan gabungan dalaman dan gabungan kiri dalam Oracle:

  1. Pertanyaan sertai dalaman

Dalam contoh ini, kami akan membuat pertanyaan untuk memadankan rekod antara dua jadual dan hanya mengembalikan rekod yang wujud dalam kedua-dua jadual.

Andaikan kami mempunyai jadual "pesanan", yang mengandungi ID pesanan, ID pelanggan, tarikh dan maklumat lain. Terdapat juga jadual "pelanggan" yang mengandungi ID pelanggan, nama pelanggan, alamat dan maklumat lain. Sekarang, kami ingin menanyakan set hasil yang mengandungi nombor pesanan, nama pelanggan dan tarikh pesanan.

SELECT orders.order_id, customers.customer_name, orders.order_date 
FROM orders 
JOIN customers 
ON orders.customer_id = customers.customer_id;

Dalam contoh ini, kami menggunakan kata kunci JOIN untuk menyambung dua jadual, dan klausa ON menentukan keadaan hubungan antara kedua-dua jadual. Kami akan mengembalikan set hasil yang mengandungi ID pesanan, nama pelanggan dan tarikh pesanan.

  1. Pertanyaan sertai kiri

Dalam contoh ini, kami akan membuat pertanyaan untuk memadankan rekod antara dua jadual dan memasukkan semua baris dalam jadual kiri, walaupun tiada baris dengan kanan sertai rekod pemadanan jadual.

Andaikan kita mempunyai jadual "pekerja" yang mengandungi ID pekerja, nama, alamat dan maklumat lain. Terdapat juga jadual "jabatan", yang mengandungi ID jabatan, nama jabatan dan maklumat lain. Sekarang, kami ingin menanyakan set hasil nama pekerja, nama jabatan dan bilangan pekerja dalam jabatan.

SELECT departments.department_name, COUNT(employees.employee_id) AS num_employees 
FROM departments 
LEFT JOIN employees 
ON departments.department_id = employees.department_id 
GROUP BY departments.department_name;

Dalam contoh ini, kami menggunakan kata kunci LEFT JOIN untuk menyertai jadual "jabatan" dan jadual "pekerja", dan menggunakan klausa GROUP BY untuk mengumpulkan hasil. Kami akan mengembalikan nama jabatan untuk setiap jabatan dan bilangan pekerja di jabatan tersebut.

4. Ringkasan

Melalui artikel ini, kami memahami kepentingan pertanyaan korelasi data dalam pangkalan data Oracle dan cara melaksanakannya melalui bahasa SQL. Kami juga menunjukkan cara menggunakan penyataan INNER JOIN dan LEFT JOIN untuk membuat pertanyaan tentang rekod yang sepadan dan tidak sepadan. Dengan memahami dan mempraktikkan kaedah ini, kami dapat memahami pangkalan data dan SQL dengan lebih baik, dan dengan itu menjadi lebih yakin dan tepat apabila memproses sejumlah besar data dan pertanyaan kompleks.

Atas ialah kandungan terperinci Cara menggunakan bahasa Oracle untuk pertanyaan berkaitan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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