Rumah >pangkalan data >tutorial mysql >Soalan SQL Penting Setiap Pembangun Patut Dikuasai

Soalan SQL Penting Setiap Pembangun Patut Dikuasai

Barbara Streisand
Barbara Streisandasal
2024-12-24 03:17:15848semak imbas

Essential SQL Questions Every Developer Should Master

Menguasai SQL dengan 100 Soalan dan Contoh Penting

SQL (Bahasa Pertanyaan Berstruktur) ialah asas pengurusan dan manipulasi pangkalan data. Panduan ini meneroka 100 soalan SQL praktikal dan teori merentasi pelbagai kategori untuk membantu anda meningkatkan kemahiran pangkalan data anda.


1. Soalan Pertanyaan SQL Asas

  1. Tulis pertanyaan untuk mengambil semua rekod daripada jadual.
   SELECT * FROM table_name;

Pertanyaan ini mendapatkan semula setiap rekod daripada jadual yang ditentukan.

  1. Tulis pertanyaan untuk mencari gaji kedua tertinggi dalam jadual.
   SELECT MAX(salary) AS second_highest_salary  
   FROM employees  
   WHERE salary < (SELECT MAX(salary) FROM employees);
  1. Tulis pertanyaan untuk mengambil pekerja yang namanya bermula dengan 'A'.
   SELECT * FROM employees WHERE name LIKE 'A%';
  1. Tulis pertanyaan untuk mengira jumlah jualan yang dikumpulkan mengikut wilayah.
   SELECT region, SUM(sales) AS total_sales  
   FROM sales_data  
   GROUP BY region;
  1. Tulis pertanyaan untuk mengambil semua rekod dengan nilai lajur adalah NULL.
   SELECT * FROM table_name WHERE column_name IS NULL;
  1. Tulis pertanyaan untuk mengalih keluar baris pendua daripada jadual.
   DELETE FROM table_name  
   WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY column_name);
  1. Tulis pertanyaan untuk memaparkan rekod dalam tertib menurun.
   SELECT * FROM table_name ORDER BY column_name DESC;
  1. Tulis pertanyaan untuk mengira bilangan baris dalam jadual.
   SELECT COUNT(*) FROM table_name;
  1. Tulis pertanyaan untuk menyertai dua jadual.
   SELECT employees.name, departments.department_name  
   FROM employees  
   JOIN departments  
   ON employees.department_id = departments.id;
  1. Tulis pertanyaan untuk mendapatkan semula tiga baris pertama daripada jadual.

    SELECT * FROM table_name LIMIT 3;
    

2. Soalan Prestasi SQL

  1. Apakah itu pengoptimuman pertanyaan?

    Pengoptimuman pertanyaan melibatkan pengubahsuaian pertanyaan untuk meningkatkan masa dan kecekapan pelaksanaannya.

  2. Bagaimana anda boleh meningkatkan prestasi pertanyaan SQL?

    • Gunakan indeks.
    • Elakkan PILIH *.
    • Optimumkan penyertaan.
    • Gunakan jenis data yang sesuai.
    • Analisis rancangan pelaksanaan.
  3. Apakah tujuan pengindeksan?

    Pengindeksan meningkatkan kelajuan operasi mendapatkan data pada jadual pangkalan data.

  4. Apakah kelemahan pengindeksan?

    • Peningkatan keperluan storan.
    • Operasi pengubahsuaian data yang lebih perlahan seperti INSERT dan DELETE.
  5. Bagaimana anda menganalisis rancangan pelaksanaan pertanyaan?

    Gunakan kata kunci EXPLAIN untuk melihat pelan pelaksanaan:

    EXPLAIN SELECT * FROM table_name;
    
  6. Apakah caching pertanyaan?

    Caching pertanyaan menyimpan hasil pertanyaan untuk digunakan semula, mengurangkan masa pengiraan.

  7. Apakah sharding dalam pangkalan data?

    Sharding membahagikan pangkalan data kepada bahagian yang lebih kecil, lebih pantas dan lebih mudah diurus dipanggil shards.

  8. Terangkan perbezaan antara penskalaan mendatar dan menegak.

    • Penskalaan mendatar menambah lebih banyak mesin untuk mengendalikan lebih banyak data.
    • Penskalaan menegak menambah sumber (CPU, RAM) pada satu mesin.
  9. Bagaimanakah pembahagian membantu dalam prestasi pangkalan data?

    Pembahagian membahagikan jadual besar kepada bahagian yang lebih kecil dan lebih mudah diurus, meningkatkan prestasi pertanyaan.

  10. Apakah replikasi pangkalan data?

    Replikasi melibatkan penyalinan dan penyelenggaraan salinan pangkalan data merentas berbilang pelayan untuk kebolehpercayaan dan redundansi.


3. Soalan Fungsi SQL

  1. Apakah fungsi agregat dalam SQL?

    Fungsi agregat melakukan pengiraan pada berbilang baris data: SUM, AVG, COUNT, dll.

  2. Terangkan perbezaan antara COUNT, SUM dan AVG.

    • COUNT: Mengira bilangan baris.
    • SUM: Menambah nilai dalam lajur.
    • AVG: Mengira purata.
  3. Bagaimanakah fungsi ROUND berfungsi dalam SQL?

       SELECT * FROM table_name;
    
  4. Apakah fungsi LENGTH digunakan?

    Ia mengira bilangan aksara dalam rentetan:

       SELECT MAX(salary) AS second_highest_salary  
       FROM employees  
       WHERE salary < (SELECT MAX(salary) FROM employees);
    
  5. Terangkan penggunaan pernyataan CASE dalam SQL.

       SELECT * FROM employees WHERE name LIKE 'A%';
    
  6. Apakah perbezaan antara COALESCE dan ISNULL?

    • COALESCE: Mengembalikan nilai bukan nol pertama daripada senarai.
    • ISNULL: Menyemak nol dan menggantikan dengan nilai yang ditentukan.
  7. Bagaimanakah anda menggunakan fungsi rentetan seperti ATAS dan BAWAH?

       SELECT region, SUM(sales) AS total_sales  
       FROM sales_data  
       GROUP BY region;
    
  8. Apakah tujuan fungsi NOW()?

    Mengembalikan tarikh dan masa semasa:

       SELECT * FROM table_name WHERE column_name IS NULL;
    
  9. Terangkan penggunaan fungsi CONCAT.

       DELETE FROM table_name  
       WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY column_name);
    
  10. Apakah perbezaan antara TRUNCATE dan DELETE?

    • TRUNCATE: Mengalih keluar semua baris daripada jadual tanpa mengelog pemadaman baris individu.
    • PADAM: Mengalih keluar baris dengan syarat dan mencatat setiap pemadaman.

Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun tindanan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.

Atas ialah kandungan terperinci Soalan SQL Penting Setiap Pembangun Patut Dikuasai. 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