- 1 Apa Itu “Skema” di MySQL? (Terminologi dan Konsep Dasar)
- 2 [Basics] Cara Memeriksa Skema MySQL (Daftar, Beralih, Tabel)
- 3 [Advanced] Mengambil Informasi Terperinci Menggunakan INFORMATION_SCHEMA
- 4 [Expert] Menggunakan Metadata InnoDB dan Skema sys (MySQL 8.0+)
- 5 [Quick Reference by Use Case] Perintah yang Direkomendasikan
- 6 [Troubleshooting and Error Handling]
- 7 FAQ (Pertanyaan yang Sering Diajukan)
- 7.1 Q1. Bagaimana skema MySQL berbeda dari skema di Oracle atau PostgreSQL?
- 7.2 Q2. Apa cara paling efisien untuk mengambil informasi kolom secara detail?
- 7.3 Q3. Bagaimana saya dapat memeriksa set karakter atau kolasi?
- 7.4 Q4. Saya tidak memiliki izin untuk melihat informasi. Apa yang harus saya lakukan?
- 7.5 Q5. Bagaimana cara memeriksa informasi skema di alat GUI?
- 8 Kesimpulan dan Tautan Terkait
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 InnoDBINNODB_COLUMNS: Informasi kolomINNODB_INDEXES: Detail indeksINNODB_LOCKS: Informasi kunci (lock) saat iniINNODB_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 tabelsys.schema_index_statistics: Statistik penggunaan indekssys.innodb_lock_waits: Informasi tunggu kuncisys.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.
| Purpose | Command / SQL Example | Notes |
|---|---|---|
| List all schemas on the server | SHOW DATABASES; | Most basic command |
| List tables in the selected schema | SHOW TABLES; | Displays tables in current schema |
| Retrieve all table info in a schema | SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'schema_name'; | Includes table attributes |
| Quickly check column definitions | DESCRIBE table_name;SHOW COLUMNS FROM table_name; | Shows column names and types |
| Retrieve detailed column info | SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'schema_name' AND TABLE_NAME = 'table_name'; | Includes NULL and default values |
| Check schema creation settings | SHOW CREATE DATABASE schema_name; | Includes COLLATE and CHARSET |
| Check table creation details | SHOW CREATE TABLE table_name; | Includes indexes and foreign keys |
| Check InnoDB locks and transactions | SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;SELECT * FROM sys.innodb_lock_waits; | Useful for InnoDB |
| Check table/index access statistics | SELECT * FROM sys.schema_table_statistics;SELECT * FROM sys.schema_index_statistics; | Uses sys schema |
| Check user privileges | SHOW 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;, danDESCRIBE 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
- Dokumentasi Resmi MySQL
- Referensi INFORMATION_SCHEMA
- Panduan Skema sys
- Panduan Hak Istimewa Pengguna MySQL
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.


