Untuk memulakan, anda mesti memasang MySQL pada sistem anda dengan kemudahannya: Meja kerja MySQL dan shell pelanggan baris perintah. Selepas itu, anda harus mempunyai beberapa data atau nilai dalam jadual pangkalan data anda sebagai pendua. Mari kita terokai ini dengan beberapa contoh. Pertama sekali, buka shell pelanggan baris perintah anda dari bar tugas desktop anda dan taip kata laluan MySQL anda apabila diminta.
Kami telah menemui kaedah yang berbeza untuk diduplikasi dalam jadual. Lihatlah mereka satu persatu.
Cari Pendua dalam Lajur Tunggal
Pertama, anda mesti mengetahui mengenai sintaks pertanyaan yang digunakan untuk memeriksa dan mengira pendua untuk satu lajur.
>> PILIH col COUNT (col) DARI jadual GROUP BY col HAVING COUNT (col)> 1;Berikut adalah penjelasan mengenai pertanyaan di atas:
- Kolum: Nama lajur yang hendak diperiksa.
- COUNT (): fungsi yang digunakan untuk mengira banyak nilai pendua.
- KUMPULAN OLEH: klausa yang digunakan untuk mengelompokkan semua baris mengikut lajur tertentu.
Kami telah membuat jadual baru yang disebut 'binatang' dalam 'data' pangkalan data MySQL kami yang mempunyai nilai pendua. Ia mempunyai enam lajur dengan nilai yang berbeza di dalamnya, e.g., id, Nama, Spesies, Jantina, Umur, dan Harga yang memberikan maklumat mengenai haiwan peliharaan yang berbeza. Setelah memanggil jadual ini menggunakan pertanyaan SELECT, kami mendapat output di bawah pada shell pelanggan baris perintah MySQL kami.
>> PILIH * DARI data.haiwan;
Sekarang, kita akan cuba mencari nilai berlebihan dan berulang dari jadual di atas dengan menggunakan klausa COUNT dan GROUP BY dalam pertanyaan SELECT. Pertanyaan ini akan mengira Nama haiwan peliharaan yang terletak kurang dari 3 kali dalam jadual. Selepas itu, ia akan memaparkan Nama-nama tersebut seperti di bawah.
>> PILIH Nama COUNT (Nama) DARI data.haiwan KUMPULAN MENGIKUT Nama MEMILIKI COUNT (Nama) < 3;
Menggunakan pertanyaan yang sama untuk mendapatkan hasil yang berbeza sambil menukar COUNT nombor untuk Nama haiwan peliharaan seperti yang ditunjukkan di bawah.
>> PILIH Nama COUNT (Nama) DARI data.haiwan KUMPULAN MENGIKUT Nama MEMILIKI COUNT (Nama)> 3;
Untuk mendapatkan hasil sebanyak 3 nilai pendua untuk Nama haiwan peliharaan seperti gambar di bawah.
>> PILIH Nama COUNT (Nama) DARI data.haiwan KUMPULAN MENGIKUT Nama MEMILIKI COUNT (Nama) = 3;
Cari Pendua dalam Beberapa Lajur
Sintaks pertanyaan untuk memeriksa atau mengira pendua untuk beberapa lajur adalah seperti berikut:
>> PILIH col1, COUNT (col1), col2, COUNT (col2) DARI jadual KUMPULAN MENGIKUT col1, col2 MEMILIKI COUNT (col1)> 1 DAN COUNT (col2)> 1;Berikut adalah penjelasan mengenai pertanyaan di atas:
- col1, col2: nama lajur yang akan diperiksa.
- COUNT (): fungsi yang digunakan untuk mengira beberapa nilai pendua.
- KUMPULAN OLEH: klausa yang digunakan untuk mengelompokkan semua baris mengikut lajur tertentu.
Kami telah menggunakan jadual yang sama yang disebut 'binatang' yang mempunyai nilai pendua. Kami mendapat output di bawah sambil menggunakan pertanyaan di atas untuk memeriksa nilai pendua dalam beberapa lajur. Kami telah memeriksa dan menghitung nilai pendua untuk lajur Jantina dan Harga sambil dikelompokkan berdasarkan lajur Harga. Ia akan menunjukkan jenis kelamin haiwan dan harganya yang terdapat di dalam jadual sebagai pendua tidak lebih dari 5.
>> PILIH Jantina, COUNT (Jantina), Harga, COUNT (Harga) DARI data.haiwan KUMPULAN MENGIKUT Harga MEMILIKI COUNT (Harga) < 5 ANDÂ COUNT(Gender) < 5;
Cari Pendua dalam Jadual Tunggal Menggunakan INNER JOIN
Berikut adalah sintaks asas untuk mencari pendua dalam satu jadual:
>> PILIH col1, col2, jadual.col FROM table INNER JOIN (PILIH col FROM table GROUP BY col HAVING COUNT (col1)> 1) temp ON table.col = temp.kol;Berikut adalah naratif pertanyaan overhead:
- Kol: nama lajur yang akan diperiksa dan dipilih untuk pendua.
- Temp: kata kunci untuk menggunakan gabung dalam pada lajur.
- Jadual: nama jadual yang akan diperiksa.
Kami mempunyai jadual baru, 'order2' dengan nilai pendua di lajur OrderNo seperti yang ditunjukkan di bawah.
>> PILIH * DARI data.pesanan2;
Kami memilih tiga lajur: Item, Penjualan, PesananTidak ditunjukkan dalam output. Sementara kolom OrderNo digunakan untuk memeriksa pendua. Gabungan dalaman akan memilih nilai atau baris yang mempunyai nilai Item lebih daripada satu dalam jadual. Setelah melaksanakannya, kami akan mendapat keputusan di bawah.
>> PILIH Item, Jualan, pesanan2.OrderNo DARI data.order2 INNER JOIN (PILIH OrderNo DARI data.order2 GROUP BY OrderNo MEMILIKI COUNT (Item)> 1) temp ON order2.OrderNo = temp.OrderNo;
Cari Pendua dalam Beberapa Jadual Menggunakan GABUNGAN DALAMAN
Berikut adalah sintaks yang dipermudahkan untuk mencari pendua dalam beberapa jadual:
>> PILIH col DARI jadual1 INNER JOIN table2 ON table1.col = jadual2.kol;Berikut adalah keterangan pertanyaan overhead:
- kol: nama lajur yang akan diperiksa dan dipilih.
- GABUNGAN DALAM: fungsi yang digunakan untuk Bergabung dua jadual.
- HIDUP: digunakan untuk menggabungkan dua jadual mengikut lajur yang disediakan.
Kami mempunyai dua jadual, 'order1' dan 'order2', dalam pangkalan data kami mempunyai lajur 'OrderNo' di kedua-duanya seperti yang dipaparkan di bawah.
Kami akan menggunakan gabungan INNER untuk menggabungkan pendua dua jadual mengikut lajur yang ditentukan. Klausa INNER JOIN akan mendapatkan semua data dari kedua-dua jadual dengan menggabungkannya, dan klausa ON akan mengaitkan lajur nama yang sama dari kedua-dua jadual, e.g., PesananTidak.
>> PILIH * DARI data.memesan 1 data BERSAMA INNER.pesanan2 ON pesanan1.OrderNo = pesanan2.PesananNO;
Untuk mendapatkan lajur tertentu dalam output, cuba arahan di bawah:
>> PILIH Wilayah, Status, Item, Penjualan DARI data.memesan 1 data BERSAMA INNER.pesanan2 ON pesanan1.OrderNo = pesanan2.PesananNO;
Kesimpulannya
Kami sekarang dapat mencari beberapa salinan dalam satu atau beberapa jadual maklumat MySQL dan mengenali fungsi GROUP BY, COUNT, dan INNER JOIN. Pastikan bahawa anda telah membina jadual dengan betul dan juga lajur yang betul dipilih.