« SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à MySQL » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 189 :
}}
 
==Ma première base de données==
Pour nos futurs TP nous allons utiliser la base de données que nous allons fabriquer.
Nous allons enregistrer des CVs dans notre base de données MySQL.
 
===La base de données===
Pour commencer vous allez lire l'[[http://fr.wikiversity.org/wiki/Structured_Query_Language/Introduction|introduction de la leçon sur SQL]].
 
'''Exercice''' : créer la base de données '''moncv''' avec l'interface PhpMyAdmin.
 
===Les tables===
 
Il nous faut 2 tables :
* une table pour enregistrer la liste des CVs
* une autre table pour enregistrer toutes les Experiences de tous les CVs
 
Nous utiliserons pour nos exemples que 2 types de données :
* Integer : nombre entier
* Varchar : chaine de caractères dont le nombre varie avec un maximum définie
* DATE : une date (qui prend cette forme YYYY-MM-DD)
* BOOLEAN : 0(faux) ou 1(vrai)
 
Nous utiliserons l'outil d'auto-incrémenté (AI) qui nous permettra d’auto-incrémenter les identifiants des objets dans la base de données.
 
'''Exercice''' : Créer avec PhpMyAdmin les deux tables suivantes.
 
Table 1 : '''CVs'''
{| class="wikitable"
! scope=row | Nom du champ
! scope=row | Type
! scope=row | Auto-incrémenté
! scope=row | Taille/longueur
|-
| ID
| INT
| AI
|
|-
| nom
| VARCHAR
|
| 25
|-
| prenom
| VARCHAR
|
| 25
|-
| prenom
| VARCHAR
|
| 25
|-
| code_postal
| INTEGER
|
|
|-
| ville
| VARCHAR
|
| 25
|-
| telephone
| VARCHAR
|
| 25
|}
 
 
Table 2 : '''Experiences'''
{| class="wikitable"
! scope=row | Nom du champ
! scope=row | Type
! scope=row | Auto-incrémenté
! scope=row | Taille/longueur
|-
| ID
| INT
| AI
|
|-
| ID_CV
| INT
|
|
|-
| date_debut
| DATE
|
|
|-
| date_fin
| DATE
|
|
|-
| poste
| VARCHAR
|
| 50
|-
| societe
| VARCHAR
|
| 25
|-
| description
| VARCHAR
|
| 200
|-
| mots_cles
| VARCHAR
|
| 100
|-
| poste_actuel
| BOOLEAN
|
|
|}
 
===Contrainte d'intégrité===
La seule façon certaine de distinguer deux CV, c'est leur ID (identification data)
car il peut exister deux CV de la même personne.
Pour convoquer un enregistrement, ou un morceau d'enregistrement, on passera donc toujours par l'ID. Chaque enregistrement a généralement un ID que l'on nomme clé d'enregistrement.
 
La table Expériences, elle aussi a une clé mais elle utilise aussi la clé d'une autre table. On appelle cette autre clé : une clé étrangère.
 
Une clé étrangère peut être vérifier dans MySql. Cela évite de créer des clés étrangères qui ne pointent sur aucun enregistrement ou évite de supprimer des enregistrements dans d'autres tables car leurs clés sont encore utilisées.
 
Exercice : nous allons (a faire)
 
==Enregistrer des données==
 
Nous allons insérer 2 CVs à la main à travers les formulaires de PhpMyAdmin.
 
'''Exercice:''' Insertion de deux CVs
# A gauche dans votre arborescence, sélectionnez la table '''CVs'''.
# Vous devez voir la structure de votre table qui s'affiche sous la forme d'un tableau. Cliquez sur 'Insérer' dans le menu du haut
# Par défaut, PhpMyAdmin vous donne un formulaire d'insertion avec deux entrées.
##Laisser toujours le champ ID vide. Il se remplit automatiquement.
##Et remplissez les champs
#sauvegarder et noter les ID des CVs (normalement 1 et 2)
 
'''Exercice:''' Insertion des expériences
#Créer la table Experiences
#Remplir tous les champs sauf ID
#ID_CV doit correspondre à un ID d'un CV existant dans la table CVs
 
==Exemples de requêtes==
 
Avant de faire les exercices suivants, lire la partie du cours de SQL : [[Structured Query Language/Requêtes SELECT|La requête la plus simple ?]]
 
'''Exercice''' : Ecrire la requête SQL qui récupère le numéro de téléphone du CV qui a l'ID = 2.
{{Solution|contenu=
La requête sera la suivante :
Sélectionne le champ telephone dans la table CVs qui correspond à l'ID 2 :
<source lang="sql">SELECT telephone FROM CVs WHERE ID=2</source>
}}
 
'''Exercice''' : Ecrire la requête SQL qui récupère toutes les infos des personnes hors expériences qui porte le prénom michel ?
{{Solution|contenu=
La requête sera la suivante :
<source lang="sql">SELECT * FROM CVs WHERE prenom=‘‘Michel’’</source>
}}
 
[[Catégorie:SPARQL Protocol and RDF Query Language]]