Terkadang Anda hanya ingin melihat struktur dasar sebuah tabel.
Di SQLite, ada beberapa cara untuk mengambil informasi tentang tabel yang diberikan. Secara khusus, berikut adalah empat opsi:
PRAGMA table_info()
pernyataanPRAGMA table_xinfo()
pernyataan (untuk tabel virtual).schema
perintahsqlite_master
meja
Contoh masing-masing metode di bawah ini.
PRAGMA table_info()
PRAGMA table_info()
pernyataan mengembalikan satu baris untuk setiap kolom dalam tabel bernama. Ini seperti SQLite yang setara dengan DESCRIBE
pernyataan di MySQL.
Sintaks
Sintaksnya seperti ini:
PRAGMA schema.table_info(table-name);
Dimana table-name
adalah nama tabel yang Anda perlukan informasinya.
schema
bagian adalah opsional. Ini adalah nama database terlampir atau main
atau temp
untuk database utama dan TEMP. Jika Anda tidak memberikan ini maka database utama akan digunakan.
Contoh
Berikut ini contoh pengembalian informasi tentang tabel yang disebut Hewan Piaraan .
PRAGMA table_info(Pets);
Hasil:
cid name type notnull dflt_value pk ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 1 PetName 0 0 2 TypeId 0 0
Dalam hal ini, hanya kolom pertama (PetId ) memiliki tipe data yang didefinisikan secara eksplisit. Yang lain dibuat tanpa jenisnya yang didefinisikan secara eksplisit.
Kita juga dapat melihat bahwa PetId kolom adalah kolom kunci utama (ada 1 di pk kolom).
PRAGMA table_xinfo()
PRAGMA table_xinfo()
pernyataan ini persis sama dengan PRAGMA table_info()
pernyataan, kecuali bahwa ia juga mengembalikan kolom tersembunyi pada tabel virtual.
Jika Anda ingin melihat struktur tabel virtual, termasuk kolom tersembunyi, inilah yang digunakan.
Berikut ini contoh menggunakan tabel yang sama dari contoh sebelumnya.
PRAGMA table_xinfo(Pets);
Hasil:
cid name type notnull dflt_value pk hidden ---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 0 1 PetName 0 0 0 2 TypeId 0 0 0
Anda mungkin harus menggulir ke samping untuk melihat kolom tambahan. Dalam hal ini tidak ada kolom yang disembunyikan (dan ini bukan tabel virtual), jadi semua baris 0 untuk kolom itu.
Ini hasilnya lagi, tetapi menggunakan output vertikal (.mode line
) sehingga Anda tidak perlu menggulir ke samping.
.mode line
PRAGMA table_xinfo(Pets);
Hasil:
cid = 0 name = PetId type = INTEGER notnull = 0 dflt_value = pk = 1 hidden = 0 cid = 1 name = PetName type = notnull = 0 dflt_value = pk = 0 hidden = 0 cid = 2 name = TypeId type = notnull = 0 dflt_value = pk = 0 hidden = 0
Perintah .schema
Cara lain untuk mengambil struktur tabel adalah dengan menggunakan .schema
memerintah. Ini adalah salah satu dari beberapa metode yang dapat Anda gunakan untuk mengembalikan SQL yang digunakan untuk membuat tabel.
Berikut ini contoh menggunakan tabel yang sama dari contoh sebelumnya.
.schema Pets
Hasil:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) );
Metode ini memungkinkan kita untuk melihat lebih banyak informasi tentang tabel. Dalam contoh ini, kita dapat melihat bahwa TypeId kolom sebenarnya adalah kunci asing yang mereferensikan kolom di tabel lain.
Tabel sqlite_master
Anda dapat menggunakan sqlite_master
tabel ke hal yang sama seperti contoh sebelumnya.
Berikut ini contoh menggunakan tabel yang sama.
SELECT sql
FROM sqlite_master
WHERE tbl_name = 'Pets';
Hasil:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) )