Rumah pangkalan data tutorial mysql Soalan Asas dan Pertengahan SQL untuk Temuduga

Soalan Asas dan Pertengahan SQL untuk Temuduga

Dec 30, 2024 am 01:25 AM

Mari kita ke intinya.

Saya telah mencipta repo GitHub Interview SQL yang Hebat untuk menyediakan soalan temu duga dan mempraktikkan pertanyaan SQL. Saya telah membahagikan pertanyaan SQL kepada tiga bahagian: Asas (L0), Pertengahan (L1) dan Lanjutan (L2). Ini adalah penyelesaian untuk bahagian asas.

Ini adalah pertanyaan SQL L1 (Pertengahan) untuk diamalkan, rujuk L0 dahulu untuk latihan yang lebih baik.


Nota: Contoh-contoh ini diuji dalam MySQL. Sintaks mungkin berbeza untuk pangkalan data lain seperti MS-SQL atau Oracle.


L1: SQL Perantaraan

  • Pertanyaan yang melibatkan kerja dengan berbilang jadual, menggunakan keadaan JOIN, GROUP BY, HAVING dan kompleks WHERE.
  • Pengenalan kepada subkueri, fungsi agregat dan pernyataan kes.

Soalan:

  1. Tulis pertanyaan untuk mendapatkan semula Nama pelanggan dan bandar untuk pelanggan di 'AS' dan 'Perancis'.
  2. Bagaimanakah anda mengambil Nombor pekerja, Nama Akhir dan Kod pejabat semua pekerja yang bekerja di pejabat 'San Francisco'?
  3. Tulis pertanyaan untuk mencari jumlah pesanan bagi setiap pelanggan menggunakan pesanan dan jadual pelanggan.
  4. Bagaimana anda mendapatkan semula productName, quantityInStock, dan buyPrice untuk produk yang telah ditempah lebih daripada 10 kali?
  5. Tulis pertanyaan untuk mengambil Nombor pesanan, status dan Nama pelanggan untuk pesanan yang dibuat oleh pelanggan yang Nombor pelanggannya ialah 103.
  6. Tulis pertanyaan untuk mencari jumlah nilai jualan (kuantitiTempahan * hargaSetiap) untuk setiap pesanan dalam jadual butiran pesanan.
  7. Bagaimana anda mencari kuantiti purata Dipesan untuk setiap Nombor pesanan dalam jadual butiran pesanan?
  8. Tulis pertanyaan untuk menyenaraikan productLine dengan jumlah hasil tertinggi (kuantitiTempahan * hargaSetiap) dalam jadual butiran pesanan.
  9. Tulis pertanyaan untuk memaparkan Nombor pekerja, Nama pertama, Nama akhir dan nama pejabat tempat pekerja bekerja dengan menyertai jadual pekerja dan pejabat.
  10. Bagaimana anda mencari pelanggan yang tidak pernah membuat pesanan?
  11. Tulis pertanyaan untuk mendapatkan kembali Nama pelanggan dan jumlah bilangan pesanan yang dibuat oleh setiap pelanggan (termasuk pelanggan yang belum membuat sebarang pesanan).
  12. Tulis pertanyaan untuk mencari Nama produk dan kuantiti Dipesan untuk semua pesanan yang kuantiti produk yang dipesan lebih daripada 50.
  13. Dapatkan Nombor pekerja, Nama pertama dan pesananNombor pekerja yang ditugaskan sebagai wakil jualan kepada pelanggan yang telah membuat pesanan.
  14. Tulis pertanyaan untuk mengira harga purata produk dalam jadual produk berdasarkan harga beli.
  15. Bagaimanakah anda mendapatkan 3 produk paling mahal teratas dalam jadual produk?
  16. Tulis pertanyaan untuk mendapatkan kembali Nama pelanggan, Nombor pesanan dan Tarikh pesanan semua pesanan yang mempunyai status 'Dihantar'.
  17. Bagaimanakah anda memaparkan jumlah bilangan produk yang dijual untuk setiap ProductLine?
  18. Tulis pertanyaan untuk mencari pekerja yang melaporkan terus kepada pekerja dengan employeeNumber = 1143.
  19. Tulis pertanyaan untuk mengira jumlah pesanan dalam jadual pesanan, dikumpulkan mengikut status.
  20. Senaraikan pekerja dengan nama pengurus mereka.

Saya akan menyebut perkara yang salah juga, Adalah penting untuk mengetahui apa yang perlu dilakukan tetapi juga sangat penting apa yang tidak boleh dilakukan, dan di mana kita membuat kesilapan. jom ke point semula...


Penyelesaian dengan penjelasan DI MANA diperlukan

  1. Pertanyaan untuk mendapatkan semula Nama pelanggan dan bandar untuk pelanggan di 'AS' dan 'Perancis'.
    SQL Basic and Intermediate Questions for Interview

    • ATAU -> Sedikit perlahan jika terdapat banyak syarat, kerana pertanyaan menyemak setiap keadaan satu demi satu.
    • DALAM -> sedikit dioptimumkan secara dalaman oleh enjin pangkalan data, terutamanya untuk senarai panjang.
    • Kedua-duanya baik untuk 2-3 keadaan. Untuk kebolehbacaan dan kebolehskalaan, IN adalah lebih baik, terutamanya apabila mengendalikan senarai nilai yang lebih besar.
    • IS digunakan untuk menyemak keadaan seperti IS NULL atau IS NOT NULL, bukan untuk perbandingan rentetan.
  2. Ambil Nombor pekerja, Nama keluarga dan Kod pejabat semua pekerja yang bekerja di pejabat 'San Francisco'.
    SQL Basic and Intermediate Questions for Interview

  3. Pertanyaan untuk mencari jumlah pesanan bagi setiap pelanggan menggunakan pesanan dan jadual pelanggan.
    SQL Basic and Intermediate Questions for Interview

    • Sentiasa sertakan lajur tidak teragregat dalam klausa GROUP BY apabila menggunakan fungsi agregat dalam pertanyaan anda.
    • Ini memastikan SQL tahu cara mengumpulkan baris dan mengelakkan kekaburan apabila memilih lajur tambahan.
    • Dalam contoh kami: Nombor pelanggan danNama pelanggan mestilah kedua-duanya berada dalam klausa KUMPULAN OLEH kerana kami memilihnya bersama-sama COUNT(*).

    ? Peraturan Emas:
    Setiap lajur dalam senarai PILIH mestilah sama ada:
    Berada dalam klausa GROUP BY, ATAU
    Gunakan fungsi agregat seperti COUNT(), SUM(), dsb.

  4. Dapatkan semula productName, quantityInStock, dan buyPrice untuk produk yang telah ditempah lebih daripada 10 kali?
    SQL Basic and Intermediate Questions for Interview

    • Pertanyaan ini cekap untuk pangkalan data saiz kecil dan sederhana, untuk saiz besar kami boleh menggunakan indeks dan mengurangkan data yang diimbas menggunakan klausa WHERE dan bukannya bergantung semata-mata pada klausa HAVING
  5. Ambil Nombor pesanan, status dan Nama pelanggan untuk pesanan yang dibuat oleh pelanggan yang Nombor pelanggannya ialah 103.
    SQL Basic and Intermediate Questions for Interview

    Penjelasan:

    • Jadual Digunakan:
      • pesanan: Mengandungi Nombor pesanan dan status.
      • pelanggan: Mengandungi nama pelanggan.
    • SERTAI DALAM:
      • Menggabungkan pesanan dan jadual pelanggan menggunakan lajur Nombor pelanggan (kunci biasa).
    • WHAT Klausa:
      • Menapis data untuk memasukkan hanya rekod dengan nombor pelanggan = 103.
    • Lajur Dipilih:
      • o.orderNumber: Nombor pesanan.
      • o.status: Status pesanan.
      • c.customerName: Nama pelanggan yang membuat pesanan.
  6. Cari jumlah nilai jualan (kuantitiTempahan * hargaSetiap) untuk setiap pesanan dalam jadual butiran pesanan.
    SQL Basic and Intermediate Questions for Interview

  7. Cari purata kuantitiDipesan untuk setiap Nombor pesanan dalam jadual butiran pesanan.
    SQL Basic and Intermediate Questions for Interview

    • Penjelasan:
    • Nombor pesanan:
      • Kumpulkan baris mengikut Nombor pesanan.
    • AVG(kuantitiDipesan):
      • Mengira kuantiti purata Dipesan untuk semua baris yang tergolong dalam Nombor pesanan yang sama.
    • KUMPULAN OLEH:
      • Memastikan purata dikira untuk setiap Nombor pesanan secara berasingan.
  8. Pertanyaan untuk menyenaraikan barisan produk dengan jumlah hasil tertinggi (kuantiti Dipesan * hargaSetiap) dalam jadual butiran pesanan.
    SQL Basic and Intermediate Questions for Interview

    • Penjelasan:
    • talian produk:
      • Mengkategorikan produk kepada barisan yang berbeza, seperti "Motosikal" atau "Pesawat."
    • JUMLAH(od.quantityOrdered * od.priceEach):
      • Mengira jumlah hasil untuk setiap barisan produk.
    • SERTAI DALAM:
      • Menyertai produk dan jadual butiran pesanan pada ProductCode untuk mengaitkan barisan produk dengan butiran pesanan mereka.
    • KUMPULAN OLEH p.productLine:
      • Himpunkan keputusan mengikut setiap barisan produk.
    • PESAN MENGIKUT totalRevenue DESC:
      • Isih hasil dikumpulkan dalam tertib hasil menurun, supaya hasil tertinggi muncul dahulu.
    • HAD 1:
      • Menghadkan hasil hanya kepada barisan produk dengan hasil tertinggi.
  9. Pertanyaan untuk memaparkan Nombor pekerja, Nama pertama, Nama akhir dan nama pejabat tempat pekerja bekerja dengan menyertai jadual pekerja dan pejabat.
    SQL Basic and Intermediate Questions for Interview

    • CONCAT(lajur, 'pemisah', lajur, 'pemisah', lajur)
    • CONCAT_WS('pemisah', lajur)
  10. Cari pelanggan yang tidak pernah membuat pesanan
    SQL Basic and Intermediate Questions for Interview

    Penjelasan:

    • KIRI SERTAI: Dapatkan semua pelanggan daripada jadual pelanggan, sama ada mereka mempunyai baris yang sepadan dalam jadual pesanan atau tidak.
    • o.orderNumber IS NULL: Mengenal pasti pelanggan yang tidak mempunyai sebarang pesanan yang sepadan (iaitu, orderNumber ialah NULL kerana tiada padanan dalam jadual pesanan).
    • Lajur:
      • Nombor pelanggan: Pengecam unik untuk pelanggan.
      • Nama pelanggan: Nama pelanggan.
  11. Pertanyaan untuk mendapatkan semula Nama pelanggan dan jumlah bilangan pesanan yang dibuat oleh setiap pelanggan (termasuk pelanggan yang belum membuat sebarang pesanan). SQL Basic and Intermediate Questions for Interview

  12. Cari nama produk dan kuantiti Dipesan untuk semua pesanan yang kuantiti produk yang dipesan melebihi 50.
    SQL Basic and Intermediate Questions for Interview

  13. Dapatkan Nombor pekerja, Nama pertama dan pesananNombor pekerja yang ditugaskan sebagai wakil jualan kepada pelanggan yang telah membuat pesanan.
    SQL Basic and Intermediate Questions for Interview

    Penjelasan:

    • DARIPADA pekerja e:
      • Kami bermula dengan jadual pekerja (disebut sebagai e) kerana kami mahukan butiran pekerja, khususnya Nombor pekerja dan Nama pertama.
    • SERTAI pelanggan c ON e.employeeNumber = c.salesRepEmployeeNumber:
      • Kami menyertai jadual pelanggan (disebut sebagai c) pada employeeNumber daripada pekerja dan salesRepEmployeeNumber daripada pelanggan. Ini mewujudkan hubungan antara pekerja (wakil jualan) dan pelanggan. Kini, kami boleh mengenal pasti pekerja yang ditugaskan kepada setiap pelanggan.
    • SERTAI pesanan o ON c.customerNumber = o.customerNumber:
      • Kami terus menyertai jadual pesanan (alias sebagai o) dengan jadual pelanggan menggunakan Nombor pelanggan. Ini memberikan kami pesanan yang dibuat oleh setiap pelanggan.
    • PILIH e.employeeNumber, e.firstName, o.orderNumber:
      • Akhir sekali, kami memilih Nombor pekerja dan Nama pertama daripada jadual pekerja (wakil jualan) dan Nombor pesanan daripada jadual pesanan untuk setiap pelanggan yang telah membuat pesanan.
  14. Pertanyaan untuk mengira harga purata produk dalam jadual produk berdasarkan harga beli.
    SQL Basic and Intermediate Questions for Interview

  15. Dapatkan 3 produk paling mahal teratas dalam jadual produk?

    SQL Basic and Intermediate Questions for Interview

  16. Dapatkan semula Nama pelanggan, Nombor pesanan dan Tarikh pesanan semua pesanan yang mempunyai status 'Dihantar'.
    SQL Basic and Intermediate Questions for Interview

  17. Paparkan jumlah bilangan produk yang dijual untuk setiap ProductLine
    SQL Basic and Intermediate Questions for Interview

  18. Cari pekerja yang melaporkan terus kepada pekerja tersebut dengan employeeNumber = 1143.
    SQL Basic and Intermediate Questions for Interview

  19. Pertanyaan untuk mengira jumlah pesanan dalam jadual pesanan, dikumpulkan mengikut status.
    SQL Basic and Intermediate Questions for Interview

  20. Senaraikan pekerja dengan nama pengurus mereka.
    SQL Basic and Intermediate Questions for Interview


Hei, Nama saya Jaimin Baria AKA Cloud Boy..., Jika anda telah menikmati dan mempelajari sesuatu yang berguna, suka siaran ini, tambahkan ulasan dan lawati repo GitHub Wawancara SQL Hebat saya.

Jangan lupa untuk memulakannya?.

Selamat Pengekodan ?‍?


Catatan Lain

  • Amalan SQL:
    • Bahagian 1
      • L0: SQL Asas
      • L1: SQL Perantaraan
      • L2: SQL Lanjutan - Akan Datang tidak lama lagi
  • Reka Bentuk Sistem
    • Pelaksanaan transaksi ACID dalam Pangkalan Data
    • Transaksi ACID dalam Reka Bentuk Sistem

?️ Pembaikan yang Dicadangkan oleh Pembaca

Atas ialah kandungan terperinci Soalan Asas dan Pertengahan SQL untuk Temuduga. 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 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)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1269
29
Tutorial C#
1248
24
Peranan MySQL: Pangkalan Data dalam Aplikasi Web Peranan MySQL: Pangkalan Data dalam Aplikasi Web Apr 17, 2025 am 12:23 AM

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

Terangkan peranan log redo innoDB dan membatalkan log. Terangkan peranan log redo innoDB dan membatalkan log. Apr 15, 2025 am 12:16 AM

InnoDB menggunakan redolog dan undologs untuk memastikan konsistensi dan kebolehpercayaan data. 1. Pengubahsuaian halaman data rekod untuk memastikan pemulihan kemalangan dan kegigihan transaksi. 2.UNDOLOGS merekodkan nilai data asal dan menyokong penggantian transaksi dan MVCC.

MySQL: Pengenalan kepada pangkalan data paling popular di dunia MySQL: Pengenalan kepada pangkalan data paling popular di dunia Apr 12, 2025 am 12:18 AM

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Tempat Mysql: Pangkalan Data dan Pengaturcaraan Tempat Mysql: Pangkalan Data dan Pengaturcaraan Apr 13, 2025 am 12:18 AM

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

Mengapa menggunakan mysql? Faedah dan kelebihan Mengapa menggunakan mysql? Faedah dan kelebihan Apr 12, 2025 am 12:17 AM

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Apr 19, 2025 am 12:22 AM

Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem.

Bagaimanakah kardinaliti indeks MySQL mempengaruhi prestasi pertanyaan? Bagaimanakah kardinaliti indeks MySQL mempengaruhi prestasi pertanyaan? Apr 14, 2025 am 12:18 AM

Cardinality Indeks MySQL mempunyai kesan yang signifikan terhadap prestasi pertanyaan: 1. Indeks kardinaliti yang tinggi dapat lebih berkesan menyempitkan julat data dan meningkatkan kecekapan pertanyaan; 2. Indeks kardinaliti yang rendah boleh membawa kepada pengimbasan jadual penuh dan mengurangkan prestasi pertanyaan; 3. Dalam indeks bersama, urutan kardinaliti yang tinggi harus diletakkan di depan untuk mengoptimumkan pertanyaan.

Mysql: Dari perniagaan kecil ke perusahaan besar Mysql: Dari perniagaan kecil ke perusahaan besar Apr 13, 2025 am 12:17 AM

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

See all articles