sql >> Database >  >> RDS >> SQLite

SQLite-zelfstudie:alles wat u moet weten

Als je met relationele databasesystemen hebt gewerkt, heb je waarschijnlijk gehoord van populaire databasesystemen zoals MySQL, SQL Server of PostgreSQL. SQLite is een ander uiterst nuttig RDBMS dat heel eenvoudig in te stellen en te bedienen is. Het heeft ook veel verschillende functies ten opzichte van andere relationele databases. Deze SQLite-zelfstudie leert basisconcepten die u moet kennen met behulp van uitgebreide praktische oefeningen.

De onderwerpen die in dit artikel worden besproken zijn:

  • Wat is SQLite?
    • Kenmerken van SQLite
  • SQlite installeren op Windows
  • SQLite-opdrachten
    • Database-opdrachten
    • Tabelopdrachten
    • CRUD-bewerkingen
    • SQLite-clausules/voorwaarden
    • Doe mee aan SQLite
  • Nadelen van SQLite

SQLite-zelfstudie:wat is SQLite?

Hier is de industriestandaarddefinitie van SQLite:

SQLite is een open-source, nulconfiguratie, op zichzelf staande, stand-alone, relationele database-engine voor transacties die is ontworpen om te worden ingebed in een toepassing.

U kunt overwegen SQLite als een “aansteker ” versie van een ander complex RDBMS (Oracle, SQL, etc.), waarbij de database-engine is geconfigureerd voor onafhankelijke verwerking (in-process bibliotheek) d.w.z. een serverloze, op zichzelf staande, nulconfiguratie en transactie- . Het staat bekend om zijn draagbaarheid, betrouwbaarheid en sterke prestaties, zelfs in omgevingen met weinig geheugen. SQLite is ook een populaire keuze als ingebedde database voor lokale/clientopslag in eindprogramma's of toepassingen, in tegenstelling tot andere RDBMS, waar de client-server DB-engine is geconfigureerd.

Kenmerken van SQLite

SQLite biedt veel verschillende functies, zoals:

  • Serverloos: De meeste SQL-databases zijn geïmplementeerd als een apart serverproces, maar SQLite heeft geen apart serverproces. Het is een serverloze database-engine. Het leest en schrijft rechtstreeks naar gewone schijfbestanden.
  • Nulconfiguratie: Het vereist geen configuratie om het te laten werken. Dit betekent dat er geen serverproces hoeft te worden gestart, gestopt of geconfigureerd zoals in een client-/serversysteem.
  • Manifest typen: SQLite maakt gebruik van manifest-typering, waarmee elke hoeveelheid van elk gegevenstype in elke kolom kan worden opgeslagen, ongeacht het gedeclareerde gegevenstype van de kolom. Merk op dat er bepaalde uitzonderingen zijn op deze regel.
  • Lichtgewicht: Zoals de naam al aangeeft, is de SQLite-bibliotheek erg licht van gewicht. Het punt is dat, hoewel de ruimte die het gebruikt varieert afhankelijk van het systeem waarop het is geïnstalleerd, het minder dan 600KiB aan ruimte in beslag kan nemen.
  • Draagbaar: In tegenstelling tot andere DBMS wordt een volledige SQLite-database in één enkel bestand opgeslagen. Dit bestand kan heel gemakkelijk worden gedeeld via verwisselbare media of een protocol voor bestandsoverdracht.
  • Diverse keuze: Veel programmeertalen bieden bindingen voor SQLite, waaronder C, C++, C#, Java, JavaScript, Ruby, Python en nog veel meer.
  • Gratis: SQLite is gratis en open source. Om met SQLite te werken is geen commerciële licentie vereist.

Zoals hierboven vermeld staat SQLite bekend om zijn nulconfiguratie, wat betekent dat er geen complexe installatie of administratie nodig is. Laten we in het volgende deel van deze SQLite-zelfstudie kijken hoe u SQLite op uw systeem installeert.

SQLite-zelfstudie:SQLite installeren op Windows

De te volgen stappen zijn:

Stap1: Ga naar de officiële SQLite-website en klik op de geschikte link om voorgecompileerde binaire bestanden te downloaden.

Stap 2: Download het SQLite opdrachtregel zip-bestand (hier:sqlite-tools-win32-x86-3270200.zip) en vouw deze bestanden uit in een map naar keuze.

Deze SQLite-opdrachtregeltool bevat de volgende SQLite-producten

  • SQLite-kern :De SQLite-kern bevat de eigenlijke database-engine en openbare API.
  • SQLite3 opdrachtregelprogramma :De sqlite3-toepassing is een opdrachtregelprogramma dat bovenop de SQLite-kern is gebouwd.
  • Tcl-extensie :Deze bibliotheek is in wezen een kopie van de SQLite-kern met de Tcl-bindingen eraan vastgemaakt.
  • SQLite-analysetool :De SQLite-analysetool wordt gebruikt om databasebestanden te analyseren.

Stap3: Daarna is het starten van de SQLite-opdrachtregel net zo eenvoudig als klikken op de sqlite3-toepassing, waardoor de opdrachtregel verschijnt.

Als je verder wilt testen, typ je gewoon .help commando van sqlite> prompt om alle beschikbare commando's te zien in sqlite3 zoals hieronder getoond.

Opmerking: Standaard gebruikt een SQLite-sessie de in-memory database, daarom zijn alle wijzigingen verdwenen wanneer de sessie eindigt.

Simpel genoeg toch? Laten we dan beginnen met SQLite-opdrachten.

SQLite-zelfstudie:SQLite-opdrachten

Dit gedeelte van de SQLite-zelfstudie presenteert basis SQL-instructies die u met SQLite kunt gebruiken.

Opmerking: SQLite-opdrachten eindigen met een puntkomma (; ). Het vertelt SQLite dat uw opdracht compleet is en moet worden uitgevoerd. U kunt uw opdracht ook over meerdere regels spreiden en de puntkomma op de laatste regel gebruiken.

Database-opdrachten

Deze sectie bestaat uit die commando's, waarmee je met je database om kunt gaan. De commando's zijn:

  • SQLite Database maken

SQLite gebruikt de CREATE DATABASE-instructie niet zoals in andere relationele databasebeheersystemen, zoals MySQL, SQL Server, enz. Om een ​​nieuwe database in SQLite aan te maken, voert u gewoon sqlite3 in gevolgd door de naam van het bestand dat u voor de database wilt gebruiken. De volgende code maakt een databasebestand aan met de naam StudentDetails.db:

Voorbeeld

sqlite3 StudentDetails.db;

sqlite> .databases 
main: D:sqliteStudentDetails.db;
  • SQLite Attach Database

Als je meerdere databases hebt, kun je er maar één tegelijk gebruiken. In SQLite wordt de instructie ATTACH DATABASE gebruikt om een ​​bepaalde database voor de huidige verbinding toe te voegen. Na deze opdracht worden alle SQLite-instructies uitgevoerd onder de bijgevoegde database.

Voorbeeld

 sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department';

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
  • SQLite Detach Database

In SQLite wordt de DETACH DATABASE-instructie gebruikt om de alias-naam database los te koppelen van een databaseverbinding die eerder was gekoppeld met behulp van de ATTACH-instructie. Als hetzelfde databasebestand met meerdere aliassen is bijgevoegd, zal deze opdracht alleen de opgegeven naam ontkoppelen en blijft de rest van de bijlage bestaan. De databases in de in-memory of tijdelijke database worden volledig vernietigd en de inhoud gaat verloren.

Voorbeeld

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
Student: D:sqliteStudentDetails.db
DeptInformation: D:sqliteDepartmentDetails.db

sqlite> DETACH DATABASE 'Department';

sqlite> .databases
main: D:sqliteStudentDetails.db;
Student: D:sqliteStudentDetails.db
DeptInformation: D:sqliteDepartmentDetails.db

Tabelopdrachten

Hier zullen we leren hoe om te gaan met tabellen bij het gebruik van SQLite.

  • SQL-tabel maken

In SQLite wordt de instructie CREATE TABLE gebruikt om een ​​nieuwe tabel te maken. Tijdens het maken van de tabel moet u de tabel een naam geven en de kolom en gegevenstypen van elke kolom definiëren.

Syntaxis:

CREATE TABLE table_name(
         Column1 column_type [constraints]
         Column2 column_type [constraints]
         [.....]
          );

Voorbeeld


CREATE TABLE 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(DEPARTMENTID) REFERENCES DepartmentInfo(DeptID)
); 

U kunt controleren of de tabel is gemaakt of niet door de .tables te gebruiken commando zoals hieronder getoond. Merk op dat ik al een tabel heb gemaakt met de naam DepartmentInfo waarbij DeptID de primaire sleutel is. De tabel Afdelingen heeft een beperking voor een externe sleutel voor de tabel Studenten.

 

sqlite> .tables
StudentInfo Contacts Emp_Master

  • SQLite-droptabel

In SQLite kunt u met de DROP TABLE-instructie een tabel uit de SQLite-database verwijderen of verwijderen. Zodra de tabel is verwijderd, worden alle gegevens die deze bevat permanent uit de database verwijderd. Alle bijbehorende indexen en triggers worden ook verwijderd. Als er een externe-sleutelbeperking is ingeschakeld voor die tabel, wordt die voor elke rij in de tabel op equivalente wijze verwijderd en worden alle triggers die aan de tabel zijn gekoppeld ook verwijderd.

Syntaxis

DROP TABLE [ IF EXISTS ] table_name;

Voorbeeld

 DROP TABLE Department;
Error: no such table: Department

DROP TABLE Company;
sqlite> .tables
StudentInfo

Opmerking: IF EXISTS, is een optionele clausule. Indien gespecificeerd, zal de DROP TABLE-instructie geen foutmelding geven als een van de tabellen niet bestaat.

Er is ook een SQLite Alter Table-instructie , die we in de volgende paragrafen van dit artikel zullen begrijpen. Nu we een tabel hebben gemaakt, gaan we kijken hoe u de gegevens kunt invoegen, verwijderen en wijzigen.

SQLite-zelfstudie:CRUD-bewerkingen

  • SQLite-invoegquery

Na het aanmaken van de tabel kan het SQLite Insert Into commando gebruikt worden om nieuwe rijen in de gespecificeerde tabel te creëren. Er zijn twee betekenisvolle vormen van de SQLite insert-instructie. Het eerste formulier gebruikt een VALUES-clausule om een ​​lijst met in te voegen waarden te specificeren.

Syntaxis


INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

Voorbeeld

INSERT INTO StudentInfo ( ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE)
VALUES (1,'Dean', 20, 'California', 2, '934*******');

Uitvoer

SELECT *from StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ----------  ----------
1           Dean        20          California  2  934*******

Hier wordt een enkele nieuwe rij gemaakt en wordt elke waarde in de respectievelijke kolom vastgelegd. Merk op dat beide lijsten de dezelfde . moeten hebben aantal stuks. Hier, de lijst van de kolommen is optioneel. We kunnen ook gegevens invoegen in de tabel zonder de lijst met kolommen op te geven .

Voorbeeld

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

Uitvoer

 SELECT *from StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ----------  ----------
1           Dean        20          California  2  934*******
2           SAM         22          Texas        2  976*******

SQLite biedt ook een functie om meerdere rijen in te voegen in een enkele INSERT-instructie. De syntaxis is zoals hieronder weergegeven.

Voorbeeld

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

Uitvoer

 Select *from StudentInfo;
1|Dean|20|California|2|934*******
2|SAM|22|Texas|2|976*******
3|John|23|Norway|1|923*******
4|Mitch|22|Houston|3|934*******

Zoals je kunt zien, is het formaat van de uitvoer niet helemaal gelijk aan het vorige. Dus, hoe verander je het uitvoerformaat in SQLite? Laten we de uitvoer formatteren zodat onze resultaten wat gemakkelijker te lezen zijn.

  • Opmaak

Je kunt .mode gebruiken om de uitvoermodus te wijzigen. Het bovenstaande voorbeeld gebruikt .mode lijst, die de resultaten als een lijst weergeeft. U kunt ook .headers . gebruiken statement om aan te geven of kolomkoppen wel of niet moeten worden weergegeven. Nadat u de wijzigingen heeft aangebracht, kunt u de instelling bekijken met .show commando.

Voorbeeld

 sqlite>.mode 'column'
sqlite> .headers on
sqlite> .show
echo: off
eqp: off
explain: auto
headers: on
mode: column
nullvalue: ""
output: stdout
colseparator: "|"
rowseparator: "n"
stats: off
width:
filename: StudentDetails.db

Uitvoer

 SELECT *FROM StudentInfo;

ID NAME AGE ADDRESS DEPARTMENT PHONE
---------- ---------- ---------- ---------- ---------- ----------
1 Dean 20 California 2 934*******
2 SAM 22 Texas 2 976*******
3 John 23 Norway 1 923*******
4 Mitch 22 Houston 3 934*******
  • SQLite Select Query

In SQLite wordt de Select-instructie gebruikt om gegevens uit een tabel op te halen, die gegevens in de vorm van een resultatentabel retourneert. Deze resultaattabellen worden ook resultaat sets genoemd. Met behulp van SQLite select-statement kunnen we eenvoudige berekeningen of meerdere expressies uitvoeren op basis van onze vereisten. We hebben al eerder een SELECT-instructie gebruikt toen we gegevens invoegden.

Syntaxis

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
  • DISTINCT – Wanneer we een onderscheidend trefwoord gebruiken in een select-statement, worden alleen afzonderlijke rijen met gegevens geretourneerd.
  • ALLE – Als we het trefwoord ALL in een select-statement gebruiken, worden alle rijen met gegevens geretourneerd, zelfs als deze zijn gedupliceerd.
  • VAN tabellijst – Het is een lijst met tabellen waaruit u gegevens wilt halen.
  • WHERE-uitdrukking – De WHERE-expressie wordt gebruikt om onze aangepaste voorwaarden te definiëren om de vereiste gegevens uit tabellen te halen.

Voorbeeld1

 SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;

Uitvoer

ID NAME
---------- ----------
1 Dean

Voorbeeld2

Select NAME FROM StudentInfo WHERE DEPARTMENTID
= (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology');

Uitvoer

//fetches people from department whose id is 2

NAME
----------
Dean
SAM
  • SQLite-updatequery

In SQLite kan de UPDATE-instructie worden gebruikt om de bestaande records in een tabel te wijzigen. De WHERE-clausule van SQLite kan worden gebruikt om precies aan te geven welke rijen moeten worden bijgewerkt. U kunt eenvoudig alle rijen, sommige of geen rijen bijwerken, afhankelijk van de filtervoorwaarden die door de WHERE-component worden toegepast.

Syntaxis

UPDATE table_name  
SET column1 = value1, column2 = value2...., columnN = valueN  
WHERE [condition];

Voorbeeld

UPDATE StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2';

Uitvoer

 SELECT *FROM StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
2           SAM         22          Texas       4             976*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******
  • SQLite-query verwijderen

In SQLite kan de DELETE-instructie worden gebruikt om het record uit de tabel te verwijderen. U kunt eenvoudig alle rijen, sommige of geen rijen verwijderen, afhankelijk van de filtervoorwaarden die door de WHERE-component worden toegepast.

Voorbeeld

 DELETE FROM DepartmentInfo WHERE DeptName = 'Science';

Uitvoer

 SELECT *FROM DepartmentInfo;
DeptID DeptName
---------- -----------
1 Mathematics
2 Psychology
3 Sports
4 Music

Als u een record probeert te verwijderen waarnaar wordt verwezen door een externe sleutel, krijgt u een foutmelding. U moet eerst de externe sleutelrecords verwijderen, voordat u de primaire sleutelrecord verwijdert. Laten we proberen afdelingswetenschap te verwijderen.

Voorbeeld

DELETE FROM DepartmentInfo WHERE DeptName = 'Music';
Error: FOREIGN KEY constraint failed

We moeten dus de externe-sleutelrecords verwijderen voordat we de primaire sleutel verwijderen.

DELETE FROM StudentInfo WHERE DEPARTMENTID = 4;

sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music';

sqlite> SELECT *FROM DepartmentInfo;
DeptID      DeptName
----------  -----------
1           Mathematics
2           Psychology
3           Sports

 SELECT *FROM StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******

Nu weet je hoe je de records in de SQLite Database-tabel moet bewerken. Verderop in deze SQLite-zelfstudieblog, laten we de verschillende clausules en voorwaarden bespreken die u het vaakst in SQLite tegenkomt.

SQLite-clausules/-voorwaarden

Voordat u aan de slag gaat met clausules, volgt hier de volledige syntaxis van de SELECT-instructie in SQLite.

Syntaxis

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
[GROUP BY expr-list]
[HAVING expr]
[compound-op select]*
[ORDER BY sort-expr-list]
[LIMIT integer [(OFFSET|,) integer]]

Opmerking:ik heb de tabellen StudentInfo en DepartmentInfo bijgewerkt zoals hieronder weergegeven.

//Student 
Table ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******
2           SAM         22          Texas       4             976*******
5           Johny       23          Norway      2             945*******
6           Robin       23          Norway      2             UNKNOWN

//Department Details
DeptID      DeptName
----------  -----------
1           Mathematics
2           Psychology
3           Sports
4           Music
5           Science
  • SQLite WAAR

In SQLite wordt de WHERE-component gebruikt om beperkingen op te leggen aan de SELECT-instructie door een of meer voorwaarden te definiëren om de vereiste gegevens uit tabellen in de database te halen. Als aan de opgegeven voorwaarde is voldaan of waar, wordt een specifieke waarde uit de tabel geretourneerd. Zoals je eerder hebt gezien, wordt de WHERE-clausule niet alleen gebruikt in de SELECT-instructie, maar ook in de UPDATE-, DELETE-instructie, enz.

Voorbeeld

SELECT NAME FROM StudentInfo WHERE AGE = 23;NAME
----------
John
Johny
Robin

In SQLite zijn er een aantal relationele operatoren die kunnen worden gebruikt met de WHERE-clausule.

  • SQLite GROUP BY

In SQLite wordt de GROUP BY-component gebruikt om gegevens samen te voegen tot een enkele rij waarin de waarde van een of meer gespecificeerde kolommen wordt herhaald. Deze clausule wordt gebruikt met de WHERE-clausule in de SELECT-instructie en gaat vooraf aan de ORDER BY-clausule.

Syntaxis

SELECT result
FROM [table-list]
GROUP BY [expr-list]
SELECT NAME, ADDRESS FROM StudentInfo GROUP BY NAME;

NAME ADDRESS
---------- ----------
Dean California
John Norway
Johny Norway
Mitch Houston
Robin Norway
SAM Texas

Merk op dat het groeperingsproces twee stappen heeft. Ten eerste wordt de GROUP BY-expressie gebruikt om tabelrijen in verschillende groepen te rangschikken. Zodra de groepen zijn gedefinieerd, definieert de SELECT-instructie hoe die groepen worden samengevoegd tot een enkele rij.

  • SQLite BESTELLEN DOOR

Over het algemeen slaan SQLite-tabellen gegevens op in niet-gespecificeerde volgorde en worden records in dezelfde niet-gespecificeerde volgorde geretourneerd terwijl gegevens worden opgehaald met behulp van SQLite select-instructie. In dergelijke gevallen kunt u de ORDER BY-component gebruiken om kolomrecords in oplopende of aflopende volgorde te sorteren. In het onderstaande voorbeeld heb ik de gegevens gegroepeerd en gerangschikt9in aflopende volgorde) op basis van het adres.

Syntaxis

SELECT expressions
FROM tables-list
[WHERE conditions]
ORDER BY column1, column2,... [ ASC | DESC ];

Voorbeeld

SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS ORDER BY ADDRESS DESC;
ADDRESS COUNT(ADDRESS)
---------- --------------
Texas 1
Norway 3
Houston 1
California 1
  • SQLite IS DOOR

In SQLite, de HAVING clausule is identiek aan WHERE clausule. De HAVING-clausule is een andere voorwaarde die wordt toegepast nadat de aggregatie samen met de group by in de select-instructie heeft plaatsgevonden. Over het algemeen in SQLite, WAAR clausule wordt gebruikt om een ​​voorwaarde toe te passen op individuele elementen in een tabel en de HAVING clausule wordt gebruikt om filtervoorwaarden toe te voegen op basis van de groepen die zijn gemaakt door de clausule Group By.

Voorbeeld

SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo 
GROUP BY ADDRESS 
HAVING COUNT(*)>1;

ADDRESS     COUNT(ADDRESS)
----------  --------------
Norway      3
  • SQLite-limietclausule

In SQLite wordt de LIMIT-component gebruikt om een ​​limiet in te stellen voor de records die worden geretourneerd door de select-instructie. Laten we een voorbeeld bekijken om het concept te begrijpen.

Syntaxis

SELECT expressions
FROM tables-list
[WHERE conditions]
LIMIT number_rows OFFSET offset_value;

Voorbeeld

SELECT NAME, ADDRESS FROM StudentInfo LIMIT 4 OFFSET 2;
NAME        ADDRESS
----------  ----------
Mitch       Houston
SAM         Texas
Johny       Norway
Robin       Norway 

OFFSET is optioneel en bepaalt hoeveel rijen moeten worden overgeslagen aan het begin van de resultatenset op basis van offset_value .

  • SQLite EN &OF

In SQLite worden de AND &OR-operatoren gebruikt om meerdere voorwaarden uit te voeren op select-, insert-, update- en delete-instructies op basis van onze vereisten. SQLite AND-operator retourneert rijen of records die voldoen aan de voorwaarden die zijn gedefinieerd met behulp van de AND-operator.

Voorbeeld1

SELECT NAME FROM StudentInfo WHERE AGE = 22 AND ADDRESS = 'Texas';
NAME
----------
SAM

OR-voorwaarde wordt gebruikt om meerdere voorwaarden in SQLite-instructies te definiëren en het retourneert rijen of records uit de instructie als aan een van de voorwaarden is voldaan.

Voorbeeld2

SELECT NAME FROM StudentInfo WHERE (AGE = 22 AND ADDRESS = 'Norway') OR ADDRESS = 'Norway';
NAME
----------
John
Johny
Robin
  • SQLite GLOB-operator

In SQLite wordt de GLOB-operator gebruikt om te controleren of de gegeven tekenreekswaarde overeenkomt met een specifiek patroon of niet. Als de tekenreekswaarde overeenkomt met de patroonwaarde, wordt deze true . geretourneerd en het is vergelijkbaar met de LIKE-operator. GLOB is ook hoofdlettergevoelig.

Syntaxis

SELECT * FROM table_name
WHERE column_name GLOB 'search-expression'

Voorbeeld

SELECT *FROM StudentInfo WHERE NAME GLOB 'Joh*';
ID NAME AGE ADDRESS DEPARTMENTID PHONE
---------- ---------- ---------- ---------- ------------ ----------
3 John 23 Norway 1 923*******
5 Johny 23 Norway 2 945*******
  • SQLite onderscheidend

In SQLite scant het DISTINCT-sleutelwoord de resultatenset van de SELECT-instructie en elimineert eventuele dubbele rijen. NULL-waarden worden ook als duplicaten beschouwd, dus als we de DISTINCT-clausule gebruiken met een kolom die NULL-waarden heeft, zal deze slechts één rij van een NULL-waarde behouden. Wanneer u DISTINCT voor meerdere kolommen toepast, retourneert de instructie elke unieke combinatie van coulnm1 en kolom2.

Voorbeeld

SELECT DISTINCT AGE FROM StudentInfo;
AGE
----------
20
23
22
  • SQLite IN-operator

In SQLite wordt de IN-operator gebruikt om te bepalen of de gegeven waarde overeenkomt met een lijst met gegeven waarden of met het resultaat dat door de subquery wordt geretourneerd.

Voorbeeld

SELECT NAME FROM StudentInfo WHERE ADDRESS IN ('Texas', 'Houston');
NAME
----------
Mitch
SAM
  • SQLite UNION &UNION ALL

In SQLite wordt de UNION-operator gebruikt om de resultatensets van 2 te combineren of meer SELECT-instructies en het verwijdert dubbele rijen tussen de verschillende SELECT-instructies. Onthoud dat de SELECT-instructies die we hebben gebruikt met de UNION-operator hetzelfde aantal velden in de resultaatsets met vergelijkbare gegevenstypen moeten hebben.

Syntaxis

SELECT expression1, expression2,... expression_n
FROM tables
[WHERE conditions]

UNION / UNION ALL

SELECT expression1, expression2,... expression_n
FROM tables
[WHERE conditions];

Voorbeeld

 SELECT DEPARTMENTID FROM StudentInfo 
UNION
SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC;

DEPARTMENTID
------------
1
2
3
4
5

De UNION ALL-operator wordt gebruikt om de resultaatsets van 2 of meer SELECT-instructies te combineren en retourneert alle rijen, inclusief de duplicaten.

Voorbeeld

SELECT DEPARTMENTID FROM StudentInfo UNION ALL SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC;
DEPARTMENTID
------------
1
1
2
2
2
2
3
3
4
4
5

Hiermee hebben we de meest elementaire commando's behandeld die u mogelijk moet gebruiken bij het werken met SQLite. Laten we met deze SQLite-zelfstudie eens kijken naar de join-instructie in SQLite.

Doe mee aan SQLite

In SQLite worden Joins gebruikt om records uit twee of meer tabellen in een database te combineren en records te krijgen op basis van onze vereisten. Verschillende soorten JOINS beschikbaar in SQLite zijn:

  • Inner Join – INNER JOIN wordt gebruikt om alleen overeenkomende records uit meerdere tabellen te combineren en terug te sturen op basis van de voorwaarden die zijn gedefinieerd in SQLite-instructies.
  • Outer Join – SQLite Outer Join zal overeenkomende rijen uit meerdere tabellen selecteren die hetzelfde zijn als Inner Join en enkele andere rijen buiten de relatie. In eenvoudige bewoordingen kunnen we zeggen dat SQLite OUTER JOIN een toevoeging is van INNER JOIN. Over het algemeen hebben we drie soorten Outer Joins in SQL-standaard, namelijk LEFT, RIGHT en FULL Outer Joins, maar SQLite ondersteunt alleen LEFT OUTER JOIN.
  • Kruis deelnemen - Het wordt gebruikt om het Cartesiaanse product van rijen te krijgen door elke rij van de eerste tabel te matchen met elke rij van de tweede tabel.
  • Zelf meedoen - Het wordt gebruikt om met zichzelf aan dezelfde tafel deel te nemen. Om Self Join te gebruiken, moeten we verschillende aliasnamen maken voor dezelfde tabel om bewerkingen uit te voeren op basis van onze vereisten.

Het concept is vergelijkbaar met dat van andere relationele databasesystemen zoals SQL. Voor meer informatie kunt u dit artikel over SQL Joins raadplegen.

Hiermee hebben we de basis SQLite-commando's behandeld. Geavanceerde concepten worden hier niet behandeld. Dus houd ons in de gaten voor een ander artikel over geavanceerde SQLite-concepten. Zelfs met alle goede eigenschappen die SQLite te bieden heeft, heeft het ook bepaalde nadelen.

SQLite-zelfstudie:nadelen van SQLite

Hieronder staan ​​de nadelen van het gebruik van SQLite:

  • Het werkt niet goed in de client/server-architectuur.
  • De grootte van een SQLite-database is in de meeste gevallen beperkt tot 2 GB.
  • SQLite heeft RIGHT OUTER JOIN en FULL OUTER JOIN niet geïmplementeerd. Met SQLite kunnen we alleen LEFT OUTER JOIN implementeren.
  • Views in SQLite zijn alleen-lezen. We kunnen geen DML-instructies (invoegen, bijwerken en verwijderen) gebruiken met weergaven.
  • We kunnen geen GRANT- en REVOKE-instructies gebruiken met SQLite.

Hiermee komen we tot een einde aan deze SQLite-zelfstudie.

Als je meer wilt weten over MySQL en deze open-source relationele database wilt leren kennen, bekijk dan onzeMySQL DBA-certificeringstraining die wordt geleverd met een door een instructeur geleide live training en real-life projectervaring. Deze training zal u helpen MySQL diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld het alsjeblieft in het opmerkingengedeelte van deze SQLite-zelfstudie en ik zal contact met je opnemen.


  1. waar moet ik installatiebronnen plaatsen (wxs-bestand, dmg-script, pictogram) en hoe maven antrun te configureren bij het implementeren van een zelfstandige app

  2. Aan de slag met SQLite Zoeken in volledige tekst

  3. hoe kan ik de top 100-records op de sql-server bijwerken?

  4. Voorbeelden van het converteren van 'date' naar 'smalldatetime' in SQL Server (T-SQL)