Bekerja dengan SQL menggunakan GitHub Copilot

Selesai

GitHub Copilot dapat digunakan untuk berinteraksi dengan semua jenis kode, ini termasuk berinteraksi dengan bahasa pemrograman populer dan memberi Anda opsi menulis, men-debug, dan mengoptimalkan kode SQL.

GitHub Copilot dapat melakukan tugas-tugas berikut yang terkait dengan kode SQL:

  • Penjelasan Kueri: Gunakan Copilot untuk menjelaskan kueri SQL yang kompleks untuk lebih memahami logika dan strukturnya.
  • Pengoptimalan Kueri: Minta Copilot untuk memberikan saran dalam mengoptimalkan kueri yang lambat atau tidak efisien, seperti menghapus JOIN yang tidak perlu, mempercepat SELECT DISTINCT, atau merefaktor subkueri.
  • Pemfaktoran Ulang Kueri: Minta Copilot untuk menulis ulang kueri demi keterbacaan atau pemeliharaan yang lebih baik, misalnya, mengganti CROSS JOIN atau menyederhanakan kueri berlapis.
  • Membuat Kueri: Minta Copilot menghasilkan kueri SQL baru berdasarkan persyaratan data Anda, seperti pernyataan SELECT, INSERT, UPDATE, atau DELETE.
  • Validasi Data: Gunakan Copilot untuk membantu menulis kueri SQL yang memvalidasi integritas data atau memeriksa kondisi tertentu dalam database Anda.
  • Eksplorasi Skema: Minta Copilot untuk membantu Anda menulis kueri yang menjelajahi atau mendokumentasikan skema database Anda (misalnya, mencantumkan tabel, kolom, atau hubungan).
  • Pembuatan Pengujian: Minta Copilot untuk menghasilkan pengujian atau pernyataan berbasis SQL untuk memverifikasi hasil kueri atau status database.
  • Penelusuran Kesalahan: Minta Copilot untuk membantu men-debug kesalahan SQL atau menyarankan perbaikan untuk masalah umum (misalnya, kesalahan sintaks, indeks yang hilang).
  • Pembuatan Prompt: Minta Copilot menghasilkan perintah atau templat untuk membuat kueri berkinerja tinggi dari awal.

GitHub Copilot memberikan hasil yang lebih baik ketika perintah Anda lebih spesifik. Jika Anda memberikan perintah umum, Anda kemungkinan akan menerima jawaban umum. Jika Anda memberikan detail lebih lanjut dalam permintaan Anda dan mengajukan pertanyaan yang lebih rinci, Anda kemungkinan besar akan mendapatkan jawaban terperinci.

Misalnya, Anda dapat menggunakan GitHub Copilot untuk memberi Anda kode SQL untuk membuat tabel yang menyertakan kolom untuk nama depan, nama belakang, tanggal lahir, film favorit, dan nama hewan peliharaan dengan mengeluarkan perintah berikut:

Harap beri saya kode SQL untuk membuat tabel yang menyertakan kolom untuk nama depan, nama belakang, tanggal lahir, film favorit, dan nama hewan peliharaan

Cuplikan layar permintaan GitHub Copilot yang terkait dengan pembuatan tabel di SQL.

Memahami aplikasi yang menyertakan SQL

Misalnya, jika Anda membuka ruang kode dan disajikan dengan aplikasi yang menyertakan kode SQL, Anda dapat menanyakan kepada GitHub Copilot dengan perintah berikut untuk memahami lebih lanjut tentang proyek tersebut.

Harap jelaskan secara singkat struktur proyek ini. Apa yang harus saya lakukan untuk menjalankannya?

Cuplikan layar memperlihatkan respons GitHub Copilot terhadap kueri tentang struktur proyek.

Memahami kode SQL

Anda dapat menggunakan prompt /explain untuk memahami kode tertentu. Misalnya, proyek mungkin berisi file bernama complex.sql, yang berisi kueri yang sedang dijalankan dalam aplikasi. Untuk memahami konten complex.sql, Anda dapat memilihnya dalam panel Explorer dari GitHub Codespaces lalu menggunakan perintah /explain di obrolan.

Cuplikan layar konten yang dihasilkan AI layar komputer mungkin salah.

Daripada memilih seluruh file, Anda dapat memilih bagian kode dan meminta GitHub Copilot untuk memberikan detail tentang bagian tersebut.

Mengoptimalkan dan merefaktor kueri SQL

Terkadang Anda disajikan dengan kueri yang lambat atau tidak efisien karena ada JOINS yang tidak perlu, tabel yang dikueri tidak memiliki indeks atau berisi subkueri berlapis yang berlebihan. Dengan menggunakan GitHub Copilot, Anda dapat memilih kueri dan meminta pengoptimalan apa pun yang dapat meningkatkan performa.

Demikian pula, Anda dapat meminta Copilot untuk menulis ulang kueri untuk keterbacaan atau pemeliharaan yang lebih baik, meminta Copilot untuk memberikan komentar untuk menjelaskan fungsionalitas bagi pengembang di masa mendatang yang mungkin perlu meninjau kode.

Contoh perintah mungkin:

"Tambahkan komentar terperinci ke file complex.sql yang menjelaskan tujuan dan fungsionalitas setiap CTE, klausa SQL, dan perhitungan. Pastikan untuk menjelaskan apa yang dilakukan setiap bagian kueri, termasuk bagaimana tahun diekstrak, bagaimana rata-rata bergulir dihitung, logika di balik rasio performa, dan arti setiap pernyataan CASE. Komentar harus memudahkan seseorang yang tidak terbiasa dengan file untuk memahami logika dan niat seluruh kueri."

Memvalidasi integritas data

Gunakan Copilot untuk membantu menulis kueri SQL yang memvalidasi integritas data atau memeriksa kondisi tertentu dalam database Anda. Misalnya, Anda dapat meminta GitHub Copilot untuk melakukan salah satu dari empat jenis pemeriksaan integritas:

  • Keunikan / pemeriksaan penggandaan
  • Integritas referensial (pelanggaran kunci asing)
  • Integritas domain (nilai dalam rentang yang diharapkan)
  • Pemeriksaan aturan bisnis (pelanggaran logika khusus)

Contoh kueri mungkin:

"Tulis kueri SQL yang memeriksa kunci asing yatim piatu antara tabel Pesanan dan Pelanggan."

Dokumentasi skema database

Anda dapat meminta GitHub Copilot untuk membantu Anda menulis kueri yang menjelajahi atau mendokumen skema database Anda. Dengan memberi GitHub Copilot konteks database yang sedang Anda kerjakan, Anda akan dapat menentukan apakah kode yang berinteraksi dengan database tersebut dapat dioptimalkan. Meskipun GitHub Copilot tidak menganalisis secara mendalam rencana eksekusi kueri, tetapi memahami konteks database SQL yang berinteraksi dengan Anda, itu dapat memberikan saran yang lebih baik.

Pembuatan pengujian SQL

Anda dapat meminta GitHub Copilot untuk menghasilkan pengujian atau pernyataan berbasis SQL untuk memverifikasi hasil kueri atau status database. Copilot dapat menyarankan kerangka kerja pengujian yang sesuai berdasarkan jenis proyek Anda. Untuk mengonfigurasi lingkungan pengujian Anda, masukkan perintah /setupTests di bidang input obrolan dan ikuti panduan GitHub Copilot untuk mengonfigurasi proyek Anda.

GitHub Copilot dapat membantu Anda menulis pengujian untuk kode aplikasi Anda dengan menghasilkan kode pengujian yang mencakup basis kode Anda. Ini termasuk pengujian unit, pengujian end-to-end, dan pengujian untuk kasus tepi.

Melacak Kesalahan SQL

Anda dapat meminta GitHub Copilot untuk membantu men-debug kesalahan SQL atau menyarankan perbaikan untuk masalah umum. Misalnya, Anda dapat memilih file atau blok kode dan meminta GitHub Copilot untuk menemukan dan memperbaiki kesalahan sintaks apa pun.

Dengan meminta GitHub Copilot memberi Anda skema tabel lengkap dan indeks, Anda kemudian dapat meminta GitHub Copilot menghasilkan kueri representatif terhadap tabel dan menyarankan indeks tambahan, yang dapat meningkatkan performa.

Pembuatan prompt GitHub Copilot

Anda dapat menggunakan GitHub Copilot untuk menghasilkan perintah untuk membuat kode yang berkinerja lebih baik daripada kode yang ada. Saat berinteraksi dengan GitHub Copilot, berikan detail sebanyak mungkin dalam pertanyaan untuk meningkatkan kemungkinan jawaban yang diberikan memenuhi kebutuhan Anda. Untuk mencapai hal ini:

  • Memiliki pemahaman tentang kode. Pemahaman ini dapat berasal dari interaksi yang ada dengan GitHub Copilot.
  • Pilih kode asli dan buka GitHub Copilot Chat.
  • Berikan detail sebanyak mungkin. Misalnya, Anda mungkin memberikan obrolan GitHub Copilot dengan perintah berikut:

Mengingat persyaratan berikut:Database adalah SQLite dan berisi tabel yang relevan dengan peringkat film (lihat struktur dalam complex.sql).Kueri harus mengagregasi dan mengembalikan film berperingkat teratas secara efisien menurut wilayah, meminimalkan waktu eksekusi dan menghindari operasi yang tidak perlu (seperti CAST redundan, JOIN yang tidak perlu, atau SELECT DISTINCT jika tidak diperlukan).Hasilnya harus mencakup judul film, peringkat rata-rata, wilayah, dan bidang relevan lainnya.Kueri harus selesai dalam waktu kurang dari 1,5 detik pada himpunan data besar. Semua logika dan kebenaran bisnis harus dipertahankan seperti dalam complex.sql asli.Tulis kueri SQL berkinerja tinggi yang memenuhi persyaratan ini, dan jelaskan pengoptimalan apa pun yang Anda terapkan.