Lai SQL vaicājumus ierakstītu SQLite datu bāzē, jums jāzina, kā darbojas klauzulas SELECT, FROM, WHERE, GROUP BY, ORDER BY un LIMIT un kā tās izmantot.
Šīs apmācības laikā jūs uzzināsiet, kā izmantot šos klauzulas un kā rakstīt SQLite klauzulas.
Šajā apmācībā jūs uzzināsiet
- Datu lasīšana, izmantojot atlasi
- Vārdi un aizstājvārdi
- KUR
- Ierobežošana un pasūtīšana
- Dublikātu noņemšana
- Apkopot
- Grupa BY
- Vaicājums un apakšvaicājums
- Iestatīt operācijas -UNION, Intersect
- NULL apstrāde
- Nosacīti rezultāti
- Kopēja tabulas izteiksme
- Papildu vaicājumi
Datu lasīšana, izmantojot atlasi
Klauzula SELECT ir galvenais paziņojums, kuru izmantojat, lai vaicātu SQLite datu bāzei. Klauzulā SELECT jūs norādāt, ko izvēlēties. Bet pirms atlases klauzulas redzēsim, no kurienes mēs varam atlasīt datus, izmantojot klauzulu FROM.
Klauzula FROM tiek izmantota, lai norādītu, kur vēlaties atlasīt datus. Klauzulā no varat norādīt vienu vai vairākas tabulas vai apakšvaicājumus, no kuriem atlasīt datus, kā mēs vēlāk redzēsim apmācībās.
Ņemiet vērā, ka visiem šiem piemēriem ir jāpalaiž sqlite3.exe un jāatver savienojums ar datu bāzes paraugu kā plūstošu:
1. solis) Šajā solī
- Atveriet Mans dators un dodieties uz šādu direktoriju " C: \ sqlite " un
- Pēc tam atveriet " sqlite3.exe ":
2. solis) Atveriet datubāzi " TutorialsSampleDB.db " ar šādu komandu:
Tagad esat gatavs datu bāzē palaist jebkura veida vaicājumus.
Klauzulā SELECT varat atlasīt ne tikai kolonnas nosaukumu, bet jums ir daudz citu iespēju, lai norādītu, ko izvēlēties. Kā sekojošais:
SELECT *
Šī komanda atlasīs visas kolonnas no visām atsauces tabulām (vai apakšvaicājumiem) klauzulā FROM. Piemēram:
SELECT *NO studentiemINNER JOIN Departamenti ON Students.DepartmentId = Departments.DepartmentId;
Tas atlasīs visas kolonnas gan no studentu, gan katedru tabulām:
SELECT tabename. *
Tas atlasīs visas kolonnas tikai no tabulas "tablename". Piemēram:
Atlasiet studentus. *NO studentiemINNER JOIN Departamenti ON Students.DepartmentId = Departments.DepartmentId;
Tiks atlasītas visas kolonnas tikai studentu tabulā:
Burtiskā vērtība
Burtiskā vērtība ir nemainīga vērtība, ko var norādīt izvēlētajā paziņojumā. Burtiskās vērtības parasti varat izmantot tāpat kā kolonnu nosaukumus klauzulā SELECT. Šīs burtiskās vērtības tiks parādītas katrai rindai no SQL vaicājuma atgrieztajām rindām.
Šeit ir daži piemēri dažādām burtiskām vērtībām, kuras varat atlasīt:
- Skaitliskais burtiskais - skaitļi jebkurā formātā, piemēram, 1, 2,55,… utt.
- Virknes literāļi - jebkura virkne “ASV”, “šis ir teksta paraugs” utt.
- NULL - NULL vērtība.
- Current_TIME - tas jums norādīs pašreizējo laiku.
- CURRENT_DATE - tas jums norādīs pašreizējo datumu.
Tas var būt noderīgi dažās situācijās, kad jums jāatlasa nemainīga vērtība visām atgrieztajām rindām. Piemēram, ja no studentu tabulas vēlaties atlasīt visus studentus ar jaunu kolonnu, kuras nosaukums ir valsts, kurā ir vērtība "ASV", varat to izdarīt:
SELECT *, 'USA' kā valsts no studentiem;
Tas jums dos visas studentu slejas, kā arī jaunu kolonnu "Valsts" šādi:
Ņemiet vērā, ka šī jaunā kolonna Valsts faktiski nav jauna kolonna, kas pievienota tabulai. Tā ir virtuāla kolonna, kas izveidota vaicājumā rezultātu parādīšanai, un tā netiks izveidota tabulā.
Vārdi un aizstājvārdi
Pseidonīms ir jauns slejas nosaukums, kas ļauj atlasīt kolonnu ar jaunu nosaukumu. Kolonnu aizstājvārdi tiek norādīti, izmantojot atslēgvārdu "AS".
Piemēram, ja vēlaties atlasīt kolonnu StudentName, kas jāatgriež ar “Student Name”, nevis “StudentName”, varat tai piešķirt šādu aizstājvārdu:
SELECT StudentName AS “Student Name” NO studentiem;
Tas jums dos studentu vārdus ar nosaukumu "Studenta vārds", nevis "StudentName", piemēram:
Ņemiet vērā, ka kolonnas nosaukums joprojām ir " StudentName "; kolonna StudentName joprojām ir tāda pati, tā nemainās ar aizstājvārdu.
Aizstājvārds nemainīs kolonnas nosaukumu; tas tikai mainīs parādīšanas vārdu klauzulā SELECT.
Ņemiet vērā arī to, ka atslēgvārds "AS" nav obligāts, aizstājvārda nosaukumu varat ievietot bez tā, apmēram šādi:
IZVĒLIES studenta vārdu “studenta vārds” no studentiem;
Un tas dos jums tieši tādu pašu rezultātu kā iepriekšējais vaicājums:
Jūs varat arī dot tabulām aizstājvārdus, ne tikai kolonnas. Ar to pašu atslēgvārdu "AS". Piemēram, jūs varat to izdarīt:
ATLASI s. * NO STUDENTIEM AS;
Tas jums dos visas kolonnas tabulā Studenti:
Tas var būt ļoti noderīgi, ja pievienojaties vairāk nekā vienai tabulai; tā vietā, lai vaicājumā atkārtotu pilnu tabulas nosaukumu, katrai tabulai varat piešķirt īsu aizstājvārdu. Piemēram, šajā vaicājumā:
Atlasiet Students.StudentName, Departments.DepartmentNameNO studentiemINNER JOIN Departamenti ON Students.DepartmentId = Departments.DepartmentId;
Šis vaicājums atlasīs katra studenta vārdu tabulā "Studenti" ar nodaļas nosaukumu tabulā "Departamenti":
Tomēr to pašu vaicājumu var rakstīt šādi:
Atlasiet s.StudentName, d.DepartmentNameNO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentId;
- Mēs studentiem iedevām aizstājvārdu "s", bet katedras - aizstājvārdu "d".
- Tad tā vietā, lai izmantotu pilnu tabulas nosaukumu, mēs izmantojām viņu aizstājvārdus, lai uz tiem atsauktos.
- INNER JOIN savieno divas vai vairākas tabulas kopā, izmantojot nosacījumu. Šajā piemērā mēs pievienojāmies studentu tabulai ar tabulu Departamenti ar kolonnu DepartmentId. Ir arī padziļināts skaidrojums INNER JOIN "SQLite Joins" apmācībā.
Tas sniegs jums precīzu rezultātu kā iepriekšējais vaicājums:
KUR
Rakstot SQL vaicājumus, izmantojot tikai klauzulu SELECT kopā ar klauzulu FROM, kā redzējām iepriekšējā sadaļā, tiks iegūtas visas tabulu rindas. Tomēr, ja vēlaties filtrēt atgrieztos datus, jums jāpievieno klauzula "WHERE".
Klauzula WHERE tiek izmantota, lai filtrētu SQL vaicājuma atgriezto rezultātu kopu. Klauzula WHERE darbojas šādi:
- Klauzulā WHERE varat norādīt "izteiksmi".
- Šī izteiksme tiks novērtēta katrai rindai, kas atgriezta no FROM klauzulā norādītās tabulas (-ām).
- Izteiksme tiks vērtēta kā Būla izteiksme, kuras rezultāts būs vai nu patiess, neīsts vai nulle.
- Tad tiks atgrieztas tikai tās rindas, kurām izteiksme tika novērtēta ar patiesu vērtību, un tās, kuru rezultāti bija nepatiesi vai nulle, tiks ignorēti un netiks iekļauti rezultātu komplektā.
- Lai filtrētu rezultātu kopu, izmantojot klauzulu WHERE, jums jāizmanto izteicieni un operatori.
Operatoru saraksts SQLite un kā tos izmantot
Nākamajā sadaļā mēs izskaidrosim, kā jūs varat filtrēt, izmantojot izteiksmi un operatorus.
Izteiksme ir viena vai vairākas burtiskās vērtības vai kolonnas, kas savstarpēji apvienotas ar operatoru.
Ņemiet vērā, ka izteicienus varat izmantot gan klauzulā SELECT, gan klauzulā WHERE.
Turpmākajos piemēros mēs izmēģināsim izteicienus un operatorus gan atlases klauzulā, gan WHERE klauzulā. Lai parādītu, kā viņi darbojas.
Ir dažādi izteicienu un operatoru veidi, kurus varat norādīt šādi:
SQLite savienošanas operators "||"
Šis operators tiek izmantots, lai savienotu vienu vai vairākas burtiskās vērtības vai kolonnas savā starpā. Tas radīs vienu rezultātu virkni no visām sasaistītajām burtiskajām vērtībām vai kolonnām. Piemēram:
SELECT 'ID ar nosaukumu:' || StudentId || StudentName AS StudentIdWithNameNO studentiem;
Tas apvienosies jaunā aizstājvārdā " StudentIdWithName ":
- Burtiskā virknes vērtība " Id with Name: "
- ar kolonnas " StudentId " vērtību un
- ar vērtību no kolonnas “ StudentName ”
SQLite CAST operators:
CAST operators tiek izmantots, lai vērtību no datu veida pārveidotu par citu datu tipu.
Piemēram, ja jums ir skaitliskā vērtība, kas saglabāta kā virknes vērtība, piemēram, šī " '12 .5 ' ", un vēlaties to pārveidot par skaitlisku vērtību, varat izmantot operatoru CAST, lai to izdarītu šādi: " CAST ('12 .5' AS ĪSTS) ". Vai arī, ja jums ir decimālvērtība, piemēram, 12,5, un jums jāiegūst tikai vesela skaitļa daļa, varat to nodot veselam skaitlim, piemēram, "CAST (12.5 AS INTEGER)".
Piemērs
Šajā komandā mēs mēģināsim pārvērst dažādas vērtības citos datu tipos:
SELECT CAST ('12 .5 'AS REAL) ToReal, CAST (12.5 AS INTEGER) AS ToInteger;
Tas jums dos:
Rezultāts ir šāds:
- CAST ('12,5 'AS REAL) - vērtība '12,5' ir virknes vērtība, tā tiks konvertēta uz REAL vērtību.
- CAST (12.5 AS INTEGER) - vērtība 12,5 ir decimālvērtība, tā tiks pārveidota par veselu skaitli. Decimāldaļa tiks saīsināta, un tā kļūst par 12.
SQLite aritmētiskie operatori:
Paņemiet divas vai vairākas skaitliskas burtiskās vērtības vai skaitliskās kolonnas un atgrieziet vienu skaitlisko vērtību. SQLite atbalstītie aritmētiskie operatori ir:
|
Piemērs:
Šajā piemērā mēs izmēģināsim piecus aritmētiskos operatorus ar burtiskām skaitliskām vērtībām tajā pašā
atlases klauzula:
IZVĒLIES 25 + 6, 25-6, 25 * 6, 25% 6, 25/6;
Tas jums dos:
Ievērojiet, kā mēs šeit izmantojām paziņojumu SELECT bez klauzulas FROM. Un tas ir atļauts SQLite, kamēr mēs atlasām burtiskās vērtības.
SQLite salīdzināšanas operatori
Salīdziniet divus operandus savā starpā un atgrieziet patiesu vai nepatiesu šādi:
|
Ņemiet vērā, ka SQLite izsaka patieso vērtību ar 1 un viltus vērtību ar 0.
Piemērs:
SELECT10 <6 AS '<', 10 <= 6 AS '<=',10> 6 AS '>', 10> = 6 AS '> =',10 = 6 AS '=', 10 == 6 AS '==',10! = 6 AS '! =', 10 <> 6 AS '<>';
Tas dos kaut ko līdzīgu šim:
SQLite Pattern Matching operatori
" LIKE " - tiek izmantots modeļu saskaņošanai. Izmantojot “ Patīk ”, varat meklēt vērtības, kas atbilst modelim, kas norādīts, izmantojot aizstājējzīmi.
Operands kreisajā pusē var būt vai nu virknes burtiskā vērtība, vai virknes kolonna. Modeli var norādīt šādi:
- Satur modeli. Piemēram, StudentName LIKE '% a%' - tas meklēs studentu vārdus, kas satur burtu "a" jebkurā kolonnas StudentName vietā.
- Sākas ar modeli. Piemēram, " StudentName LIKE 'a%" "- meklējiet studentu vārdus, kas sākas ar burtu" a ".
- Beidzas ar modeli. Piemēram, " StudentName LIKE '% a' " - meklējiet studentu vārdus, kas beidzas ar burtu "a".
- Jebkuras atsevišķas rakstzīmes saskaņošana virknē, izmantojot pasvītrojuma burtu "_". Piemēram, " StudentName LIKE 'J___' " - meklējiet studentu vārdus, kuru garums ir 4 rakstzīmes. Tai jāsākas ar burtu "J", un aiz burta "J" var būt vēl trīs citas rakstzīmes.
Rakstu atbilstības piemēri:
- Saņemiet studentu vārdus, kas sākas ar “j” burtu:
ATLASIET studenta vārdu no studentiem, kur studenta vārds ir līdzīgs 'j%';
Rezultāts:
- Saņemiet studentu vārdus, kas beidzas ar “y” burtu:
ATLASIET studenta vārdu no studentiem, kur studenta vārds patīk "% y";
Rezultāts:
- Iegūstiet studentu vārdus, kas satur burtu “n”:
Atlasiet studenta vārdu no studentiem, kur studenta vārds patīk "% n%";
Rezultāts:
"GLOB" - ir līdzvērtīgs operatoram LIKE, bet atšķirībā no operatora LIKE, GLOB ir reģistrjutīgs. Piemēram, šīs divas komandas sniegs atšķirīgus rezultātus:
ATLASIET 'Jack' GLOB 'j%';ATLASIET 'Jack' LIKE 'j%';
Tas jums dos:
- Pirmais apgalvojums atgriež 0 (false), jo GLOB operators ir reģistrjutīgs, tāpēc “j” nav vienāds ar “J”. Tomēr otrais paziņojums atgriezīs 1 (patiess), jo LIKE operators nav reģistrjutīgs, tāpēc “j” ir vienāds ar “J”.
Citi operatori:
SQLite UN
Loģisks operators, kas apvieno vienu vai vairākas izteiksmes. Tas atgriezīsies patiess tikai tad, ja visi izteicieni dod “patiesu” vērtību. Tomēr tas atgriezīs nepatiesu tikai tad, ja visi izteicieni dod "nepatiesu" vērtību.
Piemērs:
Šis vaicājums meklēs studentus, kuriem StudentId> 5 un StudentName sākas ar burtu N, un atgrieztajiem studentiem jāatbilst abiem nosacījumiem:
SELECT *NO studentiemWHERE (StudentId> 5) UN (StudentName LIKE 'N%');
Kā izeja, iepriekš redzamajā ekrānuzņēmumā tas dos jums tikai "Nancy". Nensija ir vienīgā studente, kas atbilst abiem nosacījumiem.
SQLite VAI
Loģisks operators, kas apvieno vienu vai vairākas izteiksmes, tā ka, ja kāds no apvienotajiem operatoriem dod taisnību, tas atgriezīsies patiess. Tomēr, ja visi izteicieni rada nepatiesu vērtību, tas atgriezīsies nepatiesi.
Piemērs:
Šis vaicājums meklēs studentus, kuru StudentId> 5 vai StudentName sākas ar burtu N, atgrieztajiem studentiem jāatbilst vismaz vienam no nosacījumiem:
SELECT *NO studentiemWHERE (StudentId> 5) VAI (StudentNAME LIKE 'N%');
Tas jums dos:
Kā izvads iepriekš redzamajā ekrānuzņēmumā tas dos jums studenta vārdu, kura vārdā ir burts "n", kā arī studenta ID, kura vērtība ir> 5.
Kā redzat, rezultāts atšķiras no vaicājuma ar operatoru AND.
SQLite STARP
BETWEEN tiek izmantots, lai atlasītu tās vērtības, kas atrodas divu vērtību diapazonā. Piemēram, " X BETWEEN Y AND Z " atgriezīs vērtību true (1), ja vērtība X ir starp divām vērtībām Y un Z. Pretējā gadījumā tā atgriezīsies false (0). " X STARP Y UN Z " ir ekvivalents " X> = Y UN X <= Z ", X jābūt lielākam vai vienādam ar Y un X ir mazāks vai vienāds ar Z.
Piemērs:
Šajā vaicājuma piemērā mēs uzrakstīsim vaicājumu, lai iegūtu studentus ar Id vērtību no 5 līdz 8:
SELECT *NO studentiemKUR SKOLĒJA STARP 5. UN 8. STARP;
Tas dos tikai studentiem, kuru ID ir 5, 6, 7 un 8:
SQLite IN
Paņem vienu operandu un operandu sarakstu. Tas atgriezīsies patiess, ja pirmā operanda vērtība būs vienāda ar vienu no operanda vērtībām no saraksta. Operators IN atgriež vērtību true (1), ja operandu sarakstā tā vērtību robežās ir pirmā operanda vērtība. Pretējā gadījumā tas atgriezīs false (0).
Šādi: " col IN (x, y, z) ". Tas ir ekvivalents " (col = x) vai (col = y) vai (col = z) ".
Piemērs:
Šis vaicājums atlasīs studentus, kuru ID ir tikai 2, 4, 6, 8:
SELECT *NO studentiemWHERE StudentId IN (2, 4, 6, 8);
Kā šis:
Iepriekšējais vaicājums sniegs precīzu rezultātu kā šāds vaicājums, jo tie ir līdzvērtīgi:
SELECT *NO studentiemKUR (StudentId = 2) VAI (StudentId = 4) VAI (StudentId = 6) VAI (StudentId = 8);
Abi vaicājumi sniedz precīzu rezultātu. Tomēr atšķirība starp abiem vaicājumiem ir tā, ka pirmais vaicājums tika izmantots ar operatoru "IN". Otrajā vaicājumā mēs izmantojām vairākus operatorus “OR”.
IN operators ir līdzvērtīgs vairāku VAI operatoru izmantošanai. " WHERE StudentId IN (2, 4, 6, 8) " ir ekvivalents " WHERE (StudentId = 2) VAI (StudentId = 4) VAI (StudentId = 6) VAI (StudentId = 8); "
Kā šis:
SQLite NAV IN
Operands "NOT IN" ir pretējs IN operatoram. Bet ar to pašu sintaksi; tas prasa vienu operandu un operandu sarakstu. Tas atgriezīsies patiess, ja pirmā operanda vērtība nebūs vienāda ar vienu no operandu vērtībām no saraksta. ti, tas atgriezīs vērtību true (0), ja operandu sarakstā nav pirmā operanda. Šādi: " col NOT IN (x, y, z) ". Tas ir ekvivalents " (kol <> x) UN (kol <> y) UN (kol <> z) ".
Piemērs:
Šis vaicājums atlasīs studentus, kuru ID nav vienāds ar vienu no šiem ID 2, 4, 6, 8:
SELECT *NO studentiemKUR Students NAV IEKŠĒJĀS (2, 4, 6, 8);
Kā šis
Iepriekšējais vaicājums sniedz precīzu rezultātu kā šāds vaicājums, jo tie ir līdzvērtīgi:
SELECT *NO studentiemKUR (StudentId <> 2) UN (StudentId <> 4) UN (StudentId <> 6) UN (StudentId <> 8);
Kā šis:
Iepriekš redzamajā ekrānuzņēmumā
Mēs izmantojām vairākus nevienādus operatorus "<>", lai iegūtu studentu sarakstu, kas nav vienāds ar nevienu no šiem ID 2, 4, 6 vai 8. Šis vaicājums atgriezīs visus pārējos studentus, izņemot šos Id sarakstu.
SQLITE PASTĀV
Operatori EXISTS neuzņem nevienu operandu; pēc tā ir nepieciešama tikai klauzula SELECT. Operators EXISTS atgriezīs vērtību true (1), ja ir kādas rindas, kas atgrieztas no klauzulas SELECT, un atgriezīs false (0), ja no SELECT klauzulas vispār nav atgrieztas rindas.
Piemērs:
Šajā piemērā mēs atlasīsim nodaļas nosaukumu, ja studentu tabulā ir nodaļas ID:
Atlasiet nodaļas nosaukumuNO departamentiem AS dKUR PASTĀV (Atlasiet DepartmentId no studentiem kā s WHERE d.DepartmentId = s.DepartmentId);
Tas jums dos:
Tikai trīs nodaļas " IT, fizika un māksla " tiks atgrieztas. Un katedras nosaukums " Matemātika " netiks atgriezts, jo tajā nav studenta, tāpēc nodaļas ID studentu tabulā nepastāv. Tāpēc operators EXISTS ignorēja nodaļu " Matemātika ".
SQLite NAV
Apgriež iepriekšējā operatora rezultātu, kas nāk pēc tā. Piemēram:
- NAV STARP - Tas atgriezīsies patiess, ja BETWEEN atgriezīsies nepatiesi un otrādi.
- NAV LIKE - tas atgriezīsies patiess, ja LIKE atgriezīsies false un otrādi.
- NOT GLOB - tas atgriezīsies patiess, ja GLOB atgriezīsies false un otrādi.
- NEBŪT - Atgriezīsies patiess, ja ESOŠA atgriezīs nepatiesu un otrādi.
Piemērs:
Šajā piemērā mēs izmantosim operatoru NOT ar operatoru EXISTS, lai iegūtu nodaļu nosaukumus, kuru nav studentu tabulā, kas ir operatora EXISTS apgrieztais rezultāts. Tātad meklēšana tiks veikta, izmantojot DepartmentId, kas nodaļu tabulā nepastāv.
Atlasiet nodaļas nosaukumuNO departamentiem AS dKUR NEBŪT (SELECT DepartmentIdNO studentiem, sWHERE d.DepartmentId = s.DepartmentId);
Izeja :
Tiek atgriezta tikai nodaļa " Matemātika ". Tā kā nodaļa " Matemātika " ir vienīgā nodaļa, studentu tabulā tās nav.
Ierobežošana un pasūtīšana
SQLite pasūtījums
SQLite pasūtījums ir kārtot rezultātu pēc vienas vai vairākām izteiksmēm. Lai pasūtītu rezultātu kopu, jums jāizmanto klauzula ORDER BY šādi:
- Pirmkārt, jums jānorāda klauzula ORDER BY.
- Vaicājuma beigās jānorāda klauzula ORDER BY; pēc tā var norādīt tikai klauzulu LIMIT.
- Norādiet izteiksmi, lai sakārtotu datus. Šī izteiksme var būt kolonnas nosaukums vai izteiksme.
- Pēc izteiksmes varat norādīt izvēles šķirošanas virzienu. Vai nu DESC, lai pasūtītu datus dilstošā secībā, vai ASC, lai pasūtītu datus augošā secībā. Ja jūs nenorādīsit nevienu no tiem, dati tiktu kārtoti augošā secībā.
- Varat norādīt vairāk izteicienu, izmantojot “,” savā starpā.
Piemērs
Šajā piemērā mēs atlasīsim visus studentus pēc viņu vārdiem, bet dilstošā secībā, pēc tam pēc nodaļas nosaukuma augošā secībā:
Atlasiet s.StudentName, d.DepartmentNameNO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentIdPASŪTĪT d.DepartName ASC, s.StudentName DESC;
Tas jums dos:
- SQLite vispirms visus studentus pasūtīs pēc to nodaļas nosaukuma augošā secībā
- Tad katram katedras nosaukumam visi studenti zem šī nodaļas nosaukuma tiks parādīti dilstošā secībā pēc viņu vārdiem
SQLite limits:
Izmantojot klauzulu LIMIT, varat ierobežot SQL vaicājuma atgriezto rindu skaitu. Piemēram, LIMIT 10 jums piešķirs tikai 10 rindas un ignorēs visas pārējās rindas.
Klauzulā LIMIT jūs varat atlasīt noteiktu rindu skaitu, sākot no noteiktas pozīcijas, izmantojot klauzulu OFFSET. Piemēram, " LIMIT 4 OFFSET 4 " ignorēs pirmās 4 rindas un atgriezīs 4 rindas, sākot no piektās rindas, tādējādi jūs iegūsit 5,6,7 un 8 rindas.
Ņemiet vērā, ka klauzula OFFSET nav obligāta, to var rakstīt kā " LIMIT 4, 4 ", un tas sniegs precīzus rezultātus.
Piemērs :
Šajā piemērā mēs atgriezīsim tikai 3 studentus, sākot no studenta ID 5, izmantojot vaicājumu:
ATLASĪT * NO SKOLĒNIEM LIMIT 4,3;
Tas dos jums tikai trīs studentus, sākot no 5. rindas. Tātad jūs saņemsiet rindas ar StudentId 5, 6 un 7:
Dublikātu noņemšana
Ja jūsu SQL vaicājums atgriež vērtību dublikātus, varat izmantot atslēgvārdu " DISTINCT ", lai noņemtu šos dublikātus un atgrieztos pie atšķirīgām vērtībām. Pēc taustiņa DISTINCT darbības varat norādīt vairākas kolonnas.
Piemērs:
Šis vaicājums atgriezīs dublikātus "nodaļas nosaukuma vērtības": Šeit mums ir dublētas vērtības ar nosaukumiem IT, fizika un māksla.
SELECT d.DepartmentNameNO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentId;
Tas jums dublēs nodaļas nosaukuma vērtības:
Ievērojiet, kā nodaļas nosaukumam ir dublikātu vērtības. Tagad mēs izmantosim atslēgvārdu DISTINCT ar to pašu vaicājumu, lai noņemtu šos dublikātus un iegūtu tikai unikālas vērtības. Kā šis:
SELECT DISTINCT d.DepartmentNameNO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentId;
Tas jums dos tikai trīs unikālas nodaļas nosaukuma kolonnas vērtības:
Apkopot
SQLite apkopojumi ir SQLite definētas iebūvētas funkcijas, kas vienā vērtībā sagrupēs vairāku rindu vairākas vērtības.
Šeit ir apkopoti, ko atbalsta SQLite:
SQLite AVG ()
Atgriež visu x vērtību vidējo vērtību.
Piemērs:
Šajā piemērā mēs saņemsim vidējo atzīmi, ko studenti iegūs no visiem eksāmeniem:
SELECT AVG (Mark) no Marks;
Tas jums piešķirs vērtību "18,375":
Šie rezultāti rodas, saskaitot visas atzīmes vērtības, dalot ar to skaitu.
COUNT () - COUNT (X) vai COUNT (*)
Atgriež x vērtības parādīšanās reižu kopējo skaitu. Šeit ir dažas iespējas, kuras varat izmantot kopā ar COUNT:
- COUNT (x): uzskaita tikai x vērtības, kur x ir kolonnas nosaukums. Tas ignorēs NULL vērtības.
- COUNT (*): saskaita visas rindas no visām kolonnām.
- COUNT (DISTINCT x): pirms x varat norādīt DISTINCT atslēgvārdu, kas iegūs atšķirīgo x vērtību skaitu.
Piemērs
Šajā piemērā tiks iegūts kopējais departamentu skaits ar COUNT (DepartmentId), COUNT (*) un COUNT (DISTINCT DepartmentId) un to atšķirība:
SELECT COUNT (DepartmentId), COUNT (DISTINCT DepartmentId), COUNT (*) NO studentiem;
Tas jums dos:
Kā sekojošais:
- COUNT (DepartmentId) norādīs visu nodaļas ID skaitu un ignorēs nulles vērtības.
- COUNT (DISTINCT DepartmentId) sniedz jums atšķirīgas DepartmentId vērtības, kas ir tikai 3. Kuras ir trīs dažādas nodaļas nosaukuma vērtības. Ievērojiet, ka studenta nosaukumā ir 8 nodaļas nosaukuma vērtības. Bet tikai trīs atšķirīgās vērtības, kas ir matemātika, IT un fizika.
- COUNT (*) uzskaita studentu tabulas rindu skaitu, kas ir 10 rindas 10 studentiem.
GROUP_CONCAT () - GROUP_CONCAT (X) vai GROUP_CONCAT (X, Y)
GROUP_CONCAT apkopotā funkcija apvieno vērtību reizinājumus vienā vērtībā ar komatu, lai tās atdalītu. Tam ir šādas iespējas:
- GROUP_CONCAT (X): Tas apvienos visu x vērtību vienā virknē ar komatu "", kas tiek izmantots kā atdalītājs starp vērtībām. NULL vērtības tiks ignorētas.
- GROUP_CONCAT (X, Y): Tas apvienos x vērtības vienā virknē, un y vērtība tiek izmantota kā atdalītājs starp katru vērtību noklusējuma atdalītāja ',' vietā. NULL vērtības arī netiks ignorētas.
- GROUP_CONCAT (DISTINCT X): tas apvienos visas atšķirīgās x vērtības vienā virknē ar komatu "," ko izmanto kā atdalītāju starp vērtībām. NULL vērtības tiks ignorētas.
GROUP_CONCAT (DepartmentName) piemērs
Šis vaicājums apvienos visas nodaļas nosaukuma vērtības no studentiem un katedru tabulas vienā virknes atdalītā komatā. Tātad, tā vietā, lai atgrieztu vērtību sarakstu, katrā rindā ir viena vērtība. Tas atgriezīs tikai vienu vērtību vienā rindā, atdalot visas vērtības ar komatu:
SELECT GROUP_CONCAT (d. Departamenta nosaukums)NO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentId;
Tas jums dos:
Tas jums dos sarakstu ar 8 departamentu nosaukumu vērtībām, kas apvienotas vienā virknes komatā.
GROUP_CONCAT (DISTINCT DepartmentName) piemērs
Šis vaicājums apvienos katedras nosaukuma atšķirīgās vērtības no studentu un katedru tabulas vienā virknes komatā, atdalot:
SELECT GROUP_CONCAT (DISTINCT d.DepartmentName)NO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentId;
Tas jums dos:
Ievērojiet, kā rezultāts atšķiras no iepriekšējā rezultāta; atgrieztas tikai trīs vērtības, kas ir atšķirīgo departamentu nosaukumi, un vērtību kopijas tika noņemtas.
GROUP_CONCAT (nodaļas nosaukums, '&') piemērs
Šis vaicājums apvienos visas nodaļas nosaukuma kolonnas vērtības no studentu un katedru tabulas vienā virknē, bet ar komatu kā atdalītāju rakstzīmi & &
SELECT GROUP_CONCAT (d. Departamenta nosaukums, '&')NO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentId;
Tas jums dos:
Ievērojiet, kā rakstzīme "&" tiek izmantota noklusējuma rakstzīmes "," vietā, lai nošķirtu vērtības.
SQLite MAX () un MIN ()
MAX (X) atgriež lielāko vērtību no X vērtībām. MAX atgriezīs vērtību NULL, ja visas x vērtības ir nulles. MIN (X) atgriež mazāko vērtību no X vērtībām. MIN atgriezīs NULL vērtību, ja visas X vērtības būs nulles.
Piemērs
Šajā vaicājumā mēs izmantosim funkcijas MIN un MAX, lai tabulā " Marks " iegūtu visaugstāko un zemāko atzīmi :
Atlasiet MAX (atzīmēt), MIN (atzīmēt) no atzīmēm;
Tas jums dos:
SQLite SUM (x), kopā (x)
Abi atgriezīs visu x vērtību summu. Bet tie atšķiras šādi:
- SUM atgriezīs nulli, ja visas vērtības būs nulles, bet Total atgriezīs 0.
- KOPĀ vienmēr atgriež peldošā komata vērtības. SUM atgriež vesela skaitļa vērtību, ja visas x vērtības ir vesels skaitlis. Tomēr, ja vērtības nav vesels skaitlis, tā atgriezīs peldošā komata vērtību.
Piemērs
Šajā vaicājumā mēs izmantosim SUM un total, lai iegūtu visu tabulās " Marks " esošo zīmju summu :
SELECT SUM (atzīmēt), TOTAL (atzīmēt) NO Marks;
Tas jums dos:
Kā redzat, TOTAL vienmēr atgriež peldošo punktu. Bet SUM atgriež veselu skaitli, jo slejā “Atzīmēt” vērtības var būt veseli skaitļi.
Atšķirība starp SUM un TOTAL piemēru:
Šajā vaicājumā mēs parādīsim atšķirību starp SUM un TOTAL, kad viņi saņems NULL vērtību SUM:
SELECT SUM (atzīmēt), TOTAL (atzīmēt) no atzīmēm WHERE TestId = 4;
Tas jums dos:
Ņemiet vērā, ka TestId = 4 nav atzīmju, tāpēc šim testam ir nulles vērtības. SUM atgriež nulles vērtību kā tukšu, savukārt TOTAL atgriež 0.
Grupa BY
Klauzulu GROUP BY izmanto, lai norādītu vienu vai vairākas kolonnas, kas tiks izmantotas rindu grupēšanai grupās. Rindas ar vienādām vērtībām tiks apkopotas (sakārtotas) grupās.
Jebkurai citai kolonnai, kas nav iekļauta grupā pēc kolonnām, varat tai izmantot apkopošanas funkciju.
Piemērs:
Šis vaicājums jums parādīs kopējo studentu skaitu katrā nodaļā.
SELECT d.DepartmentName, COUNT (s.StudentId) AS StudentsCountNO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentIdGRUPA D Departamenta nosaukums;
Tas jums dos:
Klauzula GROUPBY DepartmentName grupēs visus studentus grupās pa vienam katram nodaļas nosaukumam. Katrai "nodaļas" grupai tā ieskaitīs studentus.
HAVING klauzula
Ja vēlaties filtrēt grupas, kuras atgrieza klauzula GROUP BY, pēc aiz GROUP BY varat norādīt klauzulu "HAVING" ar izteiksmi. Izteiksme tiks izmantota šo grupu filtrēšanai.
Piemērs
Šajā vaicājumā mēs atlasīsim tās nodaļas, kurās ir tikai divi studenti:
SELECT d.DepartmentName, COUNT (s.StudentId) AS StudentsCountNO studentiem, sINNER JOIN Departamenti KĀ d ON s.DepartmentId = d.DepartmentIdGRUPA D Departamenta nosaukumsSAMATOJUMS (s.StudentId) = 2;
Tas jums dos:
Klauzula HAVING COUNT (S.StudentId) = 2 filtrēs atgriezušās grupas un atgriezīs tikai tās grupas, kurās ir tieši divi studenti. Mūsu gadījumā Mākslas nodaļā ir 2 studenti, tāpēc tas tiek parādīts izvadē.
SQLite vaicājumi un apakšvaicājumi
Jebkura vaicājuma iekšpusē varat izmantot citu vaicājumu vai nu SELECT, INSERT, DELETE, UPDATE vai cita apakšvaicājuma iekšpusē.
Šis ligzdotais vaicājums tiek saukts par apakšvaicājumu. Tagad mēs redzēsim dažus apakšklausību izmantošanas piemērus klauzulā SELECT. Tomēr apmācībā Datu modificēšana mēs redzēsim, kā mēs varam izmantot apakšklausības ar INSERT, DELETE un UPDATE paziņojumu.
Apakšvaicājuma izmantošana klauzulas FROM piemērā
Šajā vaicājumā mēs iekļausim apakšvaicājumu klauzulā FROM:
SELECTs.StudentName, t.MarkNO studentiem, sIEKŠĒJA PIEVIENOTIES(SELECT StudentId, MarksNO Testi AS tIEKŠĒJAIS PIEVIENOŠANĀS Marks AS m ON t.TestId = m.TestId) ON s.StudentId = t.StudentId;
Vaicājums:
SELECT StudentId, MarksNO Testi AS tIEKŠĒJAIS PIEVIENOŠANĀS Marks AS m ON t.TestId = m.TestId
Iepriekš minēto vaicājumu šeit sauc par apakšvaicājumu, jo tas ir ievietots klauzulas FROM iekšpusē. Ievērojiet, ka mēs tam piešķirām aizstājvārdu "t", lai mēs vaicājumā varētu atsaukties uz kolonnām, kas no tā atgrieztas.
Šis vaicājums jums dos:
Tātad mūsu gadījumā
- s.StudentName tiek izvēlēts no galvenā vaicājuma, kurā norādīts studentu vārds un
- t.Mark tiek izvēlēts no apakškomandas; kas dod katra no šiem studentiem iegūtās atzīmes
Apakšvaicājuma izmantošana WHERE klauzulas piemērā
Šajā vaicājumā WHERE klauzulā iekļausim apakšvaicājumu:
Atlasiet nodaļas nosaukumuNO departamentiem AS dKUR NEBŪT (SELECT DepartmentIdNO studentiem, sWHERE d.DepartmentId = s.DepartmentId);
Vaicājums:
SELECT DepartmentIdNO studentiem, sKUR d.DepartmentId = s.DepartmentId
Iepriekš minēto vaicājumu šeit sauc par apakšvaicājumu, jo tas ir ievietots klauzulā WHERE. Apakšvaicājums atgriezīs DepartmentId vērtības, kuras izmantos operators NEPASTĀV.
Šis vaicājums jums dos:
Iepriekš minētajā vaicājumā mēs esam izvēlējušies nodaļu, kurā nav reģistrēts neviens students. Kurš šeit ir "Matemātikas" departaments.
Iestatīt darbības - UNION, Intersect
SQLite atbalsta šādas SET darbības:
SAVIENĪBA UN SAVIENĪBA VISI
Tas apvieno vienu vai vairākas rezultātu kopas (rindu grupu), kas atgrieztas no vairākiem SELECT priekšrakstiem, vienā rezultātu kopā.
UNION atgriezīs atšķirīgas vērtības. Tomēr UNION ALL neietver un neietver dublikātus.
Ņemiet vērā, ka kolonnas nosaukums būs kolonnas nosaukums, kas norādīts pirmajā SELECT priekšrakstā.
SAVIENĪBAS piemērs
Šajā piemērā mēs saņemsim DepartmentId sarakstu no studentu tabulas un DepartmentId sarakstu no departamentu tabulas tajā pašā slejā:
Atlasiet DepartmentId AS DepartmentIdUnioned no studentiemSAVIENĪBASELECT DepartmentId NO Departments;
Tas jums dos:
Vaicājums atgriež tikai 5 rindas, kas ir atšķirīgas nodaļas ID vērtības. Ievērojiet pirmo vērtību, kas ir nulles vērtība.
SQLite UNION ALL piemērs
Šajā piemērā mēs saņemsim DepartmentId sarakstu no studentu tabulas un DepartmentId sarakstu no departamentu tabulas tajā pašā slejā:
Atlasiet DepartmentId AS DepartmentIdUnioned no studentiemSAVIENĪBA VISISELECT DepartmentId NO Departments;
Tas jums dos:
Vaicājums atgriezīs 14 rindas, 10 rindas no studentu tabulas un 4 no nodaļu tabulas. Ņemiet vērā, ka atgrieztajās vērtībās ir dublikāti. Ņemiet vērā arī to, ka kolonnas nosaukums bija tas, kas norādīts pirmajā SELECT priekšrakstā.
Tagad redzēsim, kā UNION all sniegs atšķirīgus rezultātus, ja UNION ALL aizstāsim ar UNION:
SQLite INTERSECT
Atgriež vērtības pastāv gan kombinētajā rezultātu komplektā. Tiks ignorētas vērtības, kas pastāv vienā no kombinētajiem rezultātu kopumiem.
Piemērs
Šajā vaicājumā mēs atlasīsim DepartmentId vērtības, kas pastāv gan tabulās Students, gan Departamenti kolonnā DepartmentId:
IZVĒLIES NODAĻU NO studentiemKrustojasSELECT DepartmentId NO Departments;
Tas jums dos:
Vaicājums atgriež tikai trīs vērtības 1, 2 un 3. Kuras ir vērtības, kas pastāv abās tabulās.
Tomēr vērtības null un 4 netika iekļautas, jo nulles vērtība pastāv tikai studentu tabulā, nevis nodaļu tabulā. 4. vērtība pastāv nodaļu tabulā, nevis studentu tabulā.
Tāpēc vērtības NULL un 4 tika ignorētas un netika iekļautas atgrieztajās vērtībās.
IZŅEMOT
Pieņemsim, ka, ja jums ir divi rindu saraksti, saraksts1 un saraksts2, un vēlaties, lai rindas būtu tikai no saraksta1, kuras nav sarakstā2, varat izmantot klauzulu "IZŅEMOT". Klauzula EXCEPT salīdzina abus sarakstus un atgriež tās rindas, kas pastāv list1 un nepastāv list2.
Piemērs
Šajā vaicājumā mēs atlasīsim DepartmentId vērtības, kas pastāv nodaļu tabulā un studentu tabulā nepastāv:
Atlasiet DepartmentId NO departamentiemIZŅEMOTATLASIET katedras ID no studentiem;
Tas jums dos:
Vaicājums atgriež tikai vērtību 4. Kura ir vienīgā vērtība, kas pastāv nodaļu tabulā un neeksistē studentu tabulā.
NULL apstrāde
Vērtība " NULL " ir īpaša vērtība SQLite. To lieto, lai attēlotu vērtību, kas nav zināma vai kuras nav. Ņemiet vērā, ka nulles vērtība ir pilnīgi atšķirīga no vērtības " 0 " vai tukša "". Tā kā 0 un tukšā vērtība ir zināma vērtība, nulles vērtība nav zināma.
NULL vērtībām nepieciešama īpaša apstrāde SQLite, mēs tagad redzēsim, kā rīkoties ar NULL vērtībām.
Meklējiet NULL vērtības
Lai meklētu nulles vērtības, nevar izmantot parasto vienlīdzības operatoru (=). Piemēram, šāds vaicājums meklē studentus, kuriem ir nulles DepartmentId vērtība:
ATLASIET * NO studentiem, kur DepartmentId = NULL;
Šis vaicājums nedos rezultātu:
Tā kā NULL vērtība nav vienāda ar nevienu citu vērtību, kas pati par sevi ietver nulles vērtību, tāpēc tā neatgrieza rezultātu.
- Tomēr, lai vaicājums darbotos, jums ir jāizmanto operators "IS NULL", lai meklētu nulles vērtības šādi:
ATLASIET * NO studentiem, kur katedra ir NULL;
Tas jums dos:
Vaicājums atgriezīs tos studentus, kuriem ir nulles DepartmentId vērtība.
- Ja vēlaties iegūt vērtības, kas nav nulles, jums jāizmanto šāds operators " IS NOT NULL ":
ATLASIET * NO studentiem, kur katedra nav pilnīga;
Tas jums dos:
Vaicājums atgriezīs tos studentus, kuriem nav NULL DepartmentId vērtības.
Nosacīti rezultāti
Ja jums ir vērtību saraksts un vēlaties izvēlēties kādu no tām, pamatojoties uz dažiem nosacījumiem. Lai to varētu atlasīt, šīs konkrētās vērtības nosacījumam jābūt patiesam.
CASE izteiksme novērtēs šo nosacījumu sarakstu visām vērtībām. Ja nosacījums ir patiess, tas atgriezīs šo vērtību.
Piemēram, ja jums ir sleja "Novērtējums" un vēlaties atlasīt teksta vērtību, pamatojoties uz pakāpes vērtību, rīkojieties šādi:
- "Teicami", ja atzīme ir augstāka par 85.
- "Ļoti labi", ja atzīme ir no 70 līdz 85.
- "Labi", ja atzīme ir no 60 līdz 70.
Tad jūs varat izmantot izteiksmi CASE, lai to izdarītu.
To var izmantot, lai definētu kādu loģiku klauzulā SELECT, lai jūs varētu atlasīt noteiktus rezultātus atkarībā no noteiktiem nosacījumiem, piemēram, if utasítás.
Operatoru CASE ar dažādām sintaksēm var definēt šādi:
- Varat izmantot dažādus nosacījumus:
LIETAKAD nosacījums1 TAD rezultāts1KAD nosacījums2 TAD rezultāts2KAD nosacījums3 TAD rezultāts3 ... Cits rezultātsnBEIGT
- Vai arī varat izmantot tikai vienu izteicienu un izvēlēties dažādas iespējamās vērtības:
CASE izteiksmeKAD vērtība1 TAD rezultāts1KAD vērtība2 TAD rezultāts2KAD vērtība3 TAD rezultāts3 ... VĒL atkārtotiBEIGT
Ņemiet vērā, ka ELSE klauzula nav obligāta.
Piemērs
Šajā piemērā mēs lietosim CASE izteiksmi ar NULL vērtību nodaļas Id slejā studentu tabulā, lai parādītu tekstu “No Department” šādi:
SELECTStudenta vārds,LIETAKAD departaments ir NULL, tad "nav nodaļas"ELSE departamentsEND AS departamentsNO studentiem;
- Operators CASE pārbaudīs, vai DepartmentId vērtība ir nulle vai nē.
- Ja tā ir NULL vērtība, tā DepartmentId vērtības vietā izvēlēsies burtisko vērtību 'No Department'.
- Ja tā nav nulles vērtība, tā atlasīs kolonnas DepartmentId vērtību.
Tas dos jums izvadi, kā parādīts zemāk:
Kopēja tabulas izteiksme
Parastās tabulas izteiksmes (CTE) ir apakškomisijas, kas definētas SQL priekšrakstā ar noteiktu vārdu.
Tam ir priekšrocība salīdzinājumā ar apakškomektoriem, jo tas ir definēts ārpus SQL priekšrakstiem un atvieglos vaicājumu lasīšanu, uzturēšanu un izpratni.
Kopēju tabulas izteiksmi var definēt, liekot klauzulu WITH SELECT priekšrakstu priekšā šādi:
AR CTEnameAS(SELECT paziņojums)Šeit atlasiet, atjauniniet, ievietojiet vai atjauniniet paziņojumu no CTE
" CTEname " ir jebkurš nosaukums, ko varat piešķirt CTE, varat to izmantot, lai atsauktos uz to vēlāk. Ņemiet vērā, ka CTE varat definēt paziņojumu SELECT, UPDATE, INSERT vai DELETE
Tagad aplūkosim klauzulā SELECT piemēru, kā izmantot CTE.
Piemērs
Šajā piemērā mēs definēsim CTE no priekšraksta SELECT, un pēc tam to vēlāk izmantosim citam vaicājumam:
AR visiem departamentiemAS(Atlasiet DepartmentId, DepartmentNameNO departamentiem)SELECTs.StudentId,s.StudentName,a. Departamenta nosaukumsNO studentiem, sINNER JOIN AllDepartments AS a ON s.DepartmentId = a.DepartmentId;
Šajā vaicājumā mēs definējām CTE un piešķirām tam nosaukumu " AllDepartments ". Šis CTE tika definēts no SELECT vaicājuma:
Atlasiet DepartmentId, DepartmentNameNO departamentiem
Tad pēc CTE definēšanas mēs to izmantojām SELECT vaicājumā, kas nāk pēc tā.
Ņemiet vērā, ka kopējās tabulas izteiksmes neietekmē vaicājuma izvadi. Tas ir veids, kā definēt loģisku skatu vai apakšvaicājumu, lai tos atkārtoti izmantotu tajā pašā vaicājumā. Parastās tabulas izteiksmes ir kā mainīgais, kuru jūs deklarējat, un atkārtoti izmantojat to kā apakšvaicājumu. Tikai SELECT priekšraksts ietekmē vaicājuma iznākumu.
Šis vaicājums jums dos:
Papildu vaicājumi
Papildu vaicājumi ir tie vaicājumi, kas satur sarežģītus savienojumus, apakšvaicājumus un dažus apkopojumus. Šajā sadaļā mēs redzēsim izvērsta vaicājuma piemēru:
Kur mēs
- Katedras nosaukumi ar visiem katras nodaļas studentiem
- Studentu vārds atdalīts ar komatu un
- Parāda katedru, kurā ir vismaz trīs studenti
SELECTd. Departamenta nosaukums,COUNT (s.StudentId) StudentsCount,GROUP_CONCAT (StudentName) AS StudentiNO departamentiem AS dIEKŠĒJAIS PIEVIENOŠANĀS Studenti KAD s ONDepartmentId = d.DepartmentIdGRUPA PĒC d. Departamenta nosaukumsAR SKAITS (s.StudentId)> = 3;
Mēs pievienojām klauzulu JOIN, lai iegūtu Departamentu nosaukumu no tabulas Departments. Pēc tam mēs pievienojām klauzulu GROUP BY ar divām apkopošanas funkcijām:
- "COUNT", lai uzskaitītu studentus katrai nodaļas grupai.
- GROUP_CONCAT, lai apvienotu studentus katrai grupai ar komatiem, kas atdalīti vienā virknē.
- Pēc GROUP BY mēs izmantojām klauzulu HAVING, lai filtrētu nodaļas un atlasītu tikai tās nodaļas, kurās ir vismaz 3 studenti.
Rezultāts būs šāds:
Kopsavilkums:
Šis bija ievads par SQLite vaicājumu rakstīšanu un datu bāzes vaicāšanas pamatiem un to, kā jūs varat filtrēt atgrieztos datus. Tagad varat rakstīt savus SQLite vaicājumus.