Εκμάθηση SQLite: Όλα όσα πρέπει να γνωρίζετε



Αυτό το σεμινάριο sqlite θα σας βοηθήσει να καταλάβετε πώς το sqlite διαφέρει από άλλα σχετικά συστήματα βάσεων δεδομένων και όλες τις βασικές εντολές

Εάν έχετε εργαστεί με σχεσιακά συστήματα βάσεων δεδομένων, είναι πιθανό να έχετε ακούσει για δημοφιλή συστήματα βάσεων δεδομένων όπως MySQL , Διακομιστής ή PostgreSQL . Το SQLite είναι ένα άλλο εξαιρετικά χρήσιμο RDBMS που είναι πολύ απλό στη ρύθμιση και τη λειτουργία. Επίσης, έχει πολλά διαφορετικά χαρακτηριστικά σε σχέση με άλλες σχεσιακές βάσεις δεδομένων. Αυτό το σεμινάριο SQLite διδάσκει βασικές έννοιες που πρέπει να γνωρίζετε με τη βοήθεια εκτεταμένων πρακτικών πρακτικών.

Τα θέματα που συζητούνται σε αυτό το άρθρο είναι:





Εκμάθηση SQLite: Τι είναι το SQLite;

Εδώ είναι ο τυπικός ορισμός του SQLite για τον κλάδο:

Το SQLite είναι ένας ανοιχτής πηγής, μηδενικής διαμόρφωσης, αυτόνομος, αυτόνομος, σχεσιακός κινητήρας βάσης δεδομένων συναλλαγών σχεδιασμένος να ενσωματώνεται σε μια εφαρμογή.

Μπορείτε να σκεφτείτε SQLite σαν ' αναπτήρας 'Έκδοση άλλων σύνθετων RDBMS (Oracle, , κλπ.), όπου έχει ρυθμιστεί η μηχανή βάσης δεδομένων ανεξάρτητη επεξεργασία (βιβλιοθήκη σε διαδικασία) δηλ χωρίς διακομιστή, αυτόνομη, μηδενική διαμόρφωση και συναλλαγή . Είναι γνωστό για τη φορητότητά του, την αξιοπιστία και την ισχυρή απόδοσή του ακόμη και σε περιβάλλοντα χαμηλής μνήμης. Επίσης, το SQLite είναι μια δημοφιλής επιλογή ως ενσωματωμένη βάση δεδομένων για αποθήκευση τοπικού / πελάτη σε τελικά προγράμματα ή εφαρμογές, σε αντίθεση με άλλα RDBMS, όπου έχει ρυθμιστεί η μηχανή DB-server.



Χαρακτηριστικά του SQLite

Το SQLite προσφέρει πολλά διαφορετικά χαρακτηριστικά, όπως:

  • Χωρίς διακομιστή: Πλέον Βάσεις δεδομένων SQL εφαρμόζονται ως ξεχωριστή διαδικασία διακομιστή, αλλά το SQLite δεν έχει ξεχωριστή διαδικασία διακομιστή. Είναι μια μηχανή βάσης δεδομένων χωρίς διακομιστή. Διαβάζει και γράφει απευθείας σε συνηθισμένα αρχεία δίσκου.
  • Μηδενική διαμόρφωση: Τοδεν απαιτεί καμία διαμόρφωση για να το τρέξει. Αυτό σημαίνει ότι δεν υπάρχει διαδικασία διακομιστή που πρέπει να ξεκινήσει, να σταματήσει ή να ρυθμιστεί όπως σε ένα σύστημα πελάτη / διακομιστή.
  • Πληκτρολόγηση: Το SQLite χρησιμοποιεί δηλωτική πληκτρολόγησης, η οποία επιτρέπει την αποθήκευση οποιουδήποτε ποσού οποιουδήποτε τύπου δεδομένων σε οποιαδήποτε στήλη, ανεξάρτητα από το δηλωμένο τύπο δεδομένων της στήλης. Λάβετε υπόψη ότι υπάρχουν ορισμένες εξαιρέσεις σε αυτόν τον κανόνα.
  • Πυγμάχος ελαφρού βάρους: Όπως υποδηλώνει το όνομα, η βιβλιοθήκη SQLite είναι πολύ ελαφριά. Αυτό είναι, αν και ο χώρος που χρησιμοποιεί διαφέρει ανάλογα με το σύστημα στο οποίο είναι εγκατεστημένο, μπορεί να καταλάβει λιγότερο από 600KiB χώρου.
  • Φορητός: Σε αντίθεση με άλλα DBMS, έναολόκληρη η βάση δεδομένων SQLite αποθηκεύεται σε ένα μόνο αρχείο.Αυτό το αρχείο μπορεί να γίνει κοινή χρήση μέσω αφαιρούμενου μέσου ή πρωτοκόλλου μεταφοράς αρχείων πολύ εύκολα.
  • Διαφορετική επιλογή: Πολλές γλώσσες προγραμματισμού παρέχουν δεσμεύσεις για το SQLite, συμπεριλαμβανομένων , , Γ # , , , Ρουμπίνι , , και πολλά άλλα.
  • Ελεύθερος: Το SQLite είναι δωρεάν και ανοιχτού κώδικα. Για να εργαστείτε με το SQLite δεν απαιτείται εμπορική άδεια.

Όπως αναφέρεται παραπάνω SQLiteείναι γνωστή για τη μηδενική διαμόρφωση που σημαίνει ότι δεν απαιτείται πολύπλοκη ρύθμιση ή διαχείριση. Στο επόμενο μέρος αυτού του σεμιναρίου SQLite, ας δούμε πώς να εγκαταστήσετε το SQLite στο σύστημά σας.

Εκμάθηση SQLite: Εγκατάσταση του SQLite στα Windows

Τα βήματα που πρέπει να ακολουθήσετε είναι:



Βήμα 1: μεταβείτε στο επίσημη SQLite ιστοσελίδα και κάντε κλικ στον κατάλληλο σύνδεσμο για λήψηπροκατασκευασμένα δυαδικά αρχεία.

Βήμα 2: Κατεβάστε το αρχείο zip της γραμμής εντολών SQLite (εδώ: sqlite-tools-win32-x86-3270200.zip) και αναπτύξτε αυτά τα αρχεία σε ένα φάκελο της επιλογής σας.

Αυτό το εργαλείο γραμμής εντολών SQLite θα περιέχει τα ακόλουθα προϊόντα SQLite

  • Πυρήνας SQLite : Ο πυρήνας SQLite περιέχει την πραγματική μηχανή βάσης δεδομένων και το δημόσιο API.
  • Εργαλείο γραμμής εντολών SQLite3 : Η εφαρμογή sqlite3 είναι ένα εργαλείο γραμμής εντολών που είναι χτισμένο πάνω από τον πυρήνα του SQLite.
  • Επέκταση Tcl : Αυτή η βιβλιοθήκη είναι ουσιαστικά ένα αντίγραφο του πυρήνα SQLite με τις συνδέσεις Tcl.
  • Εργαλείο ανάλυσης SQLite : Το εργαλείο ανάλυσης SQLite χρησιμοποιείται για την ανάλυση αρχείων βάσης δεδομένων.

Βήμα 3: Μετά από αυτό, η εκκίνηση της γραμμής εντολών SQLite είναι τόσο απλή όσο το κλικ στην εφαρμογή sqlite3, η οποία θα κάνει τη γραμμή εντολών να αναδυθεί.

Εάν θέλετε να δοκιμάσετε περαιτέρω, απλά πληκτρολογήστε .βοήθεια εντολή από sqlite> προτροπή για να δείτε όλες τις διαθέσιμες εντολές sqlite3 όπως φαίνεται παρακάτω.

Σημείωση: Από προεπιλογή, μια περίοδος λειτουργίας SQLite χρησιμοποιεί τη βάση δεδομένων στη μνήμη, επομένως, όλες οι αλλαγές θα εξαφανιστούν όταν τελειώσει η περίοδος λειτουργίας.

Αρκετά απλό, σωστά; Στη συνέχεια, ας ξεκινήσουμε με τις εντολές SQLite.

Εκμάθηση SQLite: Εντολές SQLite

Αυτή η ενότητα του οδηγού SQLite παρουσιάζει βασικές δηλώσεις SQL που μπορείτε να χρησιμοποιήσετε με το SQLite.

Σημείωση: Οι εντολές SQLite τελειώνουν με ημι-άνω τελεία (). Λέει στο SQLite ότι η εντολή σας είναι πλήρης και πρέπει να εκτελεστεί.Επίσης, μπορείτε να διαδώσετε την εντολή σας σε πολλές γραμμές και να χρησιμοποιήσετε το τελείωμα στην τελευταία γραμμή.

Εντολές βάσης δεδομένων

Αυτή η ενότητα αποτελείται από αυτές τις εντολές, με τις οποίες μπορείτε να χειριστείτε τη βάση δεδομένων σας. Οι εντολές είναι:

  • SQLite Δημιουργία βάσης δεδομένων

Το SQLite δεν χρησιμοποιεί τη δήλωση ΔΗΜΙΟΥΡΓΙΑ ΔΕΔΟΜΕΝΩΝ όπως σε άλλα σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων, όπως MySQL , SQL Server, κ.λπ. Για να δημιουργήσετε μια νέα βάση δεδομένων στο SQLite, απλώς εισαγάγετε το sqlite3 ακολουθούμενο από το όνομα του αρχείου που θέλετε να χρησιμοποιήσετε για τη βάση δεδομένων. Τακολουθώντας τον κώδικα δημιουργεί ένα αρχείο βάσης δεδομένων που ονομάζεται StudentDetails.db:

Παράδειγμα

sqlite3 StudentDetails.db sqlite> .databases main: D: sqliteStudentDetails.db
  • Βάση δεδομένων SQLite Attach

Όταν έχετε πολλές βάσεις δεδομένων, μπορείτε να χρησιμοποιείτε μόνο μία κάθε φορά. Στο SQLite, η δήλωση ATTACH DATABASE χρησιμοποιείται για την επισύναψη μιας συγκεκριμένης βάσης δεδομένων για την τρέχουσα σύνδεση. ΕΝΑΜετά από αυτήν την εντολή, όλες οι δηλώσεις SQLite θα εκτελεστούν κάτω από τη συνημμένη βάση δεδομένων.

Παράδειγμα

sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department' sqlite> .databases main: D: sqliteStudentDetails.db Τμήμα: D: sqliteDepartmentDetails.db
  • Βάση δεδομένων SQLite Detach

Στο SQLite, η δήλωση DETACH DATABASE χρησιμοποιείται για την αποσύνδεση της βάσης δεδομένων με το ψευδώνυμο από μια σύνδεση βάσης δεδομένων που είχε προηγουμένως επισυναφθεί χρησιμοποιώντας τη δήλωση ATTACH. Εάν το ίδιο αρχείο βάσης δεδομένων έχει επισυναφθεί με πολλά ψευδώνυμα, τότε αυτή η εντολή θα αποσυνδέσει μόνο το δεδομένο όνομα και το υπόλοιπο συνημμένο θα συνεχίσει να υπάρχει.Οι βάσεις δεδομένων στη μνήμη ή την προσωρινή βάση δεδομένων θα καταστραφούν εντελώς και το περιεχόμενο θα χαθεί.

Παράδειγμα

sqlite> .databases main: D: sqliteStudentDetails.db Τμήμα: D: sqliteDepartmentDetails.db Φοιτητής: D: sqliteStudentDetails.db DeptInformation: D: sqliteDepartmentDetails.db sqlite> DETACH DATABASE 'sdlabet. Φοιτητής: D: sqliteStudentDetails.db DeptInformation: D: sqliteDepartmentDetails.db

Εντολές πίνακα

Εδώ θα μάθουμε πώς να αντιμετωπίζουμε πίνακες κατά τη χρήση του SQLite.

  • SQL Δημιουργία πίνακα

Στο SQLite, η δήλωση CREATE TABLE χρησιμοποιείται για τη δημιουργία ενός νέου πίνακα. Κατά τη δημιουργία του πίνακα, πρέπει να ονομάσετε τον πίνακα και να ορίσετε τη στήλη και τους τύπους δεδομένων κάθε στήλης.

Σύνταξη:

CREATE TABLE table_name (στήλη1 στήλη_ τύπος [περιορισμοί] στήλη2 στήλη_ τύπος [περιορισμοί] [.....])

Παράδειγμα

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ StudentInfo (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (50), DEPARTMENTID INTEGER NOT NULL, PHONE TEXT DEFAULT 'UNKNOWN', FOREIGN KEY (Departfent)

Μπορείτε να ελέγξετε εάν ο πίνακας δημιουργήθηκε ή όχι χρησιμοποιώντας το . πίνακες εντολή όπως φαίνεται παρακάτω. Σημειώστε ότι έχω ήδη δημιουργήσει έναν πίνακα που ονομάζεται Τμήμα Πληροφορίες όπου το DeptID είναι το κύριο κλειδί.Ο πίνακας τμημάτων έχει περιορισμό ξένου κλειδιού στον πίνακα μαθητών.

sqlite> .tables StudentInfo Επαφές Emp_Master
  • Πίνακας πτώσης SQLite

Στο SQLite, η δήλωση DROP TABLE σάς επιτρέπει να αφαιρέσετε ή να διαγράψετε έναν πίνακα από τη βάση δεδομένων SQLite. Μόλις πέσει ο πίνακας, όλα τα δεδομένα που περιέχει αφαιρούνται μόνιμα από τη βάση δεδομένων. Καταργούνται επίσης τυχόν συσχετισμένα ευρετήρια και κανόνες ετικέτας. Εάν υπάρχει κάποιος περιορισμός ξένου κλειδιού σε αυτόν τον πίνακα, τότε αυτός θα αφαιρεθεί ισοδύναμα για κάθε σειρά στον πίνακα και τυχόν ενεργοποιήσεις που σχετίζονται με τον πίνακα θα απορριφθούν επίσης.

Σύνταξη

DROP TABLE [ΕΑΝ ΥΠΑΡΧΕΙ] όνομα_τραπεζιού

Παράδειγμα

DROP TABLE Σφάλμα τμήματος: δεν υπάρχει τέτοιος πίνακας: Τμήμα DROP TABLE Εταιρεία sqlite> .tables StudentInfo

Σημείωση: ΕΑΝ ΥΠΑΡΧΕΙ, είναι μια προαιρετική ρήτρα. Εάν καθοριστεί, η δήλωση DROP TABLE δεν θα δημιουργήσει σφάλμα εάν δεν υπάρχει ένας από τους πίνακες.

Επίσης, υπάρχει Δήλωση SQLite Alter Table , ότι θα κατανοήσουμε στις επόμενες ενότητες αυτού του άρθρου. Τώρα που έχουμε δημιουργήσει έναν πίνακα, ας δούμε πώς να εισάγουμε, να διαγράψουμε και να αλλάξουμε τα δεδομένα.

Εκμάθηση SQLite: Λειτουργίες CRUD

  • Ερώτημα εισαγωγής SQLite

Μετά τη δημιουργία του πίνακα, η εντολή SQLite Insert Into μπορεί να χρησιμοποιηθεί για τη δημιουργία νέων γραμμών στον καθορισμένο πίνακα. Υπάρχουν δύο σημαντικές μορφές της δήλωσης εισαγωγής SQLite. Η πρώτη φόρμα χρησιμοποιεί μια ρήτρα VALUES για να καθορίσει μια λίστα τιμών για εισαγωγή.

Σύνταξη

INSERT INTO TABLE_NAME [(στήλη1, στήλη2, στήλη3, ... στήληN)] ΤΙΜΕΣ (τιμή1, τιμή2, τιμή3, ... τιμήΝ)

Παράδειγμα

INSERT INTO StudentInfo (Αναγνωριστικό, ΟΝΟΜΑ, ΗΛΙΚΙΑ, ΔΙΕΥΘΥΝΣΗ, ΤΜΗΜΑ, ΤΗΛΕΦΩΝΟ) ΤΙΜΕΣ (1, «Dean», 20, «California», 2, «934 *******»)

Παραγωγή

ΕΠΙΛΕΞΤΕ * από το StudentInfo ID ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934 *******

Εδώ, δημιουργείται μία νέα σειρά και κάθε τιμή καταγράφεται στην αντίστοιχη στήλη της. Σημειώστε ότι και οι δύο λίστες πρέπει να έχουν το ίδιο αριθμός αντικειμένων. Εδώ, το λίστα των στηλών είναι προαιρετικό. Μπορούμε επίσης να εισαγάγουμε δεδομένα στον πίνακα χωρίς να καθορίσετε τη λίστα των στηλών .

Παράδειγμα

INSERT INTO StudentInfo VALUES (2, 'SAM', 22, 'Texas', 2, '976 *******')

Παραγωγή

ΕΠΙΛΕΞΤΕ * από το StudentInfo ID ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934 ******* 2 SAM 22 Texas 2 976 *******

Το SQLite προσφέρει επίσης μια δυνατότητα για εισαγάγετε πολλές σειρές σε μία μόνο δήλωση INSERT. Η σύνταξη είναι όπως φαίνεται παρακάτω.

Παράδειγμα

INSERT INTO StudentInfo VALUES (3, 'John', 23, 'Norway', 1, '923 *******'), (4, 'Mitch', 22, 'Houston', 3, '934 **) ***** ')

Παραγωγή

Επιλέξτε * από το StudentInfo 1 | Dean | 20 | California | 2 | 934 ******* 2 | SAM | 22 | Texas | 2 | 976 ******* 3 | John | 23 | Νορβηγία | 1 | 923 ******* 4 | Μιτς | 22 | Χιούστον | 3 | 934 *******

Όπως μπορείτε να δείτε, η μορφή της εξόδου δεν είναι αρκετά παρόμοια με αυτήν που είχε προηγουμένως. Λοιπόν, πώς αλλάζετε τη μορφή εξόδου στο SQLite; Ας μορφοποιήσουμε την έξοδο έτσι ώστε τα αποτελέσματά μας να είναι λίγο πιο ευανάγνωστα.

  • Διαμόρφωση

Μπορείτε να χρησιμοποιήσετε το .mode για να αλλάξετε τη λειτουργία εξόδου. Το παραπάνω παράδειγμα χρησιμοποιεί .τρόπος λίστα, η οποία εμφανίζει τα αποτελέσματα ως λίστα. Επίσης, μπορείτε να χρησιμοποιήσετε κεφαλίδες δήλωση για να καθορίσετε εάν θα εμφανίζονται κεφαλίδες στηλών ή όχι. Μόλις πραγματοποιήσετε τις αλλαγές, μπορείτε να δείτε τη ρύθμιση χρησιμοποιώντας .προβολή εντολή.

Παράδειγμα

sqlite> .mode 'στήλη' sqlite>. κεφαλίδες στο sqlite> .show echo: off eqp: off εξήγηση: αυτόματες κεφαλίδες: σε λειτουργία: στήλη nullvalue: '' έξοδος: stdout colseparator: '|' rowseparator: 'n' stats: off width: filename: StudentDetails.db

Παραγωγή

ΕΠΙΛΕΞΤΕ * ΑΠΟ StudentInfo ID ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ΤΗΛΕΦΩΝΟ ---------- ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2 934 ******* 2 SAM 22 Texas 2 976 ******* 3 John 23 Νορβηγία 1 923 ******* 4 Μίτ 22 Χιούστον 3 934 *******
  • SQLite Επιλέξτε ερώτημα

Στο SQLite, χρησιμοποιείται η επιλογή Selectγια λήψη δεδομένων από έναν πίνακα, ο οποίος επιστρέφει δεδομένα με τη μορφή πίνακα αποτελεσμάτων. Αυτοί οι πίνακες αποτελεσμάτων ονομάζονται επίσης αποτέλεσμα σκηνικά. Χρησιμοποιώντας το SQLite select statement μπορούμε να κάνουμε απλούς υπολογισμούς ή πολλαπλές εκφράσεις με βάση τις απαιτήσεις μας.Έχουμε χρησιμοποιήσει ήδη μια δήλωση SELECT κατά την εισαγωγή δεδομένων.

Σύνταξη

ΕΠΙΛΟΓΗ [ΟΛΕΣ | DISTINCT] αποτέλεσμα [ΑΠΟ πίνακας-λίστα] [WHERE expr]
  • ΔΙΑΚΡΙΤΗ - Όταν χρησιμοποιούμε ξεχωριστή λέξη-κλειδί σε μια επιλεγμένη δήλωση, επιστρέφει μόνο ξεχωριστές σειρές δεδομένων.
  • ΟΛΑ - Εάν χρησιμοποιήσουμε ΟΛΕΣ τις λέξεις-κλειδιά σε μια επιλεγμένη δήλωση, επιστρέφει όλες τις σειρές δεδομένων ακόμα και αν είναι διπλότυπη.
  • ΑΠΟ πίνακας-λίστα - Είναι μια λίστα πινάκων από τους οποίους θέλετε να λάβετε δεδομένα.
  • ΠΟΥ εκφράζεται - Η έκφραση WHERE χρησιμοποιείται για τον καθορισμό των προσαρμοσμένων συνθηκών μας για τη λήψη των απαιτούμενων δεδομένων από πίνακες.

Παράδειγμα 1

ΕΠΙΛΕΞΤΕ ID, ΟΝΟΜΑ ΑΠΟ StudentInfo ΠΟΥ ΗΛΙΚΙΑΣ<21

Παραγωγή

NAME ID ---------- ---------- 1 Κοσμήτορας

Παράδειγμα 2

Επιλέξτε ΟΝΟΜΑ ΑΠΟ StudentInfo WHERE DEPARTMENTID = (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology')

Παραγωγή

// ανακτά άτομα από το τμήμα του οποίου το αναγνωριστικό είναι 2 ΟΝΟΜΑ ---------- Dean SAM
  • Ερώτημα ενημέρωσης SQLite

Στο SQLite, η δήλωση UPDATE μπορεί να χρησιμοποιηθεί για την τροποποίηση των υπαρχουσών εγγραφών σε έναν πίνακα.Ο όρος WHERE του SQLite μπορεί να χρησιμοποιηθεί για να καθορίσει ακριβώς ποιες σειρές πρέπει να ενημερωθούν. Μπορείτε εύκολα να ενημερώσετε όλες τις σειρές, μερικές σειρές ή καμία, ανάλογα με τις συνθήκες φιλτραρίσματος που εφαρμόζονται από τον όρο WHERE.

Σύνταξη

UPDATE table_name SET στήλη1 = τιμή1, στήλη2 = τιμή2 ...., στήληN = τιμήΝ ΠΟΥ [συνθήκη]

Παράδειγμα

ΕΝΗΜΕΡΩΣΗ ΤΟΥ StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2'

Παραγωγή

ΕΠΙΛΟΓΗ * ΑΠΟ StudentInfo ID ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934 ******* 2 SAM 22 Texas 4 976 ******* 3 John 23 Νορβηγία 1 923 ******* 4 Μίτ 22 Χιούστον 3 934 *******
  • SQLite Διαγραφή ερωτήματος

Στο SQLite, η δήλωση DELETE μπορεί να χρησιμοποιηθεί για τη διαγραφή της εγγραφής από τον πίνακα. Μπορείτε εύκολα να διαγράψετε όλες τις σειρές, μερικές σειρές ή καμία, ανάλογα με τις συνθήκες φιλτραρίσματος που εφαρμόζονται από τον όρο WHERE.

Παράδειγμα

ΔΙΑΓΡΑΦΗ ΑΠΟ DepartmentInfo WHERE DeptName = 'Science'

Παραγωγή

apache σπινθήρα σε σύγκριση με hadoop mapreduce
ΕΠΙΛΕΞΤΕ * ΑΠΟ ΤμήμαInfo DeptID DeptName ---------- ----------- 1 Μαθηματικά 2 Ψυχολογία 3 Αθλήματα 4 Μουσική

Εάν προσπαθήσετε να διαγράψετε μια εγγραφή που αναφέρεται από ξένο κλειδί, θα εμφανιστεί ένα σφάλμα. Θα πρέπει πρώτα να διαγράψετε τις εγγραφές ξένου κλειδιού, προτού διαγράψετε την κύρια εγγραφή κλειδιού. Ας προσπαθήσουμε να διαγράψουμε το τμήμα επιστήμης.

Παράδειγμα

ΔΙΑΓΡΑΦΗ ΑΠΟ DepartmentInfo WHERE DeptName = Σφάλμα «Μουσικής»: Ο περιορισμός του ΕΞΩΤΕΡΙΚΟΥ ΚΛΕΙΔΙΟΥ απέτυχε

Επομένως, πρέπει να διαγράψουμε τις εγγραφές ξένου κλειδιού πριν διαγράψουμε το πρωτεύον κλειδί.

ΔΙΑΓΡΑΦΗ ΑΠΟ StudentInfo WHERE DEPARTMENTID = 4 sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music' sqlite> SELECT * FROM DepartmentInfo DeptID DeptName ---------- ----------- 1 Μαθηματικά 2 Ψυχολογία 3 Αθλητισμός ΕΠΙΛΕΞΤΕ * ΑΠΟ ΤΟ StudentInfo ID ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ---------- ---------- ---------- ------- --- ------------ ---------- 1 Dean 20 California 2 934 ******* 3 John 23 Norway 1 923 ****** * 4 Mitch 22 Χιούστον 3 934 *******

Τώρα ξέρετε πώς να επεξεργαστείτε τις εγγραφές στον πίνακα βάσης δεδομένων SQLite. Προχωρώντας περαιτέρω σε αυτό το ιστολόγιο φροντιστηρίων SQLite, ας συζητήσουμε διαφορετικές ρήτρες και συνθήκες που συναντάτε πιο συχνά στο SQLite.

Ρήτρες / προϋποθέσεις SQLite

Πριν ξεκινήσετε με ρήτρες, ακολουθεί η πλήρης σύνταξη της δήλωσης SELECT στο SQLite.

Σύνταξη

ΕΠΙΛΟΓΗ [ΟΛΕΣ | DISTINCT] αποτέλεσμα [ΑΠΟ πίνακας-λίστα] [WHERE expr] [GROUP BY expr-list] [HAVING expr] [compound-op select] * [ORDER BY sort-expr-list] [LIMIT integer [(OFFSET |,) ακέραιος ]]

Σημείωση: Έχω ενημερώσει τους πίνακες StudentInfo και DepartmentInfo όπως φαίνεται παρακάτω.

// Αναγνωριστικό πίνακα μαθητή ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ΤΗΛΕΦΩΝΟ ---------- ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2 934 ******* 3 John 23 Norway 1 923 ******* 4 Mitch 22 Χιούστον 3 934 ******* 2 SAM 22 Τέξας 4 976 ******* 5 Johny 23 Νορβηγία 2 945 ******* 6 Robin 23 Νορβηγία 2 Άγνωστο // Λεπτομέρειες τμήματος DeptID DeptName - --------- ----------- 1 Μαθηματικά 2 Ψυχολογία 3 Αθλήματα 4 Μουσική 5 Επιστήμη
  • SQLite ΠΟΥ

Στο SQLite, ο όρος WHERE χρησιμοποιείται για την επιβολή περιορισμών στη δήλωση SELECT, ορίζοντας μία ή περισσότερες προϋποθέσεις για τη λήψη των απαιτούμενων δεδομένων από πίνακες στη βάση δεδομένων.Εάν η συνθήκη καθορίζεται ικανοποιημένη ή αληθής, επιστρέφει συγκεκριμένη τιμή από τον πίνακα. Όπως είδατε πριν, ο όρος WHERE δεν χρησιμοποιείται μόνο στη δήλωση SELECT, αλλά χρησιμοποιείται επίσης στην ενημέρωση, στη δήλωση DELETE κ.λπ.

Παράδειγμα

ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ ΑΠΟ StudentInfo ΠΟΥ ΗΛΙΚΙΑ = 23 ΟΝΟΜΑ ---------- John Johny Robin

Στο SQLite, υπάρχουν διάφοροι σχετικοί τελεστές που μπορούν να χρησιμοποιηθούν με τον όρο WHERE.

  • SQLite GROUP BY

Στο SQLite, ο όρος GROUP BY χρησιμοποιείται για τη συγκέντρωση δεδομένων σε μία μόνο γραμμή όπου επαναλαμβάνεται η τιμή μιας ή περισσότερων καθορισμένων στηλών. Αυτή η ρήτρα χρησιμοποιείται με τον όρο WHERE στη δήλωση SELECT και προηγείται του όρου ORDER BY.

Σύνταξη

ΕΠΙΛΕΞΤΕ ΑΠΟ ΑΠΟ [πίνακας-λίστα] ΟΜΑΔΑ ΑΠΟ [expr-list]
ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ ΑΠΟ ΟΜΙΛΟΣ StudentInfo ΟΝΟΜΑ ΟΝΟΜΑ ΔΙΕΥΘΥΝΣΗ ---------- ---------- Dean California John Norway Johny Norway Mitch Houston Robin Norway SAM Texas

Παρατηρήστε ότι η διαδικασία ομαδοποίησης έχει δύο βήματα. Κατ 'αρχάς, η έκφραση GROUP BY χρησιμοποιείται για την τακτοποίηση σειρών πίνακα σε διαφορετικές ομάδες. Μόλις καθοριστούν οι ομάδες, η πρόταση SELECT καθορίζει τον τρόπο με τον οποίο αυτές οι ομάδες ισοπεδώνονται σε μία μόνο σειρά.

  • SQLite ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ

Γενικά, οι πίνακες SQLite αποθηκεύουν δεδομένα σε μη καθορισμένη σειρά και θα επιστρέφουν εγγραφές με την ίδια απροσδιόριστη σειρά κατά την ανάκτηση δεδομένων χρησιμοποιώντας SQLite select statement. Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε τον όρο ORDER BY που χρησιμοποιείται για να ταξινομήσετε τις εγγραφές στηλών είτε σε αύξουσα είτε φθίνουσα σειρά. Στο παρακάτω παράδειγμα, έχω ομαδοποιήσει και ταξινομήσει 9 σε φθίνουσα σειρά) τα δεδομένα με βάση τη διεύθυνση.

Σύνταξη

ΕΠΙΛΟΓΗ εκφράσεων ΑΠΟ πίνακες-λίστα [ΠΕΡΙΣΣΟΤΕΡΑ συνθήκες] ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ στήλη1, στήλη2, ... [ASC | DESC]

Παράδειγμα

ΕΠΙΛΕΞΤΕ ΔΙΕΥΘΥΝΣΗ, ΑΡΙΘΜΟΣ (ΔΙΕΥΘΥΝΣΗ) ΑΠΟ ΟΜΑΔΑ StudentInfo ΑΠΟ ΔΙΕΥΘΥΝΣΗ ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ ΔΙΕΥΘΥΝΣΗ ΔΙΕΥΘΥΝΣΗ ΔΙΕΥΘΥΝΣΗ ΑΠΟΔΟΣΗ (ΔΙΕΥΘΥΝΣΗ) ---------- -------------- Texas 1 Norway 3 Houston 1 Καλιφόρνια 1
  • Η SQLite ΕΧΕΙ

Στο SQLite, το ΕΧΟΥΝ η ρήτρα είναι πανομοιότυπη με ΠΟΥ ρήτρα. Η ρήτρα HAVING είναι μια επιπλέον συνθήκη που εφαρμόζεται αφού πραγματοποιηθεί η συγκέντρωση μαζί με την ομάδα με την επιλογή select. Γενικά στο SQLite, ΠΟΥ Ο όρος χρησιμοποιείται για να εφαρμόσει μια συνθήκη σε μεμονωμένα στοιχεία σε έναν πίνακα καιο ΕΧΟΥΝ Ο όρος χρησιμοποιείται για την προσθήκη συνθηκών φίλτρου βάσει των ομάδων που δημιουργούνται από τον όρο Group By.

Παράδειγμα

ΕΠΙΛΟΓΗ ΔΙΕΥΘΥΝΣΗΣ, COUNT (ΔΙΕΥΘΥΝΣΗ) ΑΠΟ ΟΜΑΔΑ StudentInfo ΑΠΟ ΔΙΕΥΘΥΝΣΗ ΕΧΟΥΝ COUNT (*)> 1 COUNT ADDRESS (ΔΙΕΥΘΥΝΣΗ) ---------- -------------- Νορβηγία 3
  • Όρος SQLite Limit

Στο SQLite, ο όρος LIMIT χρησιμοποιείται για να ορίσει ένα όριο στις εγγραφές που επιστρέφονται από τη δήλωση select. Ας δούμε ένα παράδειγμα για να κατανοήσουμε την έννοια.

Σύνταξη

ΕΠΙΛΕΞΤΕ εκφράσεις ΑΠΟ πίνακες-λίστα [ΠΕΡΙΣΣΟΤΕΡΑ συνθήκες] LIMIT number_rows OFFSET offset_value

Παράδειγμα

ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ, ΔΙΕΥΘΥΝΣΗ ΑΠΟ StudentInfo LIMIT 4 OFFSET 2 NAME ADDRESS ---------- ---------- Mitch Houston SAM Texas Johny Norway Robin Norway

ΑΝΤΙΣΤΑΘΜΙΖΕΤΑΙείναι προαιρετικό και καθορίζει πόσες σειρές παραλείπονται στην αρχή του συνόλου αποτελεσμάτων με βάση offset_value .

  • SQLite AND & OR

Στο SQLite, οι τελεστές AND & OR χρησιμοποιούνται για την εκτέλεση πολλαπλών συνθηκών για την επιλογή, εισαγωγή, ενημέρωση και διαγραφή δηλώσεων με βάση τις απαιτήσεις μας. Ο τελεστής SQLite AND θα επιστρέψει σειρές ή εγγραφές που πληρούν τις προϋποθέσεις που ορίζονται με τη χρήση του τελεστή AND.

Παράδειγμα 1

ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ ΑΠΟ StudentInfo ΠΟΥ ΗΛΙΚΙΑ = 22 ΚΑΙ ΔΙΕΥΘΥΝΣΗ = ΟΝΟΜΑ «Τέξας» ---------- SAM

Η συνθήκη Ή χρησιμοποιείται για τον καθορισμό πολλαπλών συνθηκών στις δηλώσεις SQLite και θα επιστρέψει σειρές ή εγγραφές από τη δήλωση εάν ικανοποιείται κάποια από τις προϋποθέσεις.

Παράδειγμα 2

ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ ΑΠΟ StudentInfo ΠΟΥ (ΗΛΙΚΙΑ = 22 ΚΑΙ ΔΙΕΥΘΥΝΣΗ = «Νορβηγία») Ή ΔΙΕΥΘΥΝΣΗ = ΟΝΟΜΑ «Νορβηγία» ---------- John Johny Robin
  • Χειριστής SQLite GLOB

Στο SQLite, ο τελεστής GLOB χρησιμοποιείται για να ελέγξει εάν η δεδομένη τιμή συμβολοσειράς ταιριάζει με ένα συγκεκριμένο μοτίβο ή όχι. Σε περίπτωση που η τιμή συμβολοσειράς ταιριάζει με την τιμή μοτίβου, τότε θα επιστρέψει αληθής και είναι παρόμοιο με τον τελεστή LIKE. Επίσης, το GLOB είναι ευαίσθητη υπόθεση.

Σύνταξη

SELECT * FROM table_name WHERE column_name GLOB 'αναζήτηση-έκφραση'

Παράδειγμα

ΕΠΙΛΕΞΤΕ * ΑΠΟ StudentInfo ΠΟΥ ΟΝΟΜΑ GLOB 'Joh *' ID ΟΝΟΜΑ ΗΛΙΚΙΑ ΔΙΕΥΘΥΝΣΗ ΤΜΗΜΑ ΤΗΛΕΦΩΝΟ ---------- ---------- ---------- --- ------- ------------ ---------- 3 John 23 Norway 1 923 ******* 5 Johny 23 Norway 2 945 ** *****
  • SQLite Distinct

Στο SQLite, η λέξη-κλειδί DISTINCT θα σαρώσει το σύνολο αποτελεσμάτων της δήλωσης SELECT και θα εξαλείψει τυχόν διπλές σειρές. Επίσης, οι τιμές NULL θεωρούνται διπλές, οπότε αν χρησιμοποιήσουμε τον όρο DISTINCT με μια στήλη που έχει τιμές NULL τότε θα διατηρήσει μόνο μια σειρά από τιμή NULL. Όταν εφαρμόζετε το DISTINCT για πολλές στήλες, τότε η δήλωση επιστρέφει κάθε μοναδικό συνδυασμό coulnm1 και στήλη2.

Παράδειγμα

ΕΠΙΛΕΞΤΕ ΑΠΟΣΤΟΛΗ ΗΛΙΚΙΑ ΑΠΟ StudentInfo ΗΛΙΚΙΑ ---------- 20 23 22
  • Χειριστής SQLite IN

Στο SQLite, ο τελεστής IN χρησιμοποιείται για να προσδιορίσει εάν η δεδομένη τιμή αντιστοιχεί σε μια λίστα δεδομένων τιμών ή το αποτέλεσμα που επιστρέφεται από το υποερώτημα.

Παράδειγμα

ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ ΑΠΟ StudentInfo ΠΟΥ ΔΙΕΥΘΥΝΣΤΕ ΣΤΟ («Τέξας», «Χιούστον») ΟΝΟΜΑ ---------- Mitch SAM
  • SQLite UNION & UNION ALL

Στο SQLite, ο τελεστής UNION χρησιμοποιείται για να συνδυάσει τα σύνολα αποτελεσμάτων του 2 ή περισσότερες δηλώσεις SELECT και αφαιρεί διπλές σειρές μεταξύ των διαφόρων SELECT δηλώσεων. Να θυμάστε ότι οι δηλώσεις SELECT που χρησιμοποιήσαμε με τον τελεστή UNION πρέπει να έχουν τον ίδιο αριθμό πεδίων στα σύνολα αποτελεσμάτων με παρόμοιους τύπους δεδομένων.

Σύνταξη

SELECT express1, express2, ... express_n FROM tables [WHERE conditions] UNION / UNION ALL SELECT express1, express2, ... express_n FROM πίνακες [ΠΟΥ υπάρχουν συνθήκες]

Παράδειγμα

SELECT DEPARTMENTID FROM StudentInfo UNION SELECT DeptId FROM DepartmentInfo ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ ΤΟ DEPARTMENTID ASC DEPARTMENTID ------------ 1 2 3 4 5

Ο τελεστής UNION ALL χρησιμοποιείται για να συνδυάσει τα σύνολα αποτελεσμάτων 2 ή περισσότερων δηλώσεων SELECT και θα επιστρέψει όλες τις σειρές συμπεριλαμβανομένων των αντιγράφων.

Παράδειγμα

SELECT DEPARTMENTID FROM StudentInfo UNION ALL SELECT DeptId FROM DepartmentInfo ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ DEPARTMENTID ASC DEPARTMENTID ------------ 1 1 2 2 2 2 3 3 4 4 5

Με αυτό, έχουμε καλύψει τις πιο βασικές εντολές που ίσως χρειαστεί να χρησιμοποιήσετε όταν εργάζεστε με το SQLite. Προχωρώντας με αυτό το σεμινάριο SQLite, ας δούμε τη δήλωση συμμετοχής στο SQLite.

Συμμετέχει στο SQLite

Στο SQLite, οι Joins είναιχρησιμοποιείται για να συνδυάζει εγγραφές από δύο ή περισσότερους πίνακες σε μια βάση δεδομένων και να λαμβάνει αρχεία με βάση τις απαιτήσεις μας. ρεδιαφορετικός τύπος JOINS που διατίθεται στο SQLite είναι:

  • Εσωτερική σύνδεση -Το INNER JOIN χρησιμοποιείται για να συνδυάζει και να επιστρέφει μόνο αντίστοιχες εγγραφές από πίνακες πολλαπλών βάσει των συνθηκών που ορίζονται στις δηλώσεις SQLite.
  • Εξωτερική συμμετοχή -Το SQLite Outer Join θα επιλέξει αντίστοιχες σειρές από πολλούς πίνακες ίδιους με αυτούς Εσωτερική σύνδεση και μερικές άλλες σειρές εκτός της σχέσης.Με απλά λόγια, μπορούμε να πούμε SQLiteΕΞΩ ΕΓΓΡΑΦΗείναι μια προσθήκη τουΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ . Σε γενικές γραμμές, έχουμε τρεις τύπους εξωτερικών συνδέσεων στο πρότυπο SQL που είναι ΑΡΙΣΤΕΡΑ, ΔΕΞΙΑ και ΠΛΗΡΕΣ Εξωτερικές συνδέσεις, αλλά το SQLite υποστηρίζει μόνο ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ.
  • Συμμετοχή -Χρησιμοποιείται για να πάρει το καρτεσιανό προϊόν των σειρώναντιστοιχίζοντας κάθε σειρά του πρώτου πίνακα με κάθε σειρά του δεύτερου πίνακα.
  • Εγγραφή - Αυτόχρησιμοποιείται για να ενώσει τον ίδιο πίνακα με τον εαυτό του. Για να χρησιμοποιήσετε το Self Join πρέπει να δημιουργήσουμε διαφορετικά ονόματα ψευδώνυμων για τον ίδιο πίνακα για να εκτελέσουμε λειτουργίες βάσει των απαιτήσεων μας.

Η ιδέα είναι παρόμοια με εκείνη άλλων σχεσιακών συστημάτων βάσεων δεδομένων όπως η SQL. Έτσι, για να μάθετε περισσότερα μπορείτε να ανατρέξετε σε αυτό το άρθρο .

Με αυτό, έχουμε καλύψει τις βασικές εντολές SQLite. Οι προηγμένες έννοιες δεν καλύπτονται εδώ. Επομένως, μείνετε συντονισμένοι για ένα άλλο άρθρο σχετικά με τις προηγμένες έννοιες του SQLite. Ακόμα και με όλα τα καλά χαρακτηριστικά που προσφέρει το SQLite, έχει και ορισμένα μειονεκτήματα.

Εκμάθηση SQLite: Μειονεκτήματα του SQLite

Παρακάτω αναφέρονται τα μειονεκτήματα της χρήσης του SQLite:

  • Δεν λειτουργεί καλά στην αρχιτεκτονική πελάτη / διακομιστή.
  • Ένα μέγεθος βάσης δεδομένων SQLite περιορίζεται στα 2 GB στις περισσότερες περιπτώσεις.
  • Το SQLite δεν έχει εφαρμόσει RIGHT OUTER JOIN και FULL OUTER JOIN. Με το SQLite, μπορούμε να εφαρμόσουμε μόνο το LEFT OUTER JOIN.
  • Οι προβολές στο SQLite είναι μόνο για ανάγνωση. Δεν μπορούμε να χρησιμοποιήσουμε δηλώσεις DML (Εισαγωγή, Ενημέρωση και Διαγραφή) με προβολές.
  • Δεν μπορούμε να χρησιμοποιήσουμε δηλώσεις GRANT και REVOKE με το SQLite.

Με αυτό, καταλήγουμε σε αυτό το SQLite Tutorial.

Εάν θέλετε να μάθετε περισσότερα για MySQL και γνωρίστε αυτήν τη σχεσιακή βάση δεδομένων ανοιχτού κώδικα και, στη συνέχεια, ρίξτε μια ματιά στη δική μας που έρχεται με ζωντανή εκπαίδευση με καθοδήγηση εκπαιδευτή και πραγματική εμπειρία έργου. Αυτή η εκπαίδευση θα σας βοηθήσει να κατανοήσετε τη MySQL σε βάθος και να σας βοηθήσει να επιτύχετε την εξουσία πάνω στο θέμα.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του SQLite Tutorial και θα επικοινωνήσω μαζί σας.