30 SQL užklausų pavyzdžių

30 Sql Uzklausu Pavyzdziu



Visa SQL forma yra struktūrinės užklausos kalba. Tai labai naudinga priemonė norint pasiekti arba keisti duomenų bazės struktūrą ir duomenis. Daugeliui programų reikia duomenų bazės, kad būtų galima nuolat saugoti reikiamus duomenis struktūrizuoto formato duomenų bazėje. MySQL, Oracle, SQL Server ir kt. yra populiarios duomenų bazės, kuriose saugomi programos duomenys. Jie yra būtini norint išmokti SQL pagrindus, norint pasiekti arba keisti duomenų bazės turinį. Pagrindiniai SQL teiginiai MariaDB duomenų bazėje naudojami šioje pamokoje, naudojant 30 SQL užklausų pavyzdžių.

Būtinos sąlygos

Prieš praktikuodami pavyzdžius šioje pamokoje, kartu su klientu turite įdiegti duomenų bazės serverį. Šioje pamokoje naudojamas MariaDB duomenų bazės serveris ir klientas.

1. Norėdami atnaujinti sistemą, paleiskite šias komandas:







$ sudo apt-get atnaujinimas

2. Norėdami įdiegti MariaDB serverį ir klientą, paleiskite šią komandą:



$ sudo apt-get įdiegti mariadb-server mariadb-client

3. Paleiskite šią komandą, kad įdiegtumėte MariaDB duomenų bazės saugos scenarijų:



$ sudo mysql_secure_installation

4. Norėdami iš naujo paleisti MariaDB serverį, paleiskite šią komandą:





$ sudo /etc/init.d/mariadb paleiskite iš naujo

6. Norėdami prisijungti prie MariaDB serverio, paleiskite šią komandą:

$ sudo mariadb -u root -p

SQL užklausų pavyzdžių sąrašas



  1. Sukurkite duomenų bazę
  2. Sukurkite lenteles
  3. Pervardykite lentelės pavadinimą
  4. Pridėkite naują stulpelį prie lentelės
  5. Pašalinkite stulpelį iš lentelės
  6. Įdėkite vieną eilutę į lentelę
  7. Į lentelę įterpkite kelias eilutes
  8. Perskaitykite visus konkrečius lentelės laukus
  9. Išfiltravę duomenis iš lentelės, perskaitykite lentelę
  10. Išfiltravę duomenis pagal Būlio logiką, perskaitykite lentelę
  11. Išfiltravę eilutes pagal duomenų diapazoną, perskaitykite lentelę
  12. Surūšiavęs lentelę pagal konkrečius stulpelius, perskaitykite lentelę.
  13. Perskaitykite lentelę nustatydami alternatyvų stulpelio pavadinimą
  14. Suskaičiuokite bendrą lentelės eilučių skaičių
  15. Skaitykite duomenis iš kelių lentelių
  16. Perskaitykite lentelę sugrupuodami konkrečius laukus
  17. Perskaitykite lentelę praleidę pasikartojančias reikšmes
  18. Perskaitykite lentelę apribodami eilutės numerį
  19. Perskaitykite lentelę pagal dalinę atitiktį
  20. Suskaičiuokite konkretaus lentelės lauko sumą
  21. Raskite didžiausią ir mažiausią konkretaus lauko reikšmes
  22. Perskaitykite duomenis apie konkrečią lauko dalį
  23. Perskaitykite lentelės duomenis po sujungimo
  24. Perskaitykite lentelės duomenis po matematinio skaičiavimo
  25. Sukurkite lentelės vaizdą
  26. Atnaujinkite lentelę pagal konkrečias sąlygas
  27. Ištrinkite lentelės duomenis atsižvelgdami į konkrečias sąlygas
  28. Ištrinkite visus įrašus iš lentelės
  29. Nuleiskite lentelę
  30. Išmeskite duomenų bazę

Sukurkite duomenų bazę

Tarkime, kad turime sukurti paprastą bibliotekų valdymo sistemos duomenų bazę. Norint atlikti šią užduotį, serveryje reikia sukurti duomenų bazę, kurioje būtų kelios reliacinės lentelės. Prisijungę prie duomenų bazės serverio, paleiskite šią komandą, kad sukurtumėte duomenų bazę pavadinimu „biblioteka“ MariaDB duomenų bazės serveryje:

KURTI DUOMENŲ BAZĖ biblioteka;

Išvestis rodo, kad bibliotekos duomenų bazė sukurta serveryje:

Vykdykite šią komandą, kad pasirinktumėte duomenų bazę iš serverio ir atliktumėte įvairių tipų duomenų bazės operacijas:

NAUDOTI biblioteka;

Išvestis rodo, kad pasirinkta bibliotekos duomenų bazė:

Sukurkite lenteles

Kitas žingsnis – sukurti reikiamas lenteles duomenų bazei saugoti duomenis. Šioje pamokos dalyje sukurtos trys lentelės. Tai knygos, nariai ir skolinimo_informacijos lentelės.

  1. Knygų lentelėje saugomi visi su knygomis susiję duomenys.
  2. Narių lentelėje saugoma visa informacija apie narius, kurie skolinasi knygą iš bibliotekos.
  3. Lentelėje skolinimo_informacija saugoma informacija apie tai, kurią knygą kuris narys pasiskolino.

1. Knygos Lentelė

Vykdykite šį SQL sakinį, kad sukurtumėte lentelę pavadinimu „books“ „bibliotekos“ duomenų bazėje, kurioje yra septyni laukai ir vienas pirminis raktas. Čia „id“ laukas yra pirminis raktas, o duomenų tipas yra int. Atributas auto_increment naudojamas lauke „id“. Taigi, šio lauko reikšmė padidinama automatiškai, kai įterpiama nauja eilutė. Varchar duomenų tipas naudojamas kintamo ilgio eilutės duomenims saugoti. Pavadinimo, autoriaus, leidinio ir isbn laukuose saugomi eilutės duomenys. Total_copy ir kainos laukų duomenų tipas yra int. Taigi šiuose laukuose saugomi skaitmeniniai duomenys.

KURTI LENTELĖ knygos (
id INT AUTO_INCREMENT ,
titulą VARCHAR ( penkiasdešimt ) ,
autorius VARCHAR ( penkiasdešimt ) ,
leidinys VARCHAR ( 100 ) ,
isbn VARCHAR ( 30 ) ,
total_copy INT ,
kaina INT ,
PAGRINDINĖ RAKTAS ( id ) ) ;

Išvestis rodo, kad „knygų“ lentelė sėkmingai sukurta:

2. Nariai Lentelė

Vykdykite šį SQL sakinį, kad sukurtumėte lentelę pavadinimu „nariai“ „bibliotekos“ duomenų bazėje, kurioje yra 5 laukai ir vienas pirminis raktas. Lauke „id“ yra atributas „auto_increment“, pvz., lentelėje „knygos“. Kitų laukų duomenų tipas yra varchar. Taigi šiuose laukuose saugomi eilutės duomenys.

KURTI LENTELĖ nariai (
id INT AUTO_INCREMENT ,
vardas VARCHAR ( penkiasdešimt ) ,
adresu VARCHAR ( 200 ) ,
kontaktinis_nr VARCHAR ( penkiolika ) ,
paštu VARCHAR ( penkiasdešimt ) ,
PAGRINDINĖ RAKTAS ( id ) ) ;

Išvestis rodo, kad lentelė „nariai“ sukurta sėkmingai:

3. Skolintis_informacija Lentelė

Vykdykite šį SQL sakinį, kad sukurtumėte lentelę pavadinimu „skolinimo_informacija“ „bibliotekos“ duomenų bazėje, kurioje yra 6 laukai. Čia „id“ laukas yra pirminis raktas, tačiau atributas auto_increment šiam laukui nenaudojamas. Taigi unikali reikšmė į šį lauką įterpiama rankiniu būdu, kai į lentelę įterpiamas naujas įrašas. Laukai book_id ir Member_id yra šios lentelės išoriniai raktai; tai yra pirminis lentelės „knygos“ ir „nariai“ raktas. Laukų skolinimosi_data ir grąžinimo_data duomenų tipas yra data. Taigi šiuose dviejuose laukuose datos reikšmė saugoma formatu „YYYY-MM-DD“.

KURTI LENTELĖ skolintis_informacija (
id INT ,
skolinimosi_data DATA ,
knygos_id INT ,
Vartotojo ID INT ,
grįžimo data DATA ,
STATUSAS VARCHAR ( 10 ) ,
PAGRINDINĖ RAKTAS ( id ) ,
UŽSIENIO RAKTAS ( knygos_id ) NUORODOS knygos ( id ) ,
UŽSIENIO RAKTAS ( Vartotojo ID ) NUORODOS nariai ( id ) ) ;

Išvestis rodo, kad lentelė „browrow_info“ sukurta sėkmingai:

Pervardykite lentelės pavadinimą

Teiginys ALTER TABLE gali būti naudojamas įvairiems tikslams SQL sakiniuose. Vykdykite toliau pateiktą ALTER TABLE teiginį, kad pakeistumėte lentelės „skolinimo_informacija“ pavadinimą į „book_borrow_info“. Tada sakinį SHOW tables galima naudoti norint patikrinti, ar lentelės pavadinimas buvo pakeistas, ar ne.

ALTER LENTELĖ skolintis_informacija PERVARDYTI KAM knyga_skolinti_informacija;
RODYTI LENTELĖS ;

Išvestis rodo, kad lentelės pavadinimas buvo sėkmingai pakeistas, o lentelės skolinimo_informacija pavadinimas pakeistas į book_brow_info:

Pridėkite naują stulpelį prie lentelės

Teiginys ALTER TABLE gali būti naudojamas norint pridėti arba ištrinti vieną ar daugiau stulpelių sukūrus lentelę. Šis sakinys ALTER TABLE prie lentelės narių prideda naują lauką pavadinimu „status“. Teiginys DESCRIBE naudojamas norint parodyti, ar lentelės struktūra buvo pakeista, ar ne.

ALTER LENTELĖ nariai PAPILDYTI STATUSAS VARCHAR ( 10 ) ;
APIBŪDINTI nariai;

Išvestis rodo, kad į lentelę „nariai“ pridedamas naujas stulpelis, kuris yra „statusas“, o lentelės duomenų tipas yra varchar:

Pašalinkite stulpelį iš lentelės

Šis ALTER TABLE teiginys ištrina lauką pavadinimu „status“ iš lentelės „nariai“. Teiginys DESCRIBE naudojamas norint parodyti, ar lentelės struktūra buvo pakeista, ar ne.

ALTER LENTELĖ nariai NULEISTI Stulpelis STATUSAS ;
APIBŪDINTI nariai;

Išvestis rodo, kad stulpelis „statusas“ pašalintas iš lentelės „nariai“:

Įdėkite vieną eilutę į lentelę

Teiginys INSERT INTO naudojamas įterpti į lentelę vieną ar daugiau eilučių. Norėdami įterpti vieną eilutę į lentelę „knygos“, paleiskite šį SQL sakinį. Čia laukas „id“ šioje užklausoje praleidžiamas, nes jis automatiškai įterpiamas į įrašą, kai įterpiamas naujas automatinio padidinimo atributo įrašas. Jei šis laukas naudojamas INSERT sakinyje, reikšmė turi būti NULL.

ĮDĖTI Į knygos ( titulą , autorius , leidinys , isbn , total_copy , kaina )
VERTYBĖS ( „SQL per 10 minučių“ , 'Benas Forta' , „Sams Publishing“ , '784534235' , 5 , 39 ) ;

Išvestis rodo, kad įrašas sėkmingai įtrauktas į „knygų“ lentelę:

Duomenis į lentelę galima įterpti naudojant SET sąlygą, kur kiekviena lauko reikšmė priskiriama atskirai. Vykdykite šį SQL sakinį, kad įterptumėte vieną eilutę į lentelę „nariai“, naudodami INSERT INTO ir SET sąlygas. Šioje užklausoje, kaip ir ankstesniame pavyzdyje, taip pat praleistas laukas „id“ dėl tos pačios priežasties.

ĮDĖTI Į nariai
NUSTATYTI vardas = 'Džonas Sina' , adresu = „34, Dhanmondi 9/A, Daka“ , kontaktinis_nr = „+14844731336“ , paštu = 'john@gmail.com' ;

Išvestis rodo, kad įrašas sėkmingai įtrauktas į narių lentelę:

Paleiskite šį SQL sakinį, kad įterptumėte vieną eilutę į lentelę „book_browrow_info“:

ĮDĖTI Į knyga_skolinti_informacija ( id , skolinimosi_data , knygos_id , Vartotojo ID , grįžimo data , STATUSAS )
VERTYBĖS ( 1 , „2023-03-12“ , 1 , 1 , „2023-03-19“ , 'pasiskolinta' ) ;

Išvestis rodo, kad įrašas įtrauktas į lentelę „book_browrow_info“:

Įdėkite kelias eilutes į lentelę

Kartais vienu metu reikia pridėti daug įrašų naudojant vieną INSERT INTO sakinį. Vykdykite šį SQL sakinį, kad į lentelę „knygos“ įterptumėte tris įrašus naudodami vieną INSERT INTO sakinį. Šiuo atveju sąlyga VALUES naudojama vieną kartą ir kiekvieno įrašo duomenys atskiriami kableliais.

ĮDĖTI Į knygos ( titulą , autorius , leidinys , isbn , total_copy , kaina )
VERTYBĖS
( 'SQL Cookbook (O'Reilly)' , 'Anthony Molinaro' , 'O'Reilly' , '2467777532' , 10 , 49 ) ,
( „SQL užklausos mirtingiesiems“ , 'Jonas Viescas' , 'Addisonas-Veslis' , '673456234' , penkiolika , 35 ) ,
( 'mokytis SQL' , 'Alanas Beaulieu' , 'Penguin Books Ltd' , '534433222' , 12 , Keturi. Penki ) ;

Išvestis rodo, kad į lentelę „knygos“ pridedami trys įrašai:

Perskaitykite visus konkrečius lentelės laukus

SELECT sakinys naudojamas duomenims iš „duomenų bazės“ lentelės nuskaityti. Simbolis „*“ naudojamas visiems lentelės laukams žymėti sakinyje SELECT. Paleiskite šią SQL komandą, kad perskaitytumėte visus knygų lentelės įrašus:

PASIRINKTI * NUO knygos;

Išvestyje rodomi visi knygų lentelės, kurioje yra 4 įrašai, įrašai:

Paleiskite šią SQL komandą, kad perskaitytumėte visus trijų lentelės „nariai“ laukų įrašus:

PASIRINKTI vardas , paštu , kontaktinis_nr NUO nariai;

Išvestyje rodomi visi trijų lentelės „nariai“ laukų įrašai:

Išfiltravę duomenis iš lentelės, perskaitykite lentelę

WHERE sąlyga naudojama duomenims iš lentelės nuskaityti pagal vieną ar daugiau sąlygų. Vykdykite šį SELECT sakinį, kad perskaitytumėte visus lentelės „books“ laukų įrašus, kuriuose autoriaus vardas yra „Jonas Viescas“.

PASIRINKTI * NUO knygos KUR autorius = 'Jonas Viescas' ;

Lentelėje „knygos“ yra vienas įrašas, atitinkantis WHERE sąlygą, kuri rodoma išvestyje:

Išfiltravę duomenis pagal Būlio logiką, perskaitykite lentelę

Būlio AND logika naudojama apibrėžti kelias sąlygas WHERE sąlygoje, kuri grąžina „true“, jei visos sąlygos grąžina „true“. Vykdykite šį SELECT sakinį, kad perskaitytumėte visus lentelės „books“ laukų įrašus, kuriuose lauko total_copy reikšmė yra didesnė nei 10, o kainos lauko vertė mažesnė nei 45, naudodami loginį AND.

PASIRINKTI * NUO knygos KUR total_copy > 10 IR kaina < Keturi. Penki ;

Knygų lentelėje yra vienas įrašas, atitinkantis WHERE sąlygą, kuri rodoma išvestyje:

Būlio OR logika naudojama apibrėžti kelias sąlygas WHERE sąlygoje, kuri grąžina „true“, jei kuri nors iš sąlygų grąžina „true“. Vykdykite šį SELECT sakinį, kad perskaitytumėte visus lentelės „knygos“ laukų įrašus, kuriuose lauko total_copy reikšmė yra didesnė nei 10 arba kainos lauko vertė didesnė nei 40.

PASIRINKTI * NUO knygos KUR total_copy > 10 ARBA kaina > 40 ;

Knygų lentelėje yra trys įrašai, atitinkantys WHERE sąlygą, kuri rodoma išvestyje:

Būlio NOT logika naudojama norint grąžinti klaidingą, kai sąlyga yra teisinga, ir grąžina teisinga, kai sąlyga klaidinga. Vykdykite šį SELECT sakinį, kad perskaitytumėte visus lentelės „books“ laukų įrašus, kuriuose autoriaus lauko reikšmė nėra „Addison-Wesley“.

PASIRINKTI * NUO knygos KUR NE autorius = 'Addisonas-Veslis' ;

Lentelėje „knygos“ yra trys įrašai, atitinkantys WHERE sąlygą, kuri rodoma išvestyje:

Išfiltravę eilutes pagal duomenų diapazoną, perskaitykite lentelę

Sąlyga BETWEEN naudojama duomenų diapazonui iš duomenų bazės lentelės nuskaityti. Vykdykite šį SELECT sakinį, kad perskaitytumėte visus lentelės „knygos“ laukų įrašus, kuriuose kainos lauko reikšmė yra nuo 40 iki 50.

PASIRINKTI * NUO knygos KUR kaina TARP 40 IR penkiasdešimt ;

Knygų lentelėje yra du įrašai, atitinkantys WHERE sąlygą, kuri rodoma išvestyje. Kainų verčių knygos 39 ir 35 neįtraukiamos į rezultatų rinkinį, nes jos nepatenka į diapazoną.

Surūšiavęs lentelę, perskaitykite lentelę

Sąlyga ORDER BY naudojama SELECT sakinio rezultatų rinkiniui rūšiuoti didėjančia arba mažėjančia tvarka. Rezultatų rinkinys pagal numatytuosius nustatymus rūšiuojamas didėjančia tvarka, jei sąlyga ORDER BY naudojama be ASC arba DESC. Šis SELECT sakinys nuskaito surūšiuotus įrašus iš knygų lentelės pagal pavadinimo lauką:

PASIRINKTI * NUO knygos ĮSAKYMAS BY titulas;

Lentelės „Knygos“ pavadinimo lauko duomenys išvestyje rūšiuojami didėjančia tvarka. „SQL mokymosi“ knyga pirmiausia pateikiama abėcėlės tvarka, jei „knygų“ lentelės pavadinimo laukas rūšiuojamas didėjančia tvarka.

Perskaitykite lentelę nustatydami alternatyvų stulpelio pavadinimą

Alternatyvus stulpelio pavadinimas naudojamas užklausoje, kad rezultatų rinkinys būtų lengviau skaitomas. Alternatyvus pavadinimas nustatomas naudojant „AS“ raktinį žodį. Šis SQL sakinys grąžina pavadinimo ir autoriaus laukų reikšmes, nustatydamas alternatyvius pavadinimus.

PASIRINKTI titulą AS 'Knygos pavadinimas'. , autorius AS 'Autoriaus vardas'.
NUO knygos;

Pavadinimo laukas rodomas su alternatyviu pavadinimu, kuris yra „Knygos pavadinimas“, o autoriaus laukas rodomas su alternatyviu pavadinimu, kuris yra „Autoriaus vardas“.

Suskaičiuokite bendrą eilučių skaičių lentelėje

COUNT () yra apibendrinta SQL funkcija, naudojama skaičiuoti bendrą eilučių skaičių pagal konkretų lauką arba visus laukus. Simbolis „*“ naudojamas visiems laukams žymėti, o COUNT (*) – visiems lentelės įrašams skaičiuoti.

Ši užklausa skaičiuoja visus knygų lentelės įrašus:

PASIRINKTI COUNT ( * ) AS „Iš viso knygų“. NUO knygos;

Išvestyje rodomi keturi „knygų“ lentelės įrašai:

Ši užklausa skaičiuoja visas lentelės „nariai“ eilutes pagal lauką „id“:

PASIRINKTI COUNT ( id ) AS „Visas narių skaičius“. NUO nariai;

Lentelėje „nariai“ yra dvi ID reikšmės, kurios atspausdinamos išvestyje:

Skaitykite duomenis iš kelių lentelių

Ankstesni SELECT teiginiai nuskaitė duomenis iš vienos lentelės. Tačiau SELECT teiginys gali būti naudojamas norint gauti duomenis iš dviejų ar daugiau lentelių. Ši SELECT užklausa nuskaito pavadinimo ir autoriaus laukų reikšmes iš lentelės „books“ ir skolinimo_datą iš lentelės „book_browrow_info“.

PASIRINKTI titulą , autorius , skolinimosi_data
NUO knygos , knyga_skolinti_informacija
KUR knygos . id = knyga_skolinti_informacija . knygos_id;

Toliau pateikta produkcija rodo, kad knyga „SQL per 10 minučių“ pasiskolinta du kartus, o knyga „SQL Cookbook (O’Reilly)“ – vieną kartą:

Duomenis galima gauti iš kelių lentelių naudojant skirtingus JOINS tipus, pvz., INNER JOIN, OUTER JOIN ir kt., kurie nėra paaiškinti šioje mokymo programoje.

Perskaitykite lentelę sugrupuodami konkrečius laukus

Sąlyga GROUP BY naudojama įrašams nuskaityti iš lentelės, grupuojant eilutes pagal vieną ar daugiau laukų. Šio tipo užklausa vadinama suvestinės užklausa. Į lenteles turite įterpti kelias eilutes, kad patikrintumėte GROUP BY sąlygos naudojimą. Vykdykite šiuos INSERT sakinius, kad įterptumėte vieną įrašą į lentelę „nariai“, o du – į lentelę „book_browrow_info“.

ĮDĖTI Į nariai
NUSTATYTI vardas = 'Ji Hasan' , adresu = „11/A, Jigatola, Daka“ , kontaktinis_nr = „+8801734563423“ , paštu = „ji@gmail.com“ ;
ĮDĖTI Į knyga_skolinti_informacija ( id , skolinimosi_data , knygos_id , Vartotojo ID , grįžimo data , STATUSAS )
VERTYBĖS ( 2 , „2023-04-10“ , 1 , 1 , „2023-04-15“ , 'Sugrįžo' ) ;
ĮDĖTI Į knyga_skolinti_informacija ( id , skolinimosi_data , knygos_id , Vartotojo ID , grįžimo data , STATUSAS )
VERTYBĖS ( 3 , „2023-05-20“ , 2 , 1 , „2023-05-30“ , 'Paskolintas' ) ;

Įdėję duomenis vykdydami ankstesnes užklausas, paleiskite šį SELECT sakinį, kuris suskaičiuoja bendrą pasiskolintų knygų skaičių ir nario vardą pagal kiekvieną narį naudojant GROUP BY sąlygą. Čia funkcija COUNT() veikia lauke, kuris naudojamas įrašams pergrupuoti naudojant sąlygą GROUP BY. Čia grupavimui naudojamas lentelės „nariai“ laukas book_id.

PASIRINKTI COUNT ( knygos_id ) AS „Iš viso pasiskolinta knyga“. , vardas AS 'Nario vardas'. NUO knygos , nariai , knyga_skolinti_informacija KUR knygos . id = knyga_skolinti_informacija . knygos_id IR nariai . id = knyga_skolinti_informacija . Vartotojo ID GRUPĖ BY knyga_skolinti_informacija . Vartotojo ID;

Knygų, „nariai“ ir „knygų_skolinimo_info“ lentelių duomenimis, „John Sina“ pasiskolino 2 knygas, „Ella Hasan“ – 1 knygą.

Perskaitykite lentelę praleidę pasikartojančias reikšmes

Kartais SELECT sakinio rezultatų rinkinyje generuojami pasikartojantys duomenys, remiantis lentelės duomenimis, kurie yra nereikalingi. Pavyzdžiui, šis SELECT teiginys pateikia pasikartojančius lentelės „book_browrow_info“ duomenų įrašus.

PASIRINKTI vardas , paštu
NUO nariai , knyga_skolinti_informacija
KUR knyga_skolinti_informacija . Vartotojo ID = nariai . id;

Išėjime tas pats įrašas pasirodo du kartus, nes „John Sina“ narys pasiskolino dvi knygas. Šią problemą galima išspręsti naudojant raktinį žodį DISTINCT. Jis pašalina pasikartojančius įrašus iš užklausos rezultato.

Šis SELECT sakinys generuoja unikalius rezultatų rinkinio įrašus iš lentelių „members“ ir „book_browrow_info“, kai užklausoje praleidžiamos pasikartojančios reikšmės, naudojant DISTINCT raktinį žodį.

PASIRINKTI ATSKIRTI vardas , paštu
NUO nariai , knyga_skolinti_informacija
KUR knyga_skolinti_informacija . Vartotojo ID = nariai . id;

Išvestis rodo, kad pasikartojanti reikšmė pašalinta iš rezultatų rinkinio:

Perskaitykite lentelę apribodami eilutės numerį

Kartais reikia nuskaityti konkretų įrašų skaičių nuo rezultatų rinkinio pradžios, rezultatų rinkinio pabaigos arba rezultatų rinkinio vidurio iš duomenų bazės lentelės, apribojant eilutės numerį. Tai galima padaryti įvairiais būdais. Prieš apribodami eilutes, paleiskite šį SQL sakinį, kad patikrintumėte, kiek įrašų yra knygų lentelėje:

PASIRINKTI * NUO knygos;

Išvestis rodo, kad knygų lentelėje yra keturi įrašai:

Šis SELECT sakinys nuskaito pirmuosius du įrašus iš lentelės „knygos“, naudodamas LIMIT sąlygą, kurios vertė yra 2:

PASIRINKTI * NUO knygos LIMIT 2 ;

Nuskaitomi pirmieji du lentelės „knygos“ įrašai, kurie rodomi išvestyje:

FETCH sąlyga yra LIMIT sąlygos alternatyva, o jos naudojimas parodytas kitame SELECT sakinyje. Pirmieji 3 lentelės „knygos“ įrašai gaunami naudojant sąlygą FETCH FIRST 3 ROWS ONLY SELECT sakinyje:

PASIRINKTI * NUO knygos ATSISKAITYTI PIRMAS 3 EILUTĖS TIK ;

Išvestyje rodomi pirmieji 3 „knygų“ lentelės įrašai:

Du įrašai iš 3 rd knygų lentelės eilutės gaunamos vykdant šį SELECT sakinį. Sąlyga LIMIT naudojama su 2, 2 reikšmėmis, kur pirmieji 2 apibrėžia lentelės eilutės, kuri pradedama skaičiuoti nuo 0, pradinę padėtį, o antroji 2 apibrėžia eilučių, kurios pradedamos skaičiuoti nuo pradinės padėties, skaičių.

PASIRINKTI * NUO knygos LIMIT 2 , 2 ;

Atlikus ankstesnę užklausą, pasirodo ši išvestis:

Įrašus iš lentelės pabaigos galima nuskaityti rūšiuojant lentelę mažėjančia tvarka pagal automatiškai padidintą pirminio rakto reikšmę ir naudojant LIMIT sąlygą. Vykdykite šį SELECT sakinį, kuris nuskaito paskutinius 2 įrašus iš „knygų“ lentelės. Čia rezultatų rinkinys rūšiuojamas mažėjančia tvarka pagal lauką „id“.

PASIRINKTI * NUO knygos ĮSAKYMAS BY id DESC LIMIT 2 ;

Paskutiniai du knygų lentelės įrašai rodomi šioje išvestyje:

Perskaitykite lentelę pagal dalinę atitiktį

Sąlyga LIKE naudojama kartu su simboliu „%“, kad būtų galima gauti įrašus iš lentelės dalinio suderinimo būdu. Šis SELECT sakinys ieško įrašų iš lentelės „books“, kur autoriaus lauke reikšmės pradžioje yra „Jonas“, naudojant LIKE sąlygą. Čia simbolis „%“ naudojamas paieškos eilutės pabaigoje.

PASIRINKTI * NUO knygos KUR autorius KAIP 'Jonas%' ;

Lentelėje „knygos“ yra tik vienas įrašas, kuriame yra eilutė „Jonas“ autoriaus lauko reikšmės pradžioje.

Šis SELECT sakinys ieško įrašų iš lentelės „knygos“, kurioje publikacijos lauke reikšmės pabaigoje yra „Ltd“, naudojant sąlygą PATINKA. Čia simbolis „%“ naudojamas paieškos eilutės pradžioje:

PASIRINKTI * NUO knygos KUR leidinys KAIP „%Ltd“ ;

Lentelėje „knygos“ yra tik vienas įrašas, kurio publikacijos lauko pabaigoje yra eilutė „Ltd“.

Šis SELECT sakinys ieško įrašų iš lentelės „knygos“, kurios pavadinimo lauke yra „Užklausos“ bet kurioje vertės vietoje, naudojant LIKE sąlygą. Čia simbolis „%“ naudojamas abiejose paieškos eilutės pusėse:

PASIRINKTI * NUO knygos KUR titulą KAIP „%užklausos%“ ;

Lentelėje „knygos“, kurios pavadinimo lauke yra eilutė „Užklausos“, yra tik vienas įrašas.

Suskaičiuokite konkretaus lentelės lauko sumą

SUM() yra dar viena naudinga SQL agregacinė funkcija, apskaičiuojanti bet kurio lentelės skaitmeninio lauko reikšmių sumą. Ši funkcija turi vieną argumentą, kuris turi būti skaitinis. Šis SQL sakinys apskaičiuoja visų lentelės „books“ kainų lauko, kuriame yra sveikųjų skaičių reikšmės, verčių sumą.

PASIRINKTI SUMA ( kaina ) AS „Visa knygos kaina“.
NUO knygos;

Išvestyje rodoma visų lentelės „knygos“ kainų lauko reikšmių suminė vertė. Keturios kainos lauko reikšmės yra 39, 49, 35 ir 45. Šių reikšmių suma yra 168.

Raskite didžiausią ir mažiausią konkretaus lauko reikšmes

Suvestinės funkcijos MIN() ir MAX() naudojamos norint sužinoti minimalias ir didžiausias konkretaus lentelės lauko reikšmes. Abi funkcijos turi vieną argumentą, kuris turi būti skaitinis. Šis SQL sakinys nustato minimalią kainos reikšmę iš lentelės „knygos“, kuri yra sveikasis skaičius.

PASIRINKTI MIN ( kaina ) AS 'Minimalių išlaidų knyga'. NUO knygos;

Trisdešimt penki (35) yra minimali kainos lauko reikšmė, kuri spausdinama išvestyje.

Šis SQL sakinys nustato maksimalią kainos reikšmę iš lentelės „books“:

PASIRINKTI MAX ( kaina ) AS „Maksimalių išlaidų knyga“. NUO knygos;

Keturiasdešimt devyni (49) yra maksimali kainos lauko vertė, išspausdinta išvestyje.

Perskaitykite konkrečią duomenų dalį arba lauką

Funkcija SUBSTR() naudojama SQL sakinyje norint gauti tam tikrą eilutės duomenų dalį arba konkretaus lentelės lauko reikšmę. Ši funkcija turi tris argumentus. Pirmajame argumente yra eilutės reikšmė arba lentelės, kuri yra eilutė, lauko reikšmė. Antrajame argumente yra pradinės eilutės, kuri gaunama iš pirmojo argumento, padėtis, o šios reikšmės skaičiavimas prasideda nuo 1. Trečiajame argumente yra eilutės, kuri pradedama skaičiuoti nuo pradinės padėties, ilgis.

Šis SELECT sakinys išpjauna ir išspausdina pirmuosius penkis simbolius iš eilutės „Learn SQL Basics“, kur pradinė padėtis yra 1, o ilgis – 5:

PASIRINKTI SUBSTR ( „Sužinokite SQL pagrindus“ , 1 , 5 ) AS „Poeilutės reikšmė“. ;

Pirmieji penki eilutės „Learn SQL Basics“ simboliai yra „Learn“, kuri atspausdinama išvestyje.

Šis SELECT sakinys išpjauna ir atspausdina SQL iš eilutės „Learn SQL Basics“, kurios pradinė padėtis yra 7, o ilgis – 3:

PASIRINKTI SUBSTR ( „Sužinokite SQL pagrindus“ , 7 , 3 ) AS „Poeilutės reikšmė“. ;

Atlikus ankstesnę užklausą, pasirodo ši išvestis:

Šis SELECT sakinys išpjauna ir išspausdina pirmuosius penkis simbolius iš lentelės „nariai“ pavadinimo lauko:

PASIRINKTI SUBSTR ( vardas , 1 , 5 ) AS 'Nario vardas'. NUO nariai;

Išvestyje rodomi pirmieji penki kiekvienos lentelės „nariai“ vardo lauko reikšmės simboliai.

Perskaitykite lentelės duomenis po sujungimo

Funkcija CONCAT() naudojama generuoti išvestį, sujungiant vieną ar daugiau lentelės laukų arba pridedant eilutės duomenis arba konkrečios lentelės lauko reikšmę. Šis SQL sakinys nuskaito lentelės „books“ pavadinimo, autoriaus ir kainos laukų reikšmes, o eilutės „$“ reikšmė pridedama prie kiekvienos kainos lauko reikšmės naudojant CONCAT() funkciją.

PASIRINKTI titulą AS Pavadinimas , autorius AS Autorius , CONCAT ( '$' , kaina ) AS Kaina
NUO knygos;

Kainos lauko reikšmės išspausdinamos išvestyje sujungiant su eilute „$“.

Vykdykite šį SQL sakinį, kad sujungtumėte lentelės „books“ pavadinimo ir autoriaus laukų reikšmes su eilutės „by“ reikšme naudodami CONCAT() funkciją:

PASIRINKTI CONCAT ( titulą , 'pagal' , autorius ) AS 'Knygos pavadinimas su autoriumi'.
NUO knygos;

Atlikus ankstesnę SELECT užklausą, pasirodo ši išvestis:

Perskaitykite lentelės duomenis po matematinio skaičiavimo

Bet koks matematinis skaičiavimas gali būti atliktas renkantis lentelės reikšmes naudojant SELECT sakinį. Paleiskite šį SQL sakinį, kad perskaitytumėte ID, pavadinimą, kainą ir kainos su nuolaida vertę, apskaičiavę 5 % nuolaidą.

PASIRINKTI id , titulą , kaina AS 'Įprasta kaina'. , kaina - ( kaina * 5 / 100 ) AS 'Kaina su nuolaida'.
NUO knygos;

Šioje išvestyje rodoma kiekvienos knygos įprasta kaina ir nuolaida:

Sukurkite lentelės vaizdą

VIEW naudojamas, kad užklausa būtų paprasta ir suteikia papildomos duomenų bazės saugumo. Jis veikia kaip virtuali lentelė, sugeneruota iš vienos ar kelių lentelių. Paprasto ROŽIO kūrimo ir vykdymo metodas, pagrįstas „narių“ lentele, parodytas kitame pavyzdyje. VIEW vykdomas naudojant SELECT sakinį. Šis SQL sakinys sukuria lentelės „nariai“ rodinį su ID, vardo, adreso ir kontakto_no laukais. SELECT sakinys vykdo narys_vaizdą.

KURTI PERŽIŪRĖTI narys_vaizdas AS
PASIRINKTI id , vardas , adresu , kontaktinis_nr
NUO nariai;

PASIRINKTI * NUO narys_žiūra;

Sukūrus ir paleidus rodinį pasirodo ši išvestis:

Atnaujinkite lentelę pagal konkrečias sąlygas

Teiginys UPDATE naudojamas lentelės turiniui atnaujinti. Jei kuri nors UPDATE užklausa vykdoma be WHERE sąlygos, atnaujinami visi užklausoje UPDATE naudojami laukai. Taigi, būtina naudoti teiginį UPDATE su tinkama WHERE sąlyga. Vykdykite toliau pateiktą UPDATE sakinį, kad atnaujintumėte pavadinimą ir contact_no laukus, kur ID lauko reikšmė yra 1. Tada vykdykite teiginį SELECT, kad patikrintumėte, ar duomenys atnaujinti tinkamai, ar ne.

ATNAUJINTI nariai
NUSTATYTI vardas = 'Janifer' , kontaktinis_nr = „+880175621223“
KUR id = 1 ;

PASIRINKTI * NUO nariai;

Ši išvestis rodo, kad sakinys UPDATE sėkmingai įvykdytas. Vardo lauko reikšmė pakeičiama į „Janifer“, o laukas contact_no pakeičiamas į „+880175621223“ įraše, kuriame yra ID reikšmė 1, naudojant užklausą UPDATE:

Ištrinkite lentelės duomenis atsižvelgdami į konkrečias sąlygas

Teiginys DELETE naudojamas konkrečiam arba visam lentelės turiniui ištrinti. Jei kuri nors DELETE užklausa vykdoma be WHERE sąlygos, visi laukai ištrinami. Taigi, būtina naudoti teiginį UPDATE su tinkama WHERE sąlyga. Vykdykite šį DELETE teiginį, kad ištrintumėte visus duomenis iš knygų lentelės, kurioje id reikšmė yra 4. Tada vykdykite teiginį SELECT, kad patikrintumėte, ar duomenys ištrinti tinkamai, ar ne.

IŠTRINTI NUO knygos KUR id = 4 ;
PASIRINKTI * NUO knygos;

Šis išvestis rodo, kad DELETE sakinys sėkmingai įvykdytas. 4 th knygų lentelės įrašas pašalinamas naudojant DELETE užklausą:

Ištrinkite visus įrašus iš lentelės

Vykdykite šį DELETE teiginį, kad ištrintumėte visus įrašus iš lentelės „knygos“, kurioje WHERE sąlyga praleista. Tada vykdykite užklausą SELECT, kad patikrintumėte lentelės turinį.

IŠTRINTI NUO knyga_skolinti_informacija;
PASIRINKTI * NUO knyga_skolinti_informacija;

Ši išvestis rodo, kad „knygų“ lentelė yra tuščia, įvykdžius DELETE užklausą:

Jei kurioje nors lentelėje yra automatinio padidinimo atributas ir visi įrašai yra ištrinti iš lentelės, automatinio padidinimo laukas pradedamas skaičiuoti nuo paskutinio padidėjimo, kai įterpiamas naujas įrašas po to, kai lentelė tuščia. Šią problemą galima išspręsti naudojant TRUNCATE teiginį. Jis taip pat naudojamas ištrinti visus įrašus iš lentelės, tačiau automatinio padidinimo laukas pradedamas skaičiuoti nuo 1, kai ištrinami visi įrašai iš lentelės. TRUNCATE sakinio SQL parodytas taip:

Sutrumpinti knyga_skolinti_informacija;

Nuleiskite lentelę

Vieną ar daugiau lentelių galima atmesti patikrinus arba nepatikrinus, ar lentelė egzistuoja, ar ne. Šie DROP teiginiai ištrina lentelę „book_browrow_info“, o sakinys „SHOW tables“ patikrina, ar lentelė yra serveryje, ar ne.

NULEISTI LENTELĖ knyga_skolinti_informacija;
RODYTI LENTELĖS ;

Išvestis rodo, kad lentelė „book_browrow_info“ yra atmesta.

Lentelę galima išmesti patikrinus, ar ji yra serveryje, ar ne. Paleiskite šį DROP sakinį, kad ištrintumėte knygų ir narių lentelę, jei šios lentelės yra serveryje. Tada sakinys „SHOW tables“ patikrina, ar lentelės yra serveryje, ar ne.

NULEISTI LENTELĖ JEI YRA knygos , nariai;
RODYTI LENTELĖS ;

Ši išvestis rodo, kad lentelės ištrintos iš serverio:

Išmeskite duomenų bazę

Vykdykite šį SQL sakinį, kad ištrintumėte „bibliotekos“ duomenų bazę iš serverio:

NULEISTI DUOMENŲ BAZĖ biblioteka;

Išvestis rodo, kad duomenų bazė yra išjungta.

Išvada

Dažniausiai naudojami SQL užklausų pavyzdžiai MariaDB serverio duomenų bazei kurti, pasiekti, modifikuoti ir ištrinti yra parodyti šioje pamokoje sukuriant duomenų bazę ir tris lenteles. Įvairių SQL teiginių naudojimas paaiškinamas labai paprastais pavyzdžiais, kad naujasis duomenų bazės vartotojas galėtų tinkamai išmokti SQL pagrindus. Čia nenaudojamos sudėtingos užklausos. Nauji duomenų bazės vartotojai galės pradėti dirbti su bet kuria duomenų baze tinkamai perskaitę šią pamoką.