Εισαγωγή
Η SQLite είναι μια δημοφιλής μηχανή βάσεων δεδομένων, γνωστή για την απλότητα και την αποδοτικότητά της στη διαχείριση σχεσιακών βάσεων δεδομένων. Είναι μια ενσωματωμένη μηχανή βάσης δεδομένων SQL, που σημαίνει ότι συχνά χρησιμοποιείται απευθείας μέσα σε εφαρμογές, προσφέροντας μια ελαφριά λύση χωρίς να χρειάζεται ξεχωριστή διεργασία server. Σε αυτόν τον οδηγό θα δούμε πώς να εμφανίσεις τη λίστα των πινάκων σε μια βάση δεδομένων SQLite, κάτι που κάνεις συχνά όταν εξοικειώνεσαι με τη δομή μιας υπάρχουσας βάσης ή όταν κάνεις debugging.
Προαπαιτούμενα
Θα χρειαστείς την SQLite εγκατεστημένη και προσβάσιμη. Μπορείς να δουλέψεις με βάσεις δεδομένων SQLite με διάφορους τρόπους, όπως από τη γραμμή εντολών, με ένα script Python ή με εργαλεία GUI όπως το Beekeeper Studio. Αυτός ο οδηγός χρησιμοποιεί το εργαλείο γραμμής εντολών της SQLite, αφού είναι διαθέσιμο παντού.
Πρόσβαση στη βάση δεδομένων SQLite
Για αρχή, άνοιξε το terminal ή τη γραμμή εντολών και συνδέσου στη βάση δεδομένων SQLite με το εργαλείο γραμμής εντολών της SQLite. Η γενική εντολή για να ξεκινήσεις να δουλεύεις με τη βάση σου είναι:
sqlite3 your_database_file.db
Αντικατάστησε το ‘your_database_file.db’ με τη διαδρομή του αρχείου της βάσης δεδομένων SQLite.
Εμφάνιση πινάκων με την εντολή .tables
Η SQLite προσφέρει την εντολή .tables ως έναν εύκολο τρόπο για να εμφανίσεις όλους τους διαθέσιμους πίνακες της ενεργής βάσης δεδομένων.
Στο shell γραμμής εντολών της SQLite, πληκτρολόγησε τα εξής:
.tables
Εκτελώντας αυτή την εντολή, η SQLite θα επιστρέψει μια λίστα με τα ονόματα όλων των πινάκων της τρέχουσας βάσης δεδομένων.
Αναμενόμενο αποτέλεσμα: (με το δείγμα βάσης δεδομένων ‘sakila.db’)
actor experiments payment
address film rental
category film_actor sales_by_film_category
city film_category sales_by_store
country film_list staff
customer film_text staff_list
customer_list inventory store
events language
Πώς λειτουργεί η εντολή .tables;
Η SQLite ζητά από τη βάση δεδομένων να επιστρέψει τα ονόματα όλων των πινάκων και των views στην κύρια και στις συνδεδεμένες βάσεις. Στο παρασκήνιο, αυτό γίνεται εκτελώντας μια εντολή SELECT στον πίνακα sqlite_master.
Query στον πίνακα sqlite_master
Για περισσότερο έλεγχο, μπορείς να κάνεις query απευθείας στον πίνακα ‘sqlite_master’, που αποθηκεύει τα μεταδεδομένα της βάσης, συμπεριλαμβανομένων των ορισμών των πινάκων.
Για παράδειγμα:
SELECT name FROM sqlite_master WHERE type='table';
Αυτή η εντολή SQL επιλέγει όλες τις εγγραφές της στήλης name του πίνακα sqlite_master όπου το type είναι ‘table’.
Αναμενόμενο αποτέλεσμα: (με το δείγμα βάσης δεδομένων ‘sakila.db’)
---------------
actor
sqlite_sequence
country
city
address
language
category
customer
film
film_actor
film_category
film_text
inventory
staff
store
payment
rental
experiments
events
Εμφάνιση του σχήματος πίνακα με την εντολή .schema
Για να εξετάσεις τη δομή ή το ‘σχήμα’ του πίνακά σου (δηλαδή τις στήλες του πίνακα και τους αντίστοιχους τύπους δεδομένων), η SQLite παρέχει την εντολή .schema:
.schema your_table_name
Αναμενόμενο αποτέλεσμα: (με τον πίνακα ‘actor’ του δείγματος βάσης δεδομένων ‘sakila.db’)
CREATE TABLE actor (
actor_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
, "email_address" VARCHAR(255) NULL);
CREATE INDEX idx_actor_last_name ON actor(last_name)
;
CREATE TRIGGER actor_trigger_ai AFTER INSERT ON actor
BEGIN
UPDATE actor SET last_update = DATETIME('NOW') WHERE rowid = new.rowid;
END;
CREATE TRIGGER actor_trigger_au AFTER UPDATE ON actor
BEGIN
UPDATE actor SET last_update = DATETIME('NOW') WHERE rowid = new.rowid;
END;
Αντικατάστησε το ‘your_table_name’ με το όνομα του πίνακά σου.
Αυτή η εντολή θα επιστρέψει τη δήλωση CREATE TABLE που χρησιμοποιήθηκε για να δημιουργηθεί ο πίνακας στη βάση σου.
Με δήλωση SELECT sql
Εναλλακτικά, μπορείς να πάρεις το σχήμα με μια δήλωση SELECT στον πίνακα sqlite_master:
SELECT sql FROM sqlite_master WHERE name = 'your_table_name';
Αυτή η εντολή θα επιστρέψει την ίδια δήλωση CREATE TABLE με την εντολή .schema, χωρίς τις δηλώσεις ‘INDEX’ και ‘TRIGGER’.
Χρήση της εντολής PRAGMA για πληροφορίες πίνακα
Ένας άλλος τρόπος στην SQLite είναι η εντολή PRAGMA, που δίνει διάφορα χαρακτηριστικά της βάσης δεδομένων SQLite. Μια χρήσιμη εντολή PRAGMA είναι η ‘table_info’, με την οποία παίρνεις πληροφορίες για τις στήλες ενός πίνακα.
Αν και η ‘table_info’ δεν εμφανίζει όλους τους πίνακες, μπορείς να τη χρησιμοποιήσεις μαζί με τις εντολές εμφάνισης πινάκων για να καταλάβεις τη δομή τους αμέσως μόλις βρεις τα ονόματά τους.
Παράδειγμα:
PRAGMA table_info('actor');
Αναμενόμενο αποτέλεσμα: (με τον πίνακα ‘actor’ του δείγματος βάσης δεδομένων ‘sakila.db’)
cid name type notnull dflt_value pk
--- ------------- ------------ ------- ----------------- --
0 actor_id INTEGER 1 1
1 first_name VARCHAR(45) 1 0
2 last_name VARCHAR(45) 1 0
3 last_update TIMESTAMP 1 CURRENT_TIMESTAMP 0
4 email_address VARCHAR(255) 0 0
Κάθε γραμμή αντιστοιχεί σε μια στήλη του πίνακα ‘actor’, με τα πεδία να δείχνουν αντίστοιχα το ‘cid’, το ‘name’, τον ‘type’, την κατάσταση ‘not null’, την ‘default value’ και τις πληροφορίες ‘primary key’ της στήλης.
Συμπέρασμα
Η εμφάνιση των πινάκων στην SQLite είναι βασική δεξιότητα για τη διαχείριση και τον έλεγχο μιας βάσης δεδομένων. Είτε χρησιμοποιείς την εντολή .tables για μια γρήγορη λίστα, είτε κάνεις query στον πίνακα sqlite_master για πιο προγραμματιστική προσέγγιση, είτε χρησιμοποιείς δηλώσεις PRAGMA για αναλυτικές πληροφορίες για τη δομή των πινάκων, η SQLite σου δίνει πολλά εργαλεία για να κατανοείς και να δουλεύεις αποτελεσματικά με τη βάση σου.
Αν και το να καταλαβαίνεις και να γράφεις εντολές SQL για να βλέπεις τους πίνακες της SQLite έχει την αξία του, μπορεί επίσης να είναι χρονοβόρο και περίπλοκο, ειδικά σε τεράστιες βάσεις δεδομένων.
Το Beekeeper Studio σου δίνει ένα φιλικό περιβάλλον για τους πίνακες της βάσης σου, κάνοντας την πλοήγηση ανάμεσα σε πολλούς πίνακες πολύ πιο βολική.
Επιπλέον, για να δεις το σχήμα οποιουδήποτε πίνακα, απλώς κάνε κλικ στο όνομά του και το σχήμα θα εμφανιστεί σε καλά οργανωμένη μορφή.
Το Beekeeper Studio είναι ένα δωρεάν & open source SQLite GUI
Αυτό ακριβώς χρειαζόμουν. Το UI είναι γρήγορο και καθαρό, δουλεύει όπως θέλω και περιμένω, και απλώς κάνει τη δουλειά. Είναι το τέλειο εργαλείο για να δουλεύω με τις βάσεις δεδομένων μου στο SQLite. - Andy
Το Beekeeper Studio είναι ένας γρήγορος, διαισθητικός και εύκολος στη χρήση SQLite client. Υποστηρίζει και πολλές άλλες βάσεις δεδομένων και δουλεύει άψογα σε Windows, Mac και Linux.
Τι λένε οι χρήστες του SQLite για το Beekeeper Studio
Ποτέ δεν κατάλαβα πραγματικά πώς λειτουργεί ο σχεδιασμός μοντέλων μέχρι που άρχισα να το χρησιμοποιώ για να κάνω query και να βλέπω τη βάση δεδομένων! Είμαι ευγνώμων γι' αυτό στο ταξίδι μου. Το προτείνω σε όποιον μαθαίνει Django + sqlite, αφού μόνο γι' αυτό το έχω χρησιμοποιήσει μέχρι τώρα.
Δύο βασικά πράγματα. Πρώτον, η συνδεσιμότητα. Δεν χρειάζεται να χρησιμοποιώ DB Browser for SQLite για SQLite, MySQL Workbench για MySQL, psql για PostgreSQL. Το Beekeeper δουλεύει με όλες. Δεύτερον: AI. Η λειτουργία AI μετατρέπει τα αγγλικά σε SQL.