Apa Itu Skema MySQL? Cara Memeriksa Basis Data, Tabel, dan Metadata (Panduan Lengkap)

Apa Itu “Skema” di MySQL? (Terminologi dan Konsep Dasar)

Banyak pemula yang baru mulai menggunakan MySQL, atau yang bermigrasi dari sistem basis data lain, sering tersandung pada istilah “skema.” Meskipun kata “skema” digunakan di berbagai basis data, maknanya dapat berbeda tergantung pada sistemnya. Memahami hal ini dengan jelas sejak awal sangat penting.

Awalnya, “skema” mengacu pada “struktur” atau “cetakan.” Dalam konteks sistem manajemen basis data relasional (RDBMS), istilah ini umumnya merujuk pada definisi struktural keseluruhan dalam sebuah basis data, termasuk konfigurasi tabel, informasi kolom, indeks, view, prosedur tersimpan, dan lain‑lain.

Namun, dalam MySQL, istilah “skema” dan “basis data” diperlakukan hampir identik. Dokumentasi resmi MySQL dengan jelas menyatakan bahwa “skema = basis data,” dan keduanya digunakan secara bergantian. Misalnya, saat membuat sebuah skema, Anda menggunakan perintah CREATE DATABASE.

Di sistem RDBMS lain seperti Oracle dan PostgreSQL, “skema” dan “basis data” dibedakan secara jelas:

  • Oracle : Sebuah skema adalah kumpulan objek yang dikelola per pengguna. Basis data adalah wadah fisik, dan banyak skema berada di dalamnya.
  • PostgreSQL : Sebuah basis data tunggal dapat berisi banyak skema (namespace), memungkinkan klasifikasi dan pengelolaan tabel serta view.

Sebaliknya, dalam MySQL, “basis data” = “skema”. Terlepas dari istilah mana yang digunakan dalam penjelasan, operasi dan metode pengelolaan yang sebenarnya tetap sama. Oleh karena itu, “memeriksa skema” di MySQL pada dasarnya berarti “memeriksa basis data.”

Dalam dokumentasi berbahasa Inggris, baik “skema” maupun “basis data” muncul, dan manual MySQL kadang‑kadang menggunakan keduanya secara bergantian. Pada praktiknya, ketika Anda melihat “skema” dalam dokumentasi MySQL, Anda dapat menafsirkannya sebagai “basis data.”

Dengan memahami penggunaan istilah khusus MySQL secara tepat, Anda dapat menghindari kebingungan saat mengelola sistem atau merujuk pada dokumentasi teknis. Mulai dari bagian berikutnya, kami akan menjelaskan secara jelas cara memeriksa skema (basis data) di MySQL langkah demi langkah.

[Basics] Cara Memeriksa Skema MySQL (Daftar, Beralih, Tabel)

Untuk memahami isi sebuah “skema (basis data)” di MySQL, penting mengetahui perintah dan prosedur dasar. Pada bagian ini, kami menjelaskan dengan cermat operasi umum—dari menampilkan daftar skema hingga memeriksa tabel dan informasi kolom. Bahkan pemula pun dapat mengikutinya.

Menampilkan Daftar Skema (Basis Data)

Di MySQL, Anda dapat membuat banyak basis data (skema) pada satu server.
Untuk melihat daftar tersebut, gunakan perintah berikut:

SHOW DATABASES;

Saat dijalankan, perintah ini menampilkan nama semua skema (basis data) pada server. Pada beberapa lingkungan, Anda juga dapat menggunakan SHOW SCHEMATA;, yang menghasilkan hasil yang sama dengan SHOW DATABASES;. Jika Anda khawatir tentang perbedaan versi, konsultasikan manual resmi.

Beralih ke Skema Aktif

Untuk beroperasi pada skema (basis data) tertentu, Anda harus memilihnya terlebih dahulu.

Untuk beralih skema, gunakan:

USE database_name;

Sebagai contoh, untuk menggunakan skema bernama sample_db, ketik:

USE sample_db;

Semua operasi selanjutnya akan diterapkan pada skema (basis data) yang dipilih tersebut.

Memeriksa Struktur Tabel dan Kolom

Setiap skema berisi banyak tabel.
Untuk menampilkannya, gunakan:

SHOW TABLES;

Perintah ini menampilkan semua nama tabel dalam skema yang sedang dipilih.

Untuk memeriksa struktur sebuah tabel tertentu (nama kolom, tipe data, pengaturan NULL, dll.), gunakan salah satu dari berikut ini:

DESCRIBE table_name;

atau

SHOW COLUMNS FROM table_name;

Kedua perintah menghasilkan hasil yang hampir identik. Misalnya, untuk memeriksa struktur kolom tabel users, ketik:

DESCRIBE users;

Memeriksa Pengaturan Detail Skema

Jika Anda ingin meninjau pengaturan khusus skema seperti set karakter dan kolasi, gunakan:

SHOW CREATE DATABASE database_name;

Perintah ini menghasilkan pernyataan SQL yang digunakan untuk membuat skema (basis data). Ini sangat berguna untuk memverifikasi pengaturan pengkodean karakter dan kolasi guna mencegah masalah terkait konfigurasi.

Poin Kunci

  • Semua tugas inspeksi dasar dapat dilakukan menggunakan perintah MySQL standar.
  • Hasil ditampilkan langsung di terminal (baris perintah), memungkinkan Anda untuk melanjutkan secara efisien.
  • Sebagian besar tugas juga dapat dilakukan menggunakan alat GUI seperti MySQL Workbench atau phpMyAdmin, tetapi perintah CLI sering kali lebih andal saat pemecahan masalah.

Perintah yang diperkenalkan dalam bagian ini merupakan pengetahuan dasar bagi siapa saja yang bekerja dengan MySQL secara rutin.

[Advanced] Mengambil Informasi Terperinci Menggunakan INFORMATION_SCHEMA

Meskipun perintah MySQL dasar memungkinkan Anda untuk memeriksa struktur skema dan tabel, informasi yang lebih terperinci atau ekstraksi massal lebih baik ditangani menggunakan INFORMATION_SCHEMA. INFORMATION_SCHEMA adalah basis data sistem yang memungkinkan Anda untuk merujuk metadata yang dikelola secara internal oleh server MySQL sebagai tabel SQL standar.

Karena memungkinkan pengambilan informasi yang diperlukan berdasarkan SQL yang fleksibel, ini sangat berguna untuk otomatisasi dan pelaporan.

Apa Itu INFORMATION_SCHEMA?

INFORMATION_SCHEMA adalah salah satu basis data sistem yang disertakan secara default di MySQL.
Ini berisi tabel seperti “SCHEMATA,” “TABLES,” dan “COLUMNS,” yang menyimpan metadata tentang basis data (skema), tabel, dan kolom.

Anda dapat mengquery tabel-tabel ini menggunakan pernyataan SELECT standar untuk mengekstrak detail konfigurasi internal dan struktural.

Kasus Penggunaan Utama:

  • Mengambil informasi skema dan tabel yang terperinci
  • Memeriksa tipe data, kendala, dan nilai default
  • Melakukan ekstraksi fleksibel dengan filter dan agregasi

Mengambil Informasi Skema

Untuk mengambil daftar dan atribut dari semua skema (basis data):

SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;

Query ini mengembalikan nama skema (SCHEMA_NAME), set karakter default (DEFAULT_CHARACTER_SET_NAME), kolasi (DEFAULT_COLLATION_NAME), dan detail konfigurasi lainnya.

Mengambil Informasi Tabel dan Kolom

Untuk mengambil informasi tabel atau kolom yang terperinci secara massal, gunakan tabel “TABLES” dan “COLUMNS”.

Contoh: Mengambil semua informasi tabel dalam sebuah skema

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'target_schema_name';

Contoh: Mengambil informasi kolom yang terperinci

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'target_schema_name' 
  AND TABLE_NAME = 'target_table_name';

Ini menyediakan nama kolom (COLUMN_NAME), tipe data (DATA_TYPE), pengaturan NULL (IS_NULLABLE), nilai default (COLUMN_DEFAULT), dan panjang maksimum (CHARACTER_MAXIMUM_LENGTH).

Contoh Filter Praktis

INFORMATION_SCHEMA memungkinkan filter fleksibel menggunakan klausa WHERE.

Contoh 1: Ekstrak semua kolom tipe INT dalam sebuah skema

SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'target_schema_name'
  AND DATA_TYPE = 'int';

Contoh 2: Temukan tabel yang menggunakan kolasi tertentu

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'target_schema_name'
  AND TABLE_COLLATION LIKE 'utf8mb4%';

Menggunakan INFORMATION_SCHEMA memungkinkan ekstraksi dan analisis struktur internal MySQL berdasarkan SQL yang fleksibel.

[Expert] Menggunakan Metadata InnoDB dan Skema sys (MySQL 8.0+)

Setelah Anda nyaman mengambil informasi skema dan tabel, Anda dapat melanjutkan ke manajemen lanjutan dan analisis performa. Khususnya saat menggunakan mesin penyimpanan InnoDB atau mengoperasikan sistem skala besar, tabel InnoDB dari INFORMATION_SCHEMA dan skema sys sangat berguna.

Metadata Mesin InnoDB

InnoDB adalah mesin penyimpanan default MySQL dan mendukung transaksi, penguncian tingkat baris, dan kendala kunci asing.

Tabel terkait InnoDB yang berguna meliputi:

  • INNODB_TABLES : Informasi dasar tentang tabel yang dikelola InnoDB
  • INNODB_COLUMNS : Informasi kolom
  • INNODB_INDEXES : Detail indeks
  • INNODB_LOCKS : Informasi kunci (lock) saat ini
  • INNODB_TRX : Transaksi yang aktif

Contoh: Periksa status kunci saat ini

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

Menggunakan Skema sys

Tersedia secara default di MySQL 5.7 dan yang lebih baru (khususnya 8.0+), skema sys menyediakan tampilan ringkas yang ramah manusia dari data INFORMATION_SCHEMA dan performance schema data.

Tampilan yang sering digunakan:

  • sys.schema_table_statistics : Statistik akses tabel
  • sys.schema_index_statistics : Statistik penggunaan indeks
  • sys.innodb_lock_waits : Informasi tunggu kunci
  • sys.user_summary : Ringkasan aktivitas pengguna

Contoh: Periksa tunggu kunci saat ini

SELECT * FROM sys.innodb_lock_waits;

Contoh: Periksa statistik baca/tulis untuk semua tabel

SELECT * FROM sys.schema_table_statistics;

Ringkasan

INFORMATION_SCHEMA dan skema sys adalah alat yang kuat untuk memvisualisasikan keadaan internal MySQL melalui SQL.
Mereka sangat berharga dalam lingkungan produksi yang menggunakan InnoDB atau yang mengincar operasi lanjutan serta optimasi kinerja.

[Quick Reference by Use Case] Perintah yang Direkomendasikan

Saat memeriksa skema atau struktur tabel di MySQL, memilih perintah yang tepat untuk tujuan Anda adalah kunci efisiensi. Tabel di bawah ini merangkum perintah yang sering digunakan berdasarkan tujuan.

PurposeCommand / SQL ExampleNotes
List all schemas on the serverSHOW DATABASES;Most basic command
List tables in the selected schemaSHOW TABLES;Displays tables in current schema
Retrieve all table info in a schemaSELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'schema_name';Includes table attributes
Quickly check column definitionsDESCRIBE table_name;
SHOW COLUMNS FROM table_name;
Shows column names and types
Retrieve detailed column infoSELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'schema_name' AND TABLE_NAME = 'table_name';Includes NULL and default values
Check schema creation settingsSHOW CREATE DATABASE schema_name;Includes COLLATE and CHARSET
Check table creation detailsSHOW CREATE TABLE table_name;Includes indexes and foreign keys
Check InnoDB locks and transactionsSELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
SELECT * FROM sys.innodb_lock_waits;
Useful for InnoDB
Check table/index access statisticsSELECT * FROM sys.schema_table_statistics;
SELECT * FROM sys.schema_index_statistics;
Uses sys schema
Check user privilegesSHOW GRANTS FOR 'username'@'hostname';Verify user permissions

[Troubleshooting and Error Handling]

Saat mencoba memeriksa skema atau tabel di MySQL, Anda mungkin menghadapi masalah seperti perintah tidak dijalankan atau informasi tidak ditampilkan.

Kesalahan Izin (Akses Ditolak)

Contoh kesalahan:

ERROR 1044 (42000): Access denied for user 'user'@'host' to database 'mysql'
ERROR 1142 (42000): SHOW command denied to user 'user'@'host' for table 'database'

Solusi:

  • Masuk dengan akun administratif.
  • Minta hak istimewa SHOW atau SELECT yang diperlukan. GRANT SHOW DATABASES ON *.* TO 'user'@'host'; FLUSH PRIVILEGES;

Periksa hak istimewa saat ini:

SHOW GRANTS FOR 'user'@'host';

Basis Data atau Tabel Tidak Ditemukan

Contoh:

ERROR 1049 (42000): Unknown database 'db_name'
ERROR 1146 (42S02): Table 'db_name.table_name' doesn't exist

Periksa kesalahan pengetikan, sensitivitas huruf besar/kecil, dan verifikasi keberadaan dengan:

SHOW DATABASES;
SHOW TABLES;

Perbedaan Versi

Beberapa fitur bergantung pada versi MySQL.

Periksa versi:

SELECT VERSION();

Masalah Lain

  • Kegagalan koneksi karena masalah jaringan/server
  • Batas waktu kueri — optimalkan kueri atau sesuaikan pengaturan batas waktu

FAQ (Pertanyaan yang Sering Diajukan)

Q1. Bagaimana skema MySQL berbeda dari skema di Oracle atau PostgreSQL?

A. Di MySQL, skema = basis data. Di Oracle dan PostgreSQL, skema dan basis data adalah konsep terpisah.

Q2. Apa cara paling efisien untuk mengambil informasi kolom secara detail?

A.

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database_name';

Q3. Bagaimana saya dapat memeriksa set karakter atau kolasi?

A. Gunakan:

SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;

Q4. Saya tidak memiliki izin untuk melihat informasi. Apa yang harus saya lakukan?

A. Minta hak istimewa yang sesuai. Periksa izin Anda saat ini:

SHOW GRANTS FOR 'username'@'hostname';

Q5. Bagaimana cara memeriksa informasi skema di alat GUI?

A. Di MySQL Workbench atau phpMyAdmin, skema muncul di panel navigasi kiri. Anda juga dapat menjalankan perintah SQL di tab SQL.

Kesimpulan dan Tautan Terkait

Ringkasan

  • Di MySQL, skema = basis data.
  • Pemeriksaan dasar dapat dilakukan dengan SHOW DATABASES;, SHOW TABLES;, dan DESCRIBE table_name;.
  • INFORMATION_SCHEMA dan skema sys menyediakan wawasan yang lebih mendalam serta visibilitas kinerja.
  • Sebagian besar masalah berasal dari izin, kesalahan penamaan, atau perbedaan versi.
  • Simpan perintah referensi cepat agar tersedia untuk operasi yang efisien.

Tautan Terkait

Penutup

Kami harap panduan ini membantu Anda mengelola skema dan tabel MySQL dengan lebih baik dalam operasi harian. Terus perbarui pengetahuan Anda seiring munculnya versi MySQL baru dan kebutuhan operasional yang berkembang.