Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite,...

23
SQLite, Introduction Définition SQLite est un moteur de bases de données libre qui implémente la plus part des fonctionnalités du SQL standard. Il utilise donc la plus part des fonctionnalités de SGBDR C’est le SGBDR embarqué le plus utilisé au monde, il ne nécessite aucune configuration, ni serveur pour fonctionner. Entièrement écrit en C, ce qui le rend très performant. SQLite est également transactionnel, c'est-à-dire qu'il respecte les principes ACID(opération atomique, Cohérence des données, isolement et durable longévité des données). Évidemment, il est public d’où sa popularité.

Transcript of Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite,...

Page 1: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

bull Deacutefinition

SQLite est un moteur de bases de donneacutees libre qui impleacutemente la plus part des fonctionnaliteacutes du SQL standard Il utilise donc la plus part des fonctionnaliteacutes de SGBDR

Crsquoest le SGBDR embarqueacute le plus utiliseacute au monde il ne neacutecessite aucune configuration ni serveur pour fonctionner Entiegraverement eacutecrit en C ce qui le rend tregraves performant

SQLite est eacutegalement transactionnel cest-agrave-dire quil respecte les principes ACID(opeacuteration atomique Coheacuterence des donneacutees isolement et durable rarrlongeacuteviteacute des donneacutees)

Eacutevidemment il est public drsquoougrave sa populariteacute

SQLite Introduction

Avantages

bull Performant

bull Ne neacutecessite pas de serveur de base de donneacutees Les donneacutees tiennent dans un fichier

bull Utilise la plus part des commandes SQL

bull Peut ecirctre utiliseacute comme Bd personnelle ou commerciale (selon la taille)

bull Il est embarqueacute

Inconveacutenients

bull Il est embarqueacute donc leacuteger ce qui veut dire que vous pouvez oublier les proceacutedures et fonctions

bull Si votre BD est assez volumineuse il vaut mieux utiliser un autre SGBD Vous ne pouvez pas faire des jointures agrave ne plus en finir

SQLite Introduction

Installation

Vous pouvez teacuteleacutecharger SQLite agrave lrsquoadresse httpssqliteorgdownloadhtml

Le fichier est sqlite-dll-win64-x64-3140200zip (pour Windows 7 et 10)

Une fois deacute-zipper le dossier va contenir un fichier sqlite3dll qui est votre sqlite

Lorsque vous lancez votre sqlite en mode ligne des commande en tapant sqlite3 vous allez avoir

Pour creacuteer la bd agrave un autre endroit (dossier) que celui par deacutefaut

open cGestionJoueursJoueursdb

SQLite Introduction

SQLite Introduction

On peut retrouver la bd que nous avons creacuteeacutee

SQLite Introduction

On peut eacutegalement utiliser SQLiteBrowser ou DB Browser For Sqlite qui offre une belle interface graphique pour creacuteer et geacuterer votre base de donneacutees (deacutemonstration plus tard)

Vous pouvez eacutegalement utiliser un langage de programmation pour creacuteer directement la BD les tables et en faire la gestion

Exemple avec Java

En Java on utilise le pilote JDBC orgsqliteJDBC avec la meacutethode forName de la classe ClassClassforName(orgsqliteJDBC)

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 2: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Avantages

bull Performant

bull Ne neacutecessite pas de serveur de base de donneacutees Les donneacutees tiennent dans un fichier

bull Utilise la plus part des commandes SQL

bull Peut ecirctre utiliseacute comme Bd personnelle ou commerciale (selon la taille)

bull Il est embarqueacute

Inconveacutenients

bull Il est embarqueacute donc leacuteger ce qui veut dire que vous pouvez oublier les proceacutedures et fonctions

bull Si votre BD est assez volumineuse il vaut mieux utiliser un autre SGBD Vous ne pouvez pas faire des jointures agrave ne plus en finir

SQLite Introduction

Installation

Vous pouvez teacuteleacutecharger SQLite agrave lrsquoadresse httpssqliteorgdownloadhtml

Le fichier est sqlite-dll-win64-x64-3140200zip (pour Windows 7 et 10)

Une fois deacute-zipper le dossier va contenir un fichier sqlite3dll qui est votre sqlite

Lorsque vous lancez votre sqlite en mode ligne des commande en tapant sqlite3 vous allez avoir

Pour creacuteer la bd agrave un autre endroit (dossier) que celui par deacutefaut

open cGestionJoueursJoueursdb

SQLite Introduction

SQLite Introduction

On peut retrouver la bd que nous avons creacuteeacutee

SQLite Introduction

On peut eacutegalement utiliser SQLiteBrowser ou DB Browser For Sqlite qui offre une belle interface graphique pour creacuteer et geacuterer votre base de donneacutees (deacutemonstration plus tard)

Vous pouvez eacutegalement utiliser un langage de programmation pour creacuteer directement la BD les tables et en faire la gestion

Exemple avec Java

En Java on utilise le pilote JDBC orgsqliteJDBC avec la meacutethode forName de la classe ClassClassforName(orgsqliteJDBC)

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 3: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Installation

Vous pouvez teacuteleacutecharger SQLite agrave lrsquoadresse httpssqliteorgdownloadhtml

Le fichier est sqlite-dll-win64-x64-3140200zip (pour Windows 7 et 10)

Une fois deacute-zipper le dossier va contenir un fichier sqlite3dll qui est votre sqlite

Lorsque vous lancez votre sqlite en mode ligne des commande en tapant sqlite3 vous allez avoir

Pour creacuteer la bd agrave un autre endroit (dossier) que celui par deacutefaut

open cGestionJoueursJoueursdb

SQLite Introduction

SQLite Introduction

On peut retrouver la bd que nous avons creacuteeacutee

SQLite Introduction

On peut eacutegalement utiliser SQLiteBrowser ou DB Browser For Sqlite qui offre une belle interface graphique pour creacuteer et geacuterer votre base de donneacutees (deacutemonstration plus tard)

Vous pouvez eacutegalement utiliser un langage de programmation pour creacuteer directement la BD les tables et en faire la gestion

Exemple avec Java

En Java on utilise le pilote JDBC orgsqliteJDBC avec la meacutethode forName de la classe ClassClassforName(orgsqliteJDBC)

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 4: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

SQLite Introduction

On peut retrouver la bd que nous avons creacuteeacutee

SQLite Introduction

On peut eacutegalement utiliser SQLiteBrowser ou DB Browser For Sqlite qui offre une belle interface graphique pour creacuteer et geacuterer votre base de donneacutees (deacutemonstration plus tard)

Vous pouvez eacutegalement utiliser un langage de programmation pour creacuteer directement la BD les tables et en faire la gestion

Exemple avec Java

En Java on utilise le pilote JDBC orgsqliteJDBC avec la meacutethode forName de la classe ClassClassforName(orgsqliteJDBC)

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 5: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

On peut retrouver la bd que nous avons creacuteeacutee

SQLite Introduction

On peut eacutegalement utiliser SQLiteBrowser ou DB Browser For Sqlite qui offre une belle interface graphique pour creacuteer et geacuterer votre base de donneacutees (deacutemonstration plus tard)

Vous pouvez eacutegalement utiliser un langage de programmation pour creacuteer directement la BD les tables et en faire la gestion

Exemple avec Java

En Java on utilise le pilote JDBC orgsqliteJDBC avec la meacutethode forName de la classe ClassClassforName(orgsqliteJDBC)

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 6: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

On peut eacutegalement utiliser SQLiteBrowser ou DB Browser For Sqlite qui offre une belle interface graphique pour creacuteer et geacuterer votre base de donneacutees (deacutemonstration plus tard)

Vous pouvez eacutegalement utiliser un langage de programmation pour creacuteer directement la BD les tables et en faire la gestion

Exemple avec Java

En Java on utilise le pilote JDBC orgsqliteJDBC avec la meacutethode forName de la classe ClassClassforName(orgsqliteJDBC)

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 7: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Vous pouvez acceacuteder agrave la base de donneacutee existante ou en creacuteer une nouvelle Il suffit drsquoutiliser la calsse DriverManager et la meacutethode getConnection()

Dans le code qui suit le programme va creacuteer la base de donneacutees BdChats si celle-ci nrsquoexiste pas

Une fois la BD creacuteeacutee vous pouvez creacuteer les tables et etc

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 8: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction try

ClassforName(orgsqliteJDBC)

Systemoutprintln(Pilote Chargeacute)

catch ( ClassNotFoundException e )

Systemoutprintln(egetMessage())

Systemexit(0)

try

conn = DriverManagergetConnection(jdbcsqliteBdChats)

Systemoutprintln(Bd Creacutee ou Connexion ouverte)

catch (SQLException sed )

Systemoutprintln(sedgetMessage())

Systemexit(0)

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 9: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

String sqlc =create table minou (nom text race text)

String sqli =insert into minou values (remiabyssin)

String sql2 = Select race from minou where nom =remi

Charger le driver puis creacuteer la bd

try

Statement stmc = conncreateStatement()

stmcexecuteUpdate(sqlc)

Statement stmi = conncreateStatement()

stmiexecuteUpdate(sqli)

stm = conncreateStatement()

rst = stmexecuteQuery(sql2)

if (rstnext())

Systemoutprintln(la race est + + rstgetString(1) )

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 10: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Avec C

Pour le projet on ajoute la dll SystemDataSQLitedll puis

using SystemDataSQLite

On creacutee ou on se connecte agrave la BD Chattondsqlite

String chaine = Data Source = Chattonssqlite Version=3

SQLiteConnection conn = new SQLiteConnection()

connConnectionString = chaine

connOpen()

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 11: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

string sql = create table chats (num int primary key autoincrement nom varchar(10))

SQLiteCommand create = new SQLiteCommand(sqlconn)

createExecuteNonQuery()

ConsoleWriteLine(table creacutee)

Les objets drsquoADONET pour Oracle et SQL Server srsquoutilisent aussi avec SQLite

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 12: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Types de donneacutees supporteacutes par SQLite

SQLite ne supporte que 4 types de donneacutees

Mais pour ecirctre compatible avec les autres SGBD SQLite prend en charge le concept Affinity ce qui veut dire que si vous deacuteclareacute une colonne drsquoun type qui nrsquoest pas SQLite alors SQLite lui associe un type parmi ceux qui sont dans le tableau

Type Deacutefinition

NULL Valeur vide

INTEGER Entier signeacute

REAL Nombre reacuteel

TEXT Champ texte

BLOB Champ binaire (image)

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 13: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Laffiniteacute dune colonne est deacutetermineacutee par le type deacuteclareacute de la colonne selon les regravegles suivantes dans lordre indiqueacuteR1 Si le type deacuteclareacute contient la chaine INT alors celui-ci est associeacute agrave un INTEGER

R2 Si le type deacuteclareacute de la colonne contient lune des chaicircnes CHAR CLOB ou TEXT alors le type est associeacute agrave un TEXT (VARCHAR contient la chaine CHAR)

R3 Si le type deacuteclareacute contient la chaine BLOB alors celui-ci est associeacute agrave un BLOB

R4 Si le type deacuteclareacute pour une colonne contient lune des chaicircnes REAL Floa ou DOUB alors le type est associeacute agrave un REAL

R5 dans tous les autre cas le type est associeacute agrave NUMERIC

Source httpwwwsqliteorgdatatype3html

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 14: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction Example Typenames From The

CREATE TABLE Statement

or CAST Expression

Resulting Affinity Rule Used To Determine Affinity

INT

INTEGER

TINYINT

SMALLINT

MEDIUMINT

BIGINT

UNSIGNED BIG INT

INT2

INT8

INTEGER 1

CHARACTER(20)

VARCHAR(255)

VARYING CHARACTER(255)

NCHAR(55)

NATIVE CHARACTER(70)

NVARCHAR(100)

TEXT

CLOB

TEXT 2

BLOB

no datatype specified BLOB 3

REAL

DOUBLE

DOUBLE PRECISION

FLOAT

REAL 4

NUMERIC

DECIMAL(105)

BOOLEAN

DATE

DATETIME

NUMERIC 5

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 15: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Lorsque la base de donneacutees SQLite est embarqueacutee (dans un appareil mobile) alors vous lrsquoavez compris aucune installation suppleacutementaire nrsquoest requise Pour exploiter un BD SQLite deux meacutethodes srsquooffrent agrave nous

bull Une qui utilise surtout la classe SQLiteDatabase (proche de la bd) et celle qui utilise la classe SQLiteOpenHelper et SQLiteDatabase (proche de la programmation)

bull Nous allons aborder la meacutethode qui utilise SQLiteDataBase

bull Cette classe est contenue dans le package

androiddatabasesqliteSQLiteDatabase

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 16: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

La classe SQLiteDatabase Meacutethodes importantes (httpsdeveloperandroidcomreferenceandroiddatabasesqliteSQLiteDatabasehtml

Meacutethodes Rocircles

execSQL(String sql Object[] bindArgs) Execute une instruction SQL qui nrsquoest pas un SELECT (void)

rawQuery(String sql String[] selectionArgs) Execute une requecircte SQL de type SELECT et retourne un ensemble de reacutesultat dans un curseur CURSOR

openOrCreateDatabase(String name intmode CursorFactory factory)

Retourne un SQLiteDatabeLes paramegravetres sont nom pour la base de donneacutees Il Peut ecirctre nullLe Context Mode ici (Context MODE_PRIVATE) qui veut dire que seule votre activiteacute a droit drsquoy acceacuteder Crsquoest le mode par deacutefaut

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 17: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Exemples pour creacuteer la base de donneacutees bd

bd = openOrCreateDatabase(GestionJoueurs ContextMODE_PRIVATEnull)

Apregraves execution nous aurons creacuteeacute notre base de donneacutees bd

Pour creer les tables il suffit drsquoappeler la meacutethode execSQL de la classeSQLiteDatabase

Exemple

bdexecSQL(CREATE TABLE IF NOT EXISTS Joueurs(num integer primary key autoincrement nom VARCHARprenom VARCHAR))

bdexecSQL(INSERT INTO joueurs(nomprenom) VALUES(lsquoPatochersquorsquoAlainrsquo))

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 18: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

La meacutethode rawQuery(String sql String[] selectionArgs) cette meacutethode retourne un curseur apregraves qursquoune requecircte de type SELECT soit passeacutee

Exemple

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

Ou encore

Cursor c = bdrawQuery( SELECT nom prenom FROM joueurs where salaire gt new String[]1000) rarr la liste drsquoarguments est 1 ce qui veut dire qursquoon ramegravene tous les noms et preacutenom dont le salaire est gt 1000

Cursor c =rawQuery(SELECT nom prenom FROM joueurs WHERE codeEquipe = and salaire gt new String[] MTL 2000)

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 19: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

Reacutecupeacuterer le contenu du curseur

Pour reacutecupeacuterer le contenu du curseur on utilise les meacutethode suivantes

moveToFirst () se place au deacutebut du curseur

moveToNext () parcours en avant

moveToPrevious() parcours en arriegravere

moveToLast() se place agrave la fin du curseur

La meacutethode isAfterLast() permet de veacuterifier si la fin du reacutesultat de la requecircte a eacuteteacute atteint

getCount() permet drsquoobtenir le nombre drsquoenregistrements de la requecircte

Cursor fournit les meacutethodes get () par exemple getLong (columnIndex) getString (columnIndex) pour acceacuteder aux donneacutees de lrsquoenregistrement courant Le columnIndex est lrsquoindex de la colonne agrave acceacuteder

Un curseur doit ecirctre fermeacute avec la meacutethode close()

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 20: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction ---------------DeacutebutAfficher TOUT

if(view==btnAffichertout)

Cursor c=bdrawQuery(SELECT FROM Joueursnull)

if(cgetCount()==0)

AfficheMessage(Erreur Aucune donneacutee)

return

StringBuffer buffer=new StringBuffer()

while(cmoveToNext())

bufferappend(Numeacutero +cgetInt(0)+n)

bufferappend(Non +cgetString(1)+n)

bufferappend(Preacutenom +cgetString(2)+n)

cclose()

AfficheMessage(Les joueurs buffertoString())

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 21: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction

public void AfficheMessage(String titreString message)

Builder builder=new Builder(this)

buildersetCancelable(true)

buildersetTitle(titre)

buildersetMessage(message)

buildershow()

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 22: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction Bouton afficher le premier

if(view==btnPremier)

try

c1 = bdrawQuery(SELECT FROM Joueurs null)

if (c1getCount() == 0)

AfficheMessage(Erreur Aucune donneacutee)

return

if(c1moveToFirst())

edtNomsetText(c1getString(1))

dtPrenomsetText(c1getString(2))

fin du try

catch(Exception se)

ToastmakeText(MainActivitythis message+ segetMessage()toString() ToastLENGTH_LONG)show()

Fin du premier

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

Page 23: Sqlite, Introductionsalihayacoub.com/420Ke9/SQLite/SqliteIntroduction.pdf · 2019-11-11 · SQLite, Introduction •Définition SQLite est un moteur de bases de données libre qui

SQLite Introduction bouton suivant

if(view ==btnSuivant)

if(c1moveToNext())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))

if(view ==btnPrecdent)

if(c1moveToPrevious())

edtNomsetText(c1getString(1))

edtPrenomsetText(c1getString(2))