1 of 37

Tehnici avansate pentru

dezvoltarea aplicațiilor mobile

SQL

2 of 37

Persistența datelor

  • Stocarea datelor pe dispozitiv
  • Datele nu sunt pierdute la închiderea aplicațiilor
  • Datele descărcate de pe Internet nu sunt pierdute
  • Fișiere sau bază de date

SQL

2

3 of 37

SQLite

  • SQL - Structured Query Language
    • Operații de inserare, citire, modificare, ștergere
  • SQLite
    • Bază de date relațională
    • Bibliotecă C lightweight
    • Folosește SQL pentru a interacționa cu datele
  • Stocarea datelor din aplicațiile Android

SQL

3

4 of 37

NoSQL

  • Baze de date relationale
    • organizate în tabele, coloane și rânduri
    • ex. SQLite

  • Baze de date NoSQL
    • organizate similar cu JSON
    • perechi cheie - valoare imbricate
    • ex. Redis, Cloud Firestore

SQL

4

5 of 37

Tipuri de date

  • Tipuri de date SQLite mapate pe cele din Kotlin

  • Schema = tabelele și coloanele acestora

SQL

5

6 of 37

Interogarea Select

SQL

6

7 of 37

Select - exemple

SQL

7

8 of 37

Select - funcții de agregare

  • Funcții de agregare
    • Fac calcule pe o anumită coloană
    • Întorc o singură valoare pentru o coloana specifică
    • COUNT(), SUM(), AVG(), MIN(), MAX()
    • Nu e nevoie să citim toate datele => eficiență

SQL

8

9 of 37

Select - funcții de agregare

SQL

9

10 of 37

Select - filtrarea duplicatelor

  • DISTINCT pentru eliminarea duplicatelor
    • Obținem doar valorile unice din coloană

SQL

10

11 of 37

Select - filtrarea duplicatelor

SQL

11

12 of 37

Select - filtrarea duplicatelor

  • Putem folosi DISTINCT împreună cu o funcție de agregare
    • Funcția se aplică doar pe valorile unice din coloană

SQL

12

13 of 37

Select - filtrarea duplicatelor

SQL

13

14 of 37

Select - clauza WHERE

  • Modalitate de a filtra datele după anumite condiții
  • Verificare booleană pentru fiecare rând
    • Dacă e true atunci rândul e inclus în rezultat

SQL

14

15 of 37

Select - clauza WHERE

SQL

15

16 of 37

Select - clauza WHERE

SQL

16

17 of 37

Select - clauza WHERE

SQL

17

18 of 37

Select - clauza LIKE

  • Căutarea unui anumit string pe o coloană

SQL

18

19 of 37

Select - clauza LIKE

SQL

19

20 of 37

Select - clauza LIKE

SQL

20

21 of 37

Gruparea rezultatelor

  • GROUP BY
    • toate liniile care au aceeași valoare pentru o anumită coloană sunt grupate împreună
    • nu modifică rezultatele ci doar ordinea
    • se adaugă unei interogări SELECT

SQL

21

22 of 37

Gruparea rezultatelor

  • Grupare + funcție de agregare
    • partitiona rezultatul unei funcții de agregare în diferite categorii (buckets)

SQL

22

23 of 37

Sortarea rezultatelor

  • ORDER BY
    • sortarea rezultatelor interogării
    • se adaugă unei interogări SELECT
    • în mod implicit ordine ascendentă
    • DESC - ordine descendentă
    • GROUP BY înainte de ORDER BY

SQL

23

24 of 37

Sortarea rezultatelor

SQL

24

25 of 37

Limitarea numărului de rezultate

  • LIMIT
    • returnarea unui număr limitat de rânduri
    • OFFSET - număr de rânduri de sărit
    • LIMIT după ORDER BY

SQL

25

26 of 37

Limitarea numărului de rezultate

SQL

26

27 of 37

Select - toate clauzele

SQL

27

28 of 37

Insert

  • INSERT INTO - adăugarea unui nou rând în tabel
  • VALUES - specifică lista valorilor pentru fiecare coloană
  • Valorile în aceeași ordine cu coloanele

SQL

28

29 of 37

Insert - exemplu

  • NULL pentru coloana id => următorul întreg disponibil (generat automat)
  • CURRENT_TIMESTAMP => timpul curent în UTC

SQL

29

30 of 37

Update

  • UPDATE - actualizarea unei sau mai multor coloane
  • Clauza SET urmată de coloana de actualizat

SQL

30

31 of 37

Update

  • Putem actualiza mai multe coloane

SQL

31

32 of 37

Update

  • Clauza WHERE pentru a selecta rândurile de modificat

SQL

32

33 of 37

Update - exemplu

SQL

33

34 of 37

Delete

  • DELETE - ștergerea unuia sau mai multor rânduri
  • FROM - specifică tabela
  • WHERE - condiția care selectează rândurile de șters

SQL

34

35 of 37

Delete - exemplu

SQL

35

36 of 37

Bibliografie

SQL

36

37 of 37

Cuvinte cheie

  • SQL
  • SQLite
  • NOSQL
  • SELECT
  • Funcții de agregare
  • Filtrarea duplicatelor
  • WHERE
  • LIKE
  • GROUP BY
  • ORDER BY
  • LIMIT
  • INSERT
  • UPDATE
  • DELETE

SQL

37

37