sql >> Database teknologi >  >> RDS >> SQLite

SQLite Tutorial:Alt hvad du behøver at vide

Hvis du har arbejdet med relationelle databasesystemer, er det sandsynligt, at du har hørt om populære databasesystemer som f.eks. MySQL, SQL Server eller PostgreSQL. SQLite er en anden ekstremt nyttig RDBMS, der er meget enkel at konfigurere og betjene. Det har også mange forskellige funktioner i forhold til andre relationelle databaser. Denne SQLite-tutorial lærer dig grundlæggende begreber, som du har brug for at kende ved hjælp af omfattende praktisk praksis.

Emnerne diskuteret i denne artikel er:

  • Hvad er SQLite?
    • Funktioner i SQLite
  • Installation af SQLite på Windows
  • SQLite-kommandoer
    • Databasekommandoer
    • Tabelkommandoer
    • CRUD-operationer
    • SQLite-klausuler/betingelser
    • Deltager i SQLite
  • Ulemper ved SQLite

SQLite Tutorial:Hvad er SQLite?

Her er industristandarddefinitionen af ​​SQLite:

SQLite er en open source, nul-konfiguration, selvstændig, selvstændig, transaktionsrelationsdatabasemotor designet til at blive indlejret i en applikation.

Du kan overveje SQLite som en "lighter ” version af andre komplekse RDBMS (Oracle, SQL osv.), hvor dens databasemotor er konfigureret til uafhængig behandling (i-proces bibliotek) dvs. en serverløs, selvstændig, nulkonfiguration og transaktionsmæssig . Den er kendt for sin bærbarhed, pålidelighed og stærke ydeevne selv i miljøer med lav hukommelse. SQLite er også et populært valg som en indlejret database til lokal/klientlagring i slutprogrammer eller applikationer, i modsætning til andre RDBMS, hvor klient-server DB-motoren er konfigureret.

Funktioner i SQLite

SQLite tilbyder mange forskellige funktioner såsom:

  • Serverløs: De fleste SQL-databaser er implementeret som en separat serverproces, men SQLite har ikke en separat serverproces. Det er en serverløs databasemotor. Den læser og skriver direkte til almindelige diskfiler.
  • Nulkonfiguration: Det kræver ingen konfiguration for at få det til at køre. Det betyder, at der ikke er nogen serverproces, der skal startes, stoppes eller konfigureres som i et klient-/serversystem.
  • Manifestskrivning: SQLite bruger manifest typing, som tillader lagring af enhver mængde af enhver datatype i enhver kolonne uden uanset kolonnens erklærede datatype. Bemærk, at der er visse undtagelser fra denne regel.
  • Letvægt: Som navnet antyder, er SQLite-biblioteket meget let. Sagen er, at selvom den plads, den bruger, varierer afhængigt af systemet, hvor den er installeret, kan den optage mindre end 600 KB plads.
  • Bærbar: I modsætning til andre DBMS er en hel SQLite-database gemt i en enkelt fil. Denne fil kan meget nemt deles via flytbare medier eller filoverførselsprotokol.
  • Forskellige valgmuligheder: Mange programmeringssprog giver bindinger til SQLite, inklusive C, C++, C#, Java, JavaScript, Ruby, Python og mange flere.
  • Gratis: SQLite er gratis og open source. For at arbejde med SQLite kræves der ikke en kommerciel licens.

Som angivet ovenfor er SQLite kendt for sin nul-konfiguration, hvilket betyder, at ingen kompleks opsætning eller administration er virkelig påkrævet. Lad os se, hvordan du installerer SQLite på dit system i den næste del af denne SQLite-tutorial.

SQLite-vejledning:Installation af SQLite på Windows

De trin, der skal følges, er:

Trin 1: Gå til det officielle SQLite-websted, og klik på det passende link for at downloade prækompilerede binære filer.

Trin 2: Download SQLite-kommandolinje-zip-filen (her:sqlite-tools-win32-x86-3270200.zip) og udvid disse filer i en mappe efter eget valg.

Dette SQLite-kommandolinjeværktøj vil indeholde følgende SQLite-produkter

  • SQLite-kerne :SQLite-kernen indeholder den faktiske databasemotor og offentlige API.
  • SQLite3 kommandolinjeværktøj :sqlite3-applikationen er et kommandolinjeværktøj, der er bygget oven på SQLite-kernen.
  • Tcl-udvidelse :Dette bibliotek er i det væsentlige en kopi af SQLite-kernen med Tcl-bindingerne sat på.
  • SQLite analysatorværktøj :SQLite-analysatorværktøjet bruges til at analysere databasefiler.

Trin 3: Derefter er initiering af SQLite-kommandolinjen så simpelt som at klikke på sqlite3-applikationen, hvilket vil få kommandolinjen til at poppe op.

Hvis du vil teste yderligere, skal du blot skrive .help kommando fra sqlite> prompt for at se alle tilgængelige kommandoer i sqlite3 som vist nedenfor.

Bemærk: Som standard bruger en SQLite-session databasen i hukommelsen, derfor vil alle ændringer være væk, når sessionen slutter.

Simpelt nok ikke? Lad os derefter komme i gang med SQLite-kommandoer.

SQLite-vejledning:SQLite-kommandoer

Dette afsnit af SQLite-selvstudiet præsenterer grundlæggende SQL-sætninger, som du kan bruge med SQLite.

Bemærk: SQLite-kommandoer slutter med semikolon (; ). Det fortæller SQLite, at din kommando er fuldført og skal køres. Du kan også sprede din kommando over flere linjer og bruge semikolon på den sidste linje.

Databasekommandoer

Denne sektion består af de kommandoer, som du kan bruge til din database. Kommandoerne er:

  • SQLite Opret database

SQLite bruger ikke CREATE DATABASE-sætningen som i andre relationelle databasestyringssystemer, såsom MySQL, SQL Server osv. For at oprette en ny database i SQLite skal du blot indtaste sqlite3 efterfulgt ved navnet på den fil, du ønsker at bruge til databasen. Følgende kode opretter en databasefil kaldet StudentDetails.db:

Eksempel

sqlite3 StudentDetails.db;

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

Når du har flere databaser, kan du kun bruge én ad gangen. I SQLite bruges ATTACH DATABASE-sætningen til at vedhæfte en bestemt database til den aktuelle forbindelse. Efter denne kommando vil alle SQLite-sætninger blive udført under den vedhæftede database.

Eksempel

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

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
  • SQLite Frigør database

I SQLite bruges DETACH DATABASE-sætningen til at frakoble den alias-navngivne database fra en databaseforbindelse, der tidligere var tilknyttet ved at bruge ATTACH-sætningen. Hvis den samme databasefil er blevet vedhæftet med flere aliaser, afbryder denne kommando kun det givne navn, og resten af ​​den vedhæftede fil vil stadig eksistere. Databaserne i hukommelsen eller den midlertidige database vil blive fuldstændig ødelagt, og indholdet vil gå tabt.

Eksempel

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

Tabelkommandoer

Her vil vi lære, hvordan du håndterer tabeller, når du bruger SQLite.

  • SQL-opret tabel

I SQLite bruges CREATE TABLE-sætningen til at oprette en ny tabel. Mens du opretter tabellen, skal du navngive tabellen og definere dens kolonne og datatyper for hver kolonne.

Syntaks:

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

Eksempel


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)
); 

Du kan kontrollere, om tabellen er oprettet eller ej, ved at bruge .tables kommando som vist nedenfor. Bemærk, at jeg allerede har oprettet en tabel kaldet Afdelingsinfo hvor DeptID er den primære nøgle. Afdelingstabellen har en fremmednøglebegrænsning til tabellen Studenter.

 

sqlite> .tables
StudentInfo Contacts Emp_Master

  • SQLite Drop Table

I SQLite giver DROP TABLE-sætningen dig mulighed for at fjerne eller slette en tabel fra SQLite-databasen. Når tabellen er slettet, fjernes alle de data, den indeholder, permanent fra databasen. Eventuelle tilknyttede indekser og triggere fjernes også. Hvis der er en fremmednøgle-begrænsning aktiveret på den tabel, vil det fjerne tilsvarende for hver række i tabellen, og alle triggere, der er knyttet til tabellen, vil også blive slettet.

Syntaks

DROP TABLE [ IF EXISTS ] table_name;

Eksempel

 DROP TABLE Department;
Error: no such table: Department

DROP TABLE Company;
sqlite> .tables
StudentInfo

Bemærk: HVIS FINNES, er en valgfri klausul. Hvis angivet, vil DROP TABLE-sætningen ikke give en fejl, hvis en af ​​tabellerne ikke eksisterer.

Der er også en SQLite Alter Table-sætning , som vi vil forstå i de næste par afsnit af denne artikel. Nu hvor vi har oprettet en tabel, lad os se, hvordan du indsætter, sletter og ændrer dataene.

SQLite-vejledning:CRUD-operationer

  • SQLite Indsæt forespørgsel

Efter oprettelse af tabellen kan SQLite Insert Into-kommandoen bruges til at oprette nye rækker i den angivne tabel. Der er to meningsfulde former for SQLite insert-sætningen. Den første form bruger en VALUES-sætning til at angive en liste over værdier, der skal indsættes.

Syntaks


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

Eksempel

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

Output

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

Her oprettes en enkelt ny række, og hver værdi registreres i dens respektive kolonne. Bemærk, at begge lister skal have det samme antal stk. Her er listen over kolonnerne er valgfri. Vi kan også indsætte data i tabellen uden at angive listen over kolonner .

Eksempel

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

Output

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

SQLite tilbyder også en funktion til atindsætte flere rækker i en enkelt INSERT-sætning. Syntaksen er som vist nedenfor.

Eksempel

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

Output

 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*******

Som du kan se, er formatet af output ikke helt det samme som det før. Så hvordan ændrer du outputformatet i SQLite? Lad os formatere outputtet, så vores resultater er lidt nemmere at læse.

  • Formater

Du kan bruge .mode til at ændre outputtilstanden. Ovenstående eksempel bruger .mode liste, som viser resultaterne som en liste. Du kan også bruge .headers sætning for at angive, om kolonneoverskrifter skal vises eller ej. Når du har foretaget ændringerne, kan du se indstillingen ved hjælp af .show kommando.

Eksempel

 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

Output

 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

I SQLite bruges Select-sætningen til at hente data fra en tabel, som returnerer data i form af en resultattabel. Disse resultattabeller kaldes også resultatsæt. Ved hjælp af SQLite select-sætning kan vi udføre simple beregninger eller flere udtryk baseret på vores krav. Vi har allerede tidligere brugt en SELECT-sætning, da vi indsatte data.

Syntaks

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
  • DISTINK – Når vi bruger distinkt søgeord i en select-sætning, returnerer det kun distinkte rækker af data.
  • ALLE – Hvis vi bruger ALL søgeord i en select-sætning, returnerer det alle rækker af data, selvom det er duplikeret.
  • FRA tabelliste – Det er en liste over tabeller, som du ønsker at hente data fra.
  • WHERE-udtryk – WHERE-udtrykket bruges til at definere vores brugerdefinerede betingelser for at hente de nødvendige data fra tabeller.

Eksempel1

 SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;

Output

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

Eksempel 2

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

Output

//fetches people from department whose id is 2

NAME
----------
Dean
SAM
  • SQLite-opdateringsforespørgsel

I SQLite kan UPDATE-sætningen bruges til at ændre de eksisterende poster i en tabel. WHERE-sætningen i SQLite kan bruges til at specificere præcis, hvilke rækker der skal opdateres. Du kan nemt opdatere alle rækker, nogle rækker eller ingen, afhængigt af de filtreringsbetingelser, der anvendes af WHERE-sætningen.

Syntaks

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

Eksempel

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

Output

 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 Slet forespørgsel

I SQLite kan DELETE-sætningen bruges til at slette posten fra tabellen. Du kan nemt slette alle rækker, nogle rækker eller ingen, afhængigt af de filtreringsbetingelser, der anvendes af WHERE-sætningen.

Eksempel

 DELETE FROM DepartmentInfo WHERE DeptName = 'Science';

Output

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

Hvis du forsøger at slette en post, der refereres til af en fremmednøgle, får du en fejl. Du skal først slette de fremmednøgleposter, før du sletter den primære nøglepost. Lad os prøve at slette afdelingsvidenskab.

Eksempel

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

Så vi er nødt til at slette de fremmede nøgleposter, før vi sletter den primære nøgle.

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 ved du, hvordan du redigerer posterne i SQLite-databasetabellen. Gå videre i denne SQLite tutorial blog, lad os diskutere forskellige klausuler og betingelser, som du oftest støder på i SQLite.

SQLite-klausuler/betingelser

Før du går i gang med klausuler, er her den komplette syntaks for SELECT-sætningen i SQLite.

Syntaks

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]]

Bemærk:Jeg har opdateret StudentInfo- og DepartmentInfo-tabellerne som vist nedenfor.

//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 HVOR

I SQLite bruges WHERE-sætningen til at pålægge begrænsninger på SELECT-sætningen ved at definere en eller flere betingelser for at få de nødvendige data fra tabeller i databasen. Hvis den angivne betingelse er opfyldt eller sand, returnerer den specifik værdi fra tabellen. Som du har set før, bruges WHERE-sætningen ikke kun i SELECT-sætningen, men den bruges også i UPDATE, DELETE-sætning osv.

Eksempel

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

I SQLite er der en række relationelle operatorer, der kan bruges med WHERE-sætningen.

  • SQLite GROUP BY

I SQLite bruges GROUP BY-sætningen til at aggregere data i en enkelt række, hvor værdien af ​​en eller flere specificerede kolonner gentages. Denne klausul bruges sammen med WHERE-sætningen i SELECT-sætningen og går forud for ORDER BY-sætningen.

Syntaks

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

Bemærk, at grupperingsprocessen har to trin. Først bruges GROUP BY-udtrykket til at arrangere tabelrækker i forskellige grupper. Når grupperne er defineret, definerer SELECT-sætningen, hvordan disse grupper fladtes ned til en enkelt række.

  • SQLite BESTIL EFTER

Generelt lagrer SQLite-tabeller data i uspecificeret rækkefølge, og det vil returnere poster i samme uspecificerede rækkefølge, mens de henter data ved hjælp af SQLite select-sætning. I sådanne tilfælde kan du bruge ORDER BY-udtrykket, der bruges til at sortere kolonneposter enten i stigende eller faldende rækkefølge. I eksemplet nedenfor har jeg grupperet og ordnet 9 i faldende rækkefølge) dataene baseret på adressen.

Syntaks

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

Eksempel

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 HAVING AF

I SQLite er HAVING klausulen er identisk med WHERE klausul. HAVING-klausul er en yderligere betingelse, der anvendes, efter at aggregering finder sted sammen med gruppen ved i select-sætning. Generelt i SQLite, WHERE klausul bruges til at anvende en betingelse på individuelle elementer i en tabel og HAVING klausul bruges til at tilføje filterbetingelser baseret på grupperne oprettet af Group By-klausul.

Eksempel

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

ADDRESS     COUNT(ADDRESS)
----------  --------------
Norway      3
  • SQLite-grænseklausul

I SQLite bruges LIMIT-udtrykket til at sætte en grænse for de poster, der returneres af select-sætningen. Lad os overveje et eksempel for at forstå konceptet.

Syntaks

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

Eksempel

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

OFFSET er valgfrit, og det definerer, hvor mange rækker der skal springes over i begyndelsen af ​​resultatsættet baseret på offset_value .

  • SQLite OG &ELLER

I SQLite bruges AND &OR-operatorerne til at udføre flere betingelser for at vælge, indsætte, opdatere og slette sætninger baseret på vores krav. SQLite AND-operator vil returnere rækker eller poster, der opfylder de betingelser, der er defineret ved at bruge AND-operatoren.

Eksempel1

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

ELLER-betingelsen bruges til at definere flere betingelser i SQLite-sætninger, og den vil returnere rækker eller poster fra sætningen, hvis en af ​​betingelserne er opfyldt.

Eksempel 2

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

I SQLite bruges GLOB-operatoren til at kontrollere, om den givne strengværdi matcher et specifikt mønster eller ej. Hvis strengværdien matcher mønsterværdien, vil den returnere true og det ligner LIKE-operatøren. Desuden er GLOB følsomme mellem store og små bogstaver.

Syntaks

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

Eksempel

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 Distinct

I SQLite vil nøgleordet DISTINCT scanne resultatsættet af SELECT-sætningen og eliminere eventuelle duplikerede rækker. NULL-værdier betragtes også som dubletter, så hvis vi bruger DISTINCT-sætningen med en kolonne, der har NULL-værdier, vil den kun beholde en række af en NULL-værdi. Når du anvender DISTINCT for flere kolonner, returnerer sætningen hver unik kombination af coulnm1 og kolonne 2.

Eksempel

SELECT DISTINCT AGE FROM StudentInfo;
AGE
----------
20
23
22
  • SQLite IN-operatør

I SQLite bruges IN-operatoren til at bestemme, om den givne værdi matcher en liste over givne værdier eller resultatet returneret af underforespørgslen.

Eksempel

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

I SQLite bruges UNION-operatoren til at kombinere resultatsættene af 2 eller flere SELECT-sætninger, og det fjerner duplikerede rækker mellem de forskellige SELECT-sætninger. Husk, at SELECT-sætningerne, som vi brugte med UNION-operatoren, skal have det samme antal felter i resultatsættene med lignende datatyper.

Syntaks

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

UNION / UNION ALL

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

Eksempel

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

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

UNION ALL-operatoren bruges til at kombinere resultatsættene af 2 eller flere SELECT-sætninger, og den vil returnere alle rækkerne inklusive dubletterne.

Eksempel

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

Med dette har vi dækket de mest grundlæggende kommandoer, som du muligvis skal bruge, når du arbejder med SQLite. Lad os gå videre med denne SQLite-tutorial, og lad os se join-sætningen i SQLite.

Deltager i SQLite

I SQLite bruges Joins til at kombinere poster fra to eller flere tabeller i en database og få poster baseret på vores krav. Forskellige typer JOINS tilgængelige i SQLite er:

  • Indre deltagelse – INNER JOIN bruges til kun at kombinere og returnere matchende poster fra multiple tabeller baseret på betingelserne defineret i SQLite-sætninger.
  • Outer Join – SQLite Outer Join vil vælge matchende rækker fra flere tabeller på samme måde som Inner Join og nogle andre rækker uden for forholdet. Enkelt sagt kan vi sige, at SQLite OUTER JOIN er en tilføjelse af INNER JOIN. Generelt har vi tre typer Outer Joins i SQL-standarden, de er LEFT, RIGHT og FULL Outer Joins, men SQLite understøtter kun LEFT OUTER JOIN.
  • Cross Join – Det bruges til at få det kartesiske produkt af rækker ved at matche hver række i den første tabel med hver række i den anden tabel.
  • Tilmeld dig selv – Det bruges til at forbinde det samme bord med sig selv. For at bruge Self Join skal vi oprette forskellige aliasnavne til den samme tabel for at udføre operationer baseret på vores krav.

Konceptet ligner det for andre relationelle databasesystemer som SQL. Så for at vide mere kan du henvise til denne artikel om SQL Joins.

Med dette har vi dækket de grundlæggende SQLite-kommandoer. Avancerede begreber er ikke dækket her. Så følg med for endnu en artikel om avancerede SQLite-koncepter. Selv med alle de gode funktioner, som SQLite har at tilbyde, har det også visse ulemper.

SQLite Tutorial:Ulemper ved SQLite

Nedenstående er ulemperne ved at bruge SQLite:

  • Det fungerer ikke godt i klient/serverarkitektur.
  • En SQLite-databasestørrelse er begrænset til 2 GB i de fleste tilfælde.
  • SQLite har ikke implementeret RIGHT OUTER JOIN og FULL OUTER JOIN. Med SQLite kan vi kun implementere LEFT OUTER JOIN.
  • Visninger i SQLite er skrivebeskyttede. Vi kan ikke bruge DML-sætninger (Indsæt, Opdater og Slet) med Views.
  • Vi kan ikke bruge GRANT- og REVOKE-sætninger med SQLite.

Med dette kommer vi til en ende på denne SQLite-tutorial.

Hvis du ønsker at lære mere om MySQL og lære denne open source relationsdatabase at kende, så tjek vores MySQL DBA Certification Training som kommer med instruktørledet livetræning og projekterfaring i det virkelige liv. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne SQLite-vejledning, så vender jeg tilbage til dig.


  1. Sådan sikrer du dig, at din MySQL-database er sikret

  2. Sådan identificerer du PostgreSQL-ydelsesproblemer med langsomme forespørgsler

  3. Sådan dræber du en kørende SELECT-sætning

  4. Sådan beregnes månedlige aktive brugere (MAU) i MySQL