Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
bdenligne [2022/11/17 21:01]
qcbs [Partie 1 - Formulaire HTML]
bdenligne [2024/03/11 16:51] (current)
qcbs [Utilisation de dplyr]
Line 5: Line 5:
 ===== Presentation ===== ===== Presentation =====
  ​[[http://​prezi.com/​tcks6siw8q-u/​introduction-a-la-gestion-des-bases-de-donnees-avec-des-logiciels-libres/​|Lien vers la présentation Prezi]]  ​[[http://​prezi.com/​tcks6siw8q-u/​introduction-a-la-gestion-des-bases-de-donnees-avec-des-logiciels-libres/​|Lien vers la présentation Prezi]]
- 
- ​[[http://​prezi.com/​tcks6siw8q-u/​present/?​auth_key=wt03qbs&​follow=GuillaumeLarocque&​kw=present-tcks6siw8q-u&​rc=ref-19631691|Lien vers la présentation simultanée]] 
  
 ===== Ressources utiles ===== ===== Ressources utiles =====
  
-  * [[http://​www.postgresql.org/​docs/​current/​static/​reference.html|PostgreSQL ​9.6 Reference Manual]]+  * [[http://​www.postgresql.org/​docs/​current/​static/​reference.html|PostgreSQL Reference Manual]]
   * [[http://​link.springer.com/​book/​10.1007%2F978-1-4302-0018-5|Beginning databases with PostgreSQL]]   * [[http://​link.springer.com/​book/​10.1007%2F978-1-4302-0018-5|Beginning databases with PostgreSQL]]
   * [[https://​wiki.postgresql.org/​wiki/​Main_Page|PostgreSQL wiki]]   * [[https://​wiki.postgresql.org/​wiki/​Main_Page|PostgreSQL wiki]]
-  * [[http://www.pgsql.ru/​db/​pgsearch/|PGSearch pour chercher des sites web en lien avec PostgreSQL.]]+  * [[https://www.postgresqltutorial.com/​|PostgreSQL ​Tutorial]] 
 +  * [[https://​mystery.knightlab.com/​|SQL Murder Mystery]]
  
 ====== Installation de PostgreSQL ====== ====== Installation de PostgreSQL ======
Line 185: Line 184:
 ^fonction^description^exemple^ ^fonction^description^exemple^
 |int|integer|5| |int|integer|5|
 +|real|nombre avec précision de 5 décimales|31.65973|
 |decimal(,​)|decimal(longueur totale, nombre de décimales)|122.52| |decimal(,​)|decimal(longueur totale, nombre de décimales)|122.52|
 |varchar()|character(longueur maximale)| '​hirondelle bicolore'​| |varchar()|character(longueur maximale)| '​hirondelle bicolore'​|
 |text|texte d'une longueur non-définie| 'Il était une fois une hirondelle...'​| |text|texte d'une longueur non-définie| 'Il était une fois une hirondelle...'​|
 |timestamp|date et heure| '​2012-10-21 10:​03:​21'​| |timestamp|date et heure| '​2012-10-21 10:​03:​21'​|
 +|date|date seulement| '​2012-10-21'​|
  
 [[http://​www.postgresql.org/​docs/​current/​static/​datatype.html|Liste complète des type de données PostgreSQL.]] ​ [[http://​www.postgresql.org/​docs/​current/​static/​datatype.html|Liste complète des type de données PostgreSQL.]] ​
Line 203: Line 204:
 obs_time timestamp,​espece text,nombre integer,lat real,"​long"​ real); obs_time timestamp,​espece text,nombre integer,lat real,"​long"​ real);
 </​file>​ </​file>​
-Note: nous utilisons les doubles guillements ""​ pour marquer l'​utilisation d'un mot réservé, d'​un ​mot avec des caractères spéciaux ou des espaces dans le nom d'une table ou d'une colonne. ​+Note: nous utilisons les doubles guillements ""​ pour marquer l'​utilisation d'un mot réservé, d'​un ​de caractères spéciaux ou d'espaces dans le nom d'une table ou d'une colonne. ​
  
 Insérer une nouvelle ligne dans la table Insérer une nouvelle ligne dans la table
Line 213: Line 214:
  
 Pour visualiser la table Pour visualiser la table
-<​file>​+<​file ​postgresql>
 SELECT * FROM obs_oiseaux;​ SELECT * FROM obs_oiseaux;​
 </​file>​ </​file>​
Line 243: Line 244:
 tmax_ann DEC(10,2), tmean_an DEC(10,2), vpann_me DEC(10,2)); tmax_ann DEC(10,2), tmean_an DEC(10,2), vpann_me DEC(10,2));
 </​file>​ </​file>​
- 
- 
-++++ MySQL | 
-<​file>​ 
-CREATE TABLE lakes (lake_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,numero INT, lake_name text,  
-province text, latitude DEC(10,​5),​longitude DEC(10,5), number_of_species INT, ecoprov VARCHAR(50), ​ 
-ecozone VARCHAR(50),​ gss DEC(10,​2),​gse DEC(10,2), gsl DEC(10,2), gdd10 DEC(10,2), egdd DEC(10,​2), ​ 
-mean_ele DEC(10,2), pe_ann_p DEC(10,2), totp_ann DEC(10,2), srann_me DEC(10,2), shann_me DEC(10,​2), ​ 
-tmax_ann DEC(10,2), tmean_an DEC(10,2), vpann_me DEC(10,2)); 
-</​file>​ 
-++++ 
  
 Charger le fichier CSV dans cette table. ​ Charger le fichier CSV dans cette table. ​
Line 283: Line 273:
 </​file>​ </​file>​
  
 +==== Importation depuis DBeaver ====
  
-Pour la troisième table: 
  
 +Pour la **troisième table**, nous allons utiliser l'​interface de **DBeaver**. Cliquez avec le bouton de gauche de la souris sur Tables dans Schemas>​public dans le menu de gauche, et sélectionnez Import Data. Cliquez sur Next et choisissez le fichier CSV species_acro.csv sur votre ordinateur. Dans Tables mapping, assurez-vous que le nom de la table, le nom des colonnes et le format des colonnes est adéquat. Après avoir cliqué sur Next à nouveau, cliquez sur Proceed. ​
 +
 +++++ Commande PostgreSQL correspondante |
 <file postgresql>​ <file postgresql>​
 CREATE TABLE species_acro (species_id INT NOT NULL, full_name varchar(100),​ short_name varchar(25));​ CREATE TABLE species_acro (species_id INT NOT NULL, full_name varchar(100),​ short_name varchar(25));​
 COPY species_acro FROM '​C:/​bdlibre/​species_acro.csv'​ WITH csv HEADER DELIMITER AS ',';​ COPY species_acro FROM '​C:/​bdlibre/​species_acro.csv'​ WITH csv HEADER DELIMITER AS ',';​
 </​file>​ </​file>​
 +++++
  
 ===== RÉFÉRENCES ===== ===== RÉFÉRENCES =====
Line 609: Line 603:
  
  
-===== Stylisation avec le CSS ===== 
- 
-[[http://​www.w3schools.com/​cssref/​|Guide de référence CSS]] 
- 
-On peut donner un "​id"​ à n'​importe quel élément html. Important: il ne peut y avoir qu'un id unique par élément 
-<file html> 
-<input type="​text"​ name="​nom_texte"​ id="​nom_texte">​ 
-</​file>​ 
- 
-Et on peut y faire référence dans l'​entête de style css du fichier html avec le dièse "#"​ 
-<file html> 
-<​head>​ 
-<​style>​ 
-#nom_texte { 
- ​width:​300px;​ 
- ​height:​30px;​ 
- ​color:​red;​ 
- ​background-color:#​ffff00;​ 
- ​font-family:​verdana,​arial;​ 
- ​font-size:​14px;​ 
- ​font-weight:​bold;​ 
- ​padding:​0px 5px 0px 5px; #top right bottom left 
-} 
-</​style>​ 
-</​head>​ 
-</​file>​ 
- 
-On peut aussi donner une "​class"​ à n'​importe quel élément html. Cette classe peut se répeter sur plusieurs éléments 
-<file html> 
-<input type="​text"​ name="​nom_texte1"​ class="​classe_texte">​ 
-<input type="​text"​ name="​nom_texte2"​ class="​classe_texte">​ 
-<input type="​text"​ name="​nom_texte3"​ class="​classe_texte">​ 
-</​file>​ 
- 
-Et on peut y faire référence dans l'​entête de style css du fichier html avec le point "​."​ 
-<file html> 
-<​head>​ 
-<​style>​ 
-.classe_texte { 
- ​width:​300px;​ 
- ​height:​30px;​ 
- ​color:​red;​ 
- ​background-color:#​ffff00;​ 
- ​font-family:​verdana,​arial;​ 
- ​font-size:​14px;​ 
- ​font-weight:​bold;​ 
- ​padding:​0px 5px 0px 5px; #top right bottom left 
-} 
-</​style>​ 
-</​head>​ 
-</​file>​ 
  
 ====== Partie 2 - Création de la base de données associée ====== ====== Partie 2 - Création de la base de données associée ======
Line 666: Line 609:
  
  
-====== Partie 3 - Bases du langage PHP ====== 
  
-Tous les fichiers doivent commencer par: 
-<file php> 
-<?php 
-Le code PHP est ici.  
-?> 
-</​file>​ 
  
-Commentaires 
-<file php> 
-<?php 
-// Commentaire sur une ligne 
-/* 
-Section de commentaires 
-*/ 
-?> 
-</​file>​ 
- 
-<file php> 
-<?php 
-// Création de variables 
-$myvar=5; 
-$myvar='​ceci est du texte';​ 
- 
-// Création d'un array 
-$myarray=array('​valeur1','​valeur2','​valeur3'​);​ 
- 
-echo $myarray[0];​ 
-//valeur1 
- 
-$myarray=[];​ 
-$myarray[0]='​valeur1';​ 
-$myarray[1]='​valeur2';​ 
- 
-// Création d'un array "​key-value"​ 
-$myarray=array( 
-'​cle1'​=>'​valeur1',​ 
-'​cle2'​=>'​valeur2',​ 
-'​cle3'​=>'​valeur3',​ 
-); 
- 
-echo $myarray['​cle1'​];​ 
-//valeur1 
-?> 
-</​file>​ 
- 
-Boucles et if/else 
-<file php> 
-<?php 
-if ($f==5){ 
-//Do something 
-}else{ 
-//Do something else 
-} 
- 
-for ($i=0;​$i<​10;​$i++){ 
-echo '​i='​.$i;​ 
-} 
-//i=0 
-//i=1 
-//... 
-//i=9 
- 
- 
-foreach ($myarray as $my){ 
-//Faire quelque chose avec $my 
-?> 
-</​file>​ 
- 
-====== Partie 4 - Insertion dans PostgreSQL via PHP ====== 
- 
-[[http://​php.net/​manual/​en/​book.pgsql.php|Fonctions PostgreSQL dans PHP]] 
- 
-Ce fichier PHP est celui qui est spécifié dans le champ "​ACTION"​ du formulaire html. 
-<file php> 
-<?php 
-// Connexion et sélection de la base de données 
-$dbconn = pg_connect("​host=localhost dbname=base_donnees user=nom_usager password=mot_de_passe"​);​ 
- 
-// L'​array $_POST contient toutes les données du formulaire. Chaque '​clé'​ de cet array correspond au nom donné à chacun des type d'​entrées html.  
-$element1=$_POST['​nom_element1'​];​ 
-$element2=$_POST['​nom_element2'​];​ 
-$element1=pg_escape_string($element1);​ 
-$element2=pg_escape_string($element2);​ 
- 
-// Insertion dans la base de données 
-$query = "​INSERT INTO ma_table (colonne1,​colonne2) VALUES ($element1,​$element2)";​ 
-$result = pg_query($query);​ 
-// Fermer la connexion 
-pg_close($dbconn);​ 
-echo "​Formulaire entré dans la base de données avec succès!";​ 
-?> 
-</​file>​ 
- 
-Accéder à différents types d'​éléments 
-<file php> 
-//Check boxes 
-foreach ($_POST['​checkbox'​] as $check){ 
-   //​Faire quelque chose ici avec $check 
-} 
-//Convertir les valeurs en liste séparée par des virgules 
-$check=implode(',',​$_POST['​checkbox'​]);​ 
- 
-</​file>​ 
- 
- 
-Retrouver des éléments dans la base de données 
-<file php> 
-// Connexion et sélection de la base de données 
-$dbconn = pg_connect("​host=localhost dbname=base_donnees user=nom_usager password=mot_de_passe"​);​ 
-  
-$query="​SELECT * FROM nom_table";​ 
-// Insertion dans la base de données 
-$result = pg_query($query);​ 
-while ($t=pg_fetch_array($result)){ 
- echo $t['​prenom'​].'​ '​.$t['​nom_famille'​];​ 
-} 
- 
-// Fermer la connexion 
-pg_close($dbconn);​ 
-</​file>​ 
 ====== Lier R avec PostgreSQL ====== ====== Lier R avec PostgreSQL ======
  
 Dans R: Dans R:
 lors de la première utilisation seulement : lors de la première utilisation seulement :
-<file rsplus | installer le paquet ​RMySQL>+<file rsplus | installer le paquet ​RPostgreSQL>
 install.packages('​RPostgreSQL'​) install.packages('​RPostgreSQL'​)
 </​file>​ </​file>​
Line 809: Line 632:
 </​file>​ </​file>​
  
-===== Using the dplyr package=====+===== Utilisation de dbplyr + dplyr =====
  
 <file rsplus> <file rsplus>