Rumah  >  Artikel  >  pangkalan data  >  Penjelasan terperinci tentang pernyataan subquery mysql

Penjelasan terperinci tentang pernyataan subquery mysql

PHPz
PHPzasal
2023-04-19 14:13:313557semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas dalam penyimpanan dan pengurusan data. Dalam MySQL, subquery ialah bentuk pernyataan biasa. Artikel ini akan memperkenalkan pernyataan subquery dalam MySQL dan memberikan beberapa contoh untuk membantu pembaca memahami dan menggunakan subquery dengan lebih baik.

1. Apakah itu subkueri

Subkueri ialah pernyataan pertanyaan yang terkandung dalam pertanyaan lain, biasanya bersarang dalam pernyataan SELECT, INSERT, UPDATE atau DELETE. Dalam MySQL, subqueries boleh dilaksanakan sebagai sebahagian daripada pertanyaan dan menyediakan syarat carian atau item yang dikira. Subquery ialah bentuk pernyataan yang sangat berkuasa yang boleh menjadikan pertanyaan lebih fleksibel, tepat dan cekap. Subkueri boleh bersarang berbilang peringkat, tetapi berhati-hati agar tidak membuat pertanyaan terlalu rumit.

2. Sintaks Subquery

Sintaxis subquery dalam MySQL boleh dibahagikan kepada dua jenis: subquery ekspresi dan subquery SELECT.

  1. Sintaks subkueri ungkapan:

PILIH … DARI … WHERE operator nama_lajur (PILIH nama_lajur FROM table_name WHERE keadaan);

Dalam sintaks ini, Operator antara pemalar dan nama medan boleh sama dengan, tidak sama dengan, kurang daripada, lebih besar daripada, dsb. Di samping itu, hasil subkueri mesti mempunyai hanya satu baris dan satu lajur, jika tidak ralat akan dikembalikan. Pada masa yang sama, anda juga boleh menggunakan subkueri untuk menanyakan nilai maksimum, nilai minimum, jumlah dan purata dalam set hasil.

  1. PILIH sintaks subquery:

PILIH column_name1, column_name2, … FROM table_name WHERE column_name operator (SELECT column_name FROM table_name WHERE condition);

Dalam ini sintaks, subkueri SELECT ditambah pada klausa WHERE pertanyaan luar. Subkueri mesti mengembalikan satu nilai, jika tidak ralat akan dikembalikan. Selain itu, subkueri SELECT boleh melakukan sebarang jenis operasi perbandingan dalam klausa WHERE.

3. Contoh subkueri

Contoh berikut menggambarkan penggunaan subkueri dalam MySQL.

  1. Soal maklumat semua pelajar yang markahnya lebih tinggi daripada purata kelas.

PILIH id_pelajar, nama_pelajar, markah DARI pelajar WHERE skor > nombor pelajar, nama dan skor, kemudian hitung purata skor kelas melalui subkueri, dan bandingkan purata skor dengan skor setiap pelajar. Akhir sekali, maklumat pelajar yang layak akan dikembalikan.

Soal nama jabatan di mana gaji pekerja lebih tinggi daripada gaji purata dan gaji purata jabatan.
  1. PILIH nama_jabatan, AVG(gaji) sebagai purata_gaji DARI pekerja DALAM SERTAI jabatan PADA id_pekerja.jabatan = jabatan.jabatan_id DI MANA gaji > (PILIH AVG(gaji) DARIPADA pekerja) KUMPULAN MENGIKUT nama_jabatan;

Dalam penyata ini, pekerja yang gajinya lebih tinggi daripada gaji purata mula-mula dimasukkan ke meja jabatan, dan subkueri digunakan untuk mengira purata gaji syarikat secara keseluruhan. Akhir sekali, kumpulan mengikut nama jabatan untuk mendapatkan nama dan purata gaji setiap jabatan.

Semak berapa banyak buku yang telah ditulis oleh pengarang yang mempunyai panjang lebih daripada 100 muka surat.
  1. PILIH COUNT(*) DARI buku WHERE author_id IN (SELECT author_id FROM author WHERE name = 'John Smith') DAN panjang >

Dalam pernyataan ini, pertanyaan pertama "John Smith" ialah ID pengarang, dan kemudian menapis buku yang memenuhi kriteria berdasarkan ID pengarang dan panjang buku. Akhir sekali, gunakan fungsi COUNT untuk mengembalikan bilangan rekod dalam set hasil pertanyaan.

4. Ringkasan

Subkueri dalam MySQL ialah bentuk pernyataan yang sangat berguna yang boleh meningkatkan lagi ketepatan dan kecekapan pertanyaan. Artikel ini memperkenalkan sintaks subquery dan contoh dalam MySQL Melalui pembelajaran, anda boleh lebih memahami dan menguasai pernyataan subquery MySQL, dan ia juga membantu pembaca untuk menggunakan pangkalan data MySQL dengan lebih baik.

Atas ialah kandungan terperinci Penjelasan terperinci tentang pernyataan subquery mysql. 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