Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
les_fiches_revisions:bases_de_donnees:sql [2021/12/26 16:16] ma |
les_fiches_revisions:bases_de_donnees:sql [2023/01/18 09:53] hk |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======Langage SQL : requêtes d’interrogation et de mise à jour d’une base de données====== | ======Langage SQL : requêtes d’interrogation et de mise à jour d’une base de données====== | ||
+ | Si vous ne comprenez pas le résumé, cliquez sur la commande qui vous conduira a sa page sur ce wiki. | ||
- | =====I. Création d'une base de donnée (sur DB Browser for SQLite)===== | + | |
+ | =====I. Résumé===== | ||
+ | |||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | CREATE TABLE nom | ||
+ | (attribut1 domaine1, attribut2 domaine2); | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | SELECT attributs | ||
+ | FROM table1 | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | SELECT DISTINCT attribut | ||
+ | FROM nom_table | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | WHERE condition | ||
+ | |||
+ | WHERE condition1 AND condition2 | ||
+ | |||
+ | WHERE condition1 OR condition2 | ||
+ | </ | ||
+ | |||
+ | Rappel: Les // | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | ORDER BY attribut | ||
+ | |||
+ | ORDER BY attribut1, attribut2 | ||
+ | |||
+ | ORDER BY attribut DESC | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | SELECT attributs | ||
+ | FROM table1 | ||
+ | INNER JOIN table2 ON table1.attribut = table2.attribut | ||
+ | </ | ||
+ | |||
+ | **SELECT complexe** - Exemple | ||
+ | <code sql> | ||
+ | SELECT attributs | ||
+ | FROM table1 | ||
+ | INNER JOIN table2 ON table1.attribut = table2.attribut | ||
+ | WHERE condition1 AND (condition2 OR condition3) | ||
+ | ORDER BY table1.attribut, | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | INSERT INTO nom_table | ||
+ | (attribut1, attribut2, attribut3) | ||
+ | VALUES | ||
+ | (" | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | UPDATE nom_table | ||
+ | SET attribut1=" | ||
+ | WHERE condition | ||
+ | </ | ||
+ | |||
+ | [[les_fiches_revisions: | ||
+ | <code sql> | ||
+ | DELETE FROM nom_table | ||
+ | WHERE condition | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====II. Création d'une base de donnée (sur DB Browser for SQLite)===== | ||
- Allumez //DB Browser for SQLite// | - Allumez //DB Browser for SQLite// | ||
Ligne 37: | Ligne 118: | ||
- | =====II. Créer une relation===== | + | =====III. Créer une relation===== |
**CREATE TABLE** est la commande qui permet de créer un relation, en lui attribuant des attributs et leur domaine | **CREATE TABLE** est la commande qui permet de créer un relation, en lui attribuant des attributs et leur domaine | ||
Ligne 62: | Ligne 143: | ||
- | =====III. Visualiser une relation===== | + | =====IV. Visualiser une relation===== |
Ligne 77: | Ligne 158: | ||
</ | </ | ||
- | __Attribut :__ Le nom des attributs qu'il faut affiché\\ | + | __Attribut :explication |
- | Peut également être remplacé par *\\ | + | |
- | Cela montrera toutes les colones de la relation | + | |
__nom_table :__ Le nom de la relation qui sera affiché | __nom_table :__ Le nom de la relation qui sera affiché | ||
Ligne 115: | Ligne 194: | ||
====B) SELECT DISTINCT==== | ====B) SELECT DISTINCT==== | ||
- | |||
- | En rajoutant **DISTINCT** après **SELECT**, on peut éviter d' | ||
===1. Code=== | ===1. Code=== | ||
Ligne 140: | Ligne 217: | ||
====C) WHERE=== | ====C) WHERE=== | ||
- | |||
- | Cette commande rajoute un/des filtre(s) | ||
===1. Code=== | ===1. Code=== | ||
Ligne 166: | Ligne 241: | ||
En utilisant **AND** et **OR** il possible de préciser plusieurs conditions. | En utilisant **AND** et **OR** il possible de préciser plusieurs conditions. | ||
- | |||
- | **AND**\\ | ||
- | Les deux conditions doit être vraie | ||
<code sql> | <code sql> | ||
condition1 AND condition2 | condition1 AND condition2 | ||
</ | </ | ||
- | |||
- | **OR**\\ | ||
- | Soit: | ||
- | Au moins une condition doit être vraie | ||
<code sql> | <code sql> | ||
Ligne 211: | Ligne 279: | ||
====D) ORDER BY==== | ====D) ORDER BY==== | ||
- | |||
- | Permet de mettre de trier le tableau affiché selon les attributs précisé | ||
===1. Code simple=== | ===1. Code simple=== | ||
Ligne 305: | Ligne 371: | ||
Il est possible de joindre deux relations ensemble grâce à **JOIN**.\\ | Il est possible de joindre deux relations ensemble grâce à **JOIN**.\\ | ||
En réalité il y a plusieurs type de jointure possible mais pour le bac on ne voit que **INNER JOIN** | En réalité il y a plusieurs type de jointure possible mais pour le bac on ne voit que **INNER JOIN** | ||
- | |||
- | **INNER JOIN** permet de rajouter une autre table via un attribut.\\ | ||
- | En général une des deux tables aura un clé étrangère qui pourra être relier à la table pour lequel la clé étrangère correspond. | ||
===1. Code=== | ===1. Code=== | ||
Ligne 387: | Ligne 450: | ||
- | =====IV. Modifier une relation===== | + | =====V. Modifier une relation===== |
====A) INSERT==== | ====A) INSERT==== | ||
Ligne 420: | Ligne 483: | ||
</ | </ | ||
- | Cela rajoutera à la relation ceci (visible grace à [[les_fiches_revisions: | + | Cela rajoutera à la relation ceci (visible grace à [[les_fiches_revisions: |
^ id ^ prenom | ^ id ^ prenom | ||
| 1 | | 1 | ||
Ligne 453: | Ligne 516: | ||
Scénario: L' | Scénario: L' | ||
- | Si la relation ABONNEMENT ressemblait à ceci (visible grâce à : [[les_fiches_revisions: | + | Si la relation ABONNEMENT ressemblait à ceci (visible grâce à : [[les_fiches_revisions: |
^ id ^ nom ^ prix ^ durée_mois | ^ id ^ nom ^ prix ^ durée_mois | ||
| 1 | | 1 | ||
Ligne 492: | Ligne 555: | ||
Scénario: Le client //Jean Simon// n'a pas renouvelé son abonnement donc il est supprimé de la relation | Scénario: Le client //Jean Simon// n'a pas renouvelé son abonnement donc il est supprimé de la relation | ||
- | Si la relation ABONNEMENT ressemblait à ceci (visible grâce à : [[les_fiches_revisions: | + | Si la relation ABONNEMENT ressemblait à ceci (visible grâce à : [[les_fiches_revisions: |
^ id ^ prenom | ^ id ^ prenom | ||
| 1 | | 1 | ||
Ligne 523: | Ligne 586: | ||
| 10 | | | 10 | | ||
- | |||
- | =====V. Résumé===== | ||
- | |||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | CREATE TABLE nom | ||
- | (attribut1 domaine1, attribut2 domaine2); | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | SELECT attributs | ||
- | FROM table1 | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | SELECT DISTINCT attribut | ||
- | FROM nom_table | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | WHERE condition | ||
- | |||
- | WHERE condition1 AND condition2 | ||
- | |||
- | WHERE condition1 OR condition2 | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | ORDER BY attribut | ||
- | |||
- | ORDER BY attribut1, attribut2 | ||
- | |||
- | ORDER BY attribut DESC | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | SELECT attributs | ||
- | FROM table1 | ||
- | INNER JOIN table2 ON table1.attribut = table2.attribut | ||
- | </ | ||
- | |||
- | **SELECT complexe** | ||
- | <code sql> | ||
- | SELECT attributs | ||
- | FROM table1 | ||
- | INNER JOIN table2 ON table1.attribut = table2.attribut | ||
- | WHERE condition1 AND (condition2 OR condition3) | ||
- | ORDER BY table1.attribut, | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | INSERT INTO nom_table | ||
- | (attribut1, attribut2, attribut3) | ||
- | VALUES | ||
- | (" | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | UPDATE nom_table | ||
- | SET attribut1=" | ||
- | WHERE condition | ||
- | </ | ||
- | |||
- | [[les_fiches_revisions: | ||
- | <code sql> | ||
- | DELETE FROM nom_table | ||
- | WHERE condition | ||
- | </ |