Soal: cari nama kolom di sql db ketika saya tidak tahu di tabel mana

Pembaharuan Terakhir: 09/13/2023

Berurusan dengan database yang luas dalam SQL seringkali menghadirkan berbagai tantangan. Salah satu tugas tersebut akan melibatkan pencarian nama kolom tertentu dalam database SQL ketika Anda tidak yakin tentang tabel mana yang terdiri darinya. Melalui panduan ini, kami akan menyelesaikan dilema ini, menawarkan cara sistematis untuk melaksanakan tugas ini. Ini berarti mempelajari kedalaman pemrograman SQL, sistem kueri, dan skema, memecah kode untuk menyederhanakan langkah-langkahnya bagi Anda.

Masalah

Terkadang, Anda mungkin menemukan diri Anda dalam suatu situasi di mana Anda diberi nama kolom tetapi tidak memiliki informasi tentang tabel mana yang dimilikinya. Dalam database besar dengan banyak tabel, memeriksa setiap tabel secara manual untuk kolom yang diperlukan dapat menjadi proses yang memakan waktu dan rawan kesalahan.

Solusinya: Permintaan Penyelamatan

Kabar baiknya adalah, SQL memberi Anda solusinya untuk masalah ini dengan menggunakan tampilan sistemnya. Di bawah ini adalah kueri yang akan membantu mengambil informasi yang diperlukan:

SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%YourColumnName%'
ORDER BY schema_name, table_name;

Penjelasan Kode Langkah demi Langkah

Mari kita lihat lebih dekat pada sintaks dan logika SQL yang digunakan untuk mengatasi masalah ini secara efisien:

  • PILIH t.nama SEBAGAI nama_tabel,SCHEMA_NAME(schema_id) AS Schema_name, c.name AS Column_name: Di sini kita memilih nama tabel, skemanya, dan nama kolom dari tampilan sistem.
  • DARI sys.tables SEBAGAI t: Dari sini, kami memilih tampilan sistem 'sys.tables'. Ini disebut sebagai 't' untuk penyederhanaan, yang kemudian membantu dalam kondisi penggabungan.
  • INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID: Di sini, kita melakukan operasi INNER JOIN untuk menggabungkan baris dari sys.tables dan sys.columns setiap kali kondisi join (t.OBJECT_ID = c.OBJECT_ID) terpenuhi.
  • DIMANA c.nama SEPERTI '%NamaKolomAnda%': Ini memfilter nama kolom berdasarkan kondisi yang ditentukan dalam klausa WHERE. Ganti 'NamaKolom Anda' dengan nama kolom yang Anda cari.
  • ORDER BERDASARKAN nama_skema, nama_tabel;: Terakhir, hasilnya diurutkan berdasarkan 'nama_skema' dan 'nama_tabel' agar mudah dibaca.

Ini adalah kueri sederhana yang melakukan pencarian menyeluruh, sehingga Anda tidak perlu melakukan pekerjaan manual untuk memeriksa setiap tabel.

Tampilan Sistem SQL

Tampilan sistem SQL Server menyediakan gudang informasi sistem yang luas, yang dapat digunakan untuk melakukan aktivitas intens tersebut. Khususnya, dalam kasus kita, `sys.tables`, yang mewakili daftar semua tabel yang ada dan `sys.columns` yang mewakili semua informasi kolom untuk tabel mana pun, merupakan tulang punggung kueri kami.

Klausul GABUNG DALAM

The INNER JOIN seleksi adalah salah satu gabungan SQL yang banyak digunakan, karena ia mengembalikan catatan yang memiliki nilai yang cocok di kedua tabel yang terlibat dalam gabungan tersebut. Di sini, kami menggunakannya untuk berunding antara pemetaan tabel dan kolom.

Mencari nama kolom dalam database SQL yang sangat besar tidak pernah semudah ini. Memang benar, keserbagunaan SQL terletak pada kemampuannya untuk menavigasi dan mengelola data dalam jumlah besar dengan relatif mudah. Diskusi ini merupakan bukti kemampuan tersebut, menyederhanakan tugas yang mungkin cukup rumit.

Pos terkait: