SQL - créationDéfinitions

On va maintenant se focaliser sur l'implantation de l'algèbre relationnelle dans un langage pratique nommé SQL.
Vous allez voir qu'on va sacrément se faciliter la tâche.

Plus de distinction entre schéma de relation et relation, on parle maintenant de table. Avouez que ça rend mieux?
Une table SQL n'est pas un ensemble de tuples, mais un multi-ensemble de tuples, principalement pour des raisons d'efficacité (coût engendré par les tris pour supprimer les doublons). Ca veut dire quoi? si on retrouve deux fois la même valeur dans une requête, alors elle ressortira deux fois, tout simplement.

Pour utiliser des bases de données en informatique, on va faire du SQL.
Ca veut dire Structured Query Language.

Ce langage peut être vu comme une surcouche syntaxique de l'algèbre relationnelle avec des différences notoires comme par exemple la gestion de multi-ensembles au lieu des ensembles comme en algèbre (c'est ce que je vous ai dit juste avant).
Alors SQL, c'est un langage, mais rappelez-vous, on utilise des SGBD, et chaque SGBD est spécifique, et a ses propres extensions. Il faut donc le prendre en compte. Mais une fois de plus, rien d'insumontable ici, rassurez-vous.
Le standard actuel est le SQL2. Il a été adopté en 1992. Ca fait un paquet de temps et c'est toujours valable, preuve que c'est quand même robuste!

Définition d'une base de données

Dans ce cours, on va travailler en utilisant le SGBD mysql.
Il en existe plein d'autres, PostgreSQL, Oracle, MSSql, Access .
Donc ce que je vais vous passer derrière sont des commandes mysql. Si vous voulez par exemple les commandes postgresql, il suffit de me le demander.

Connexion à un serveur de bases de données

  1. mysql -u User -h Serveur -pMotDePasse nomBase
  2. mysql> use nomBase; # permet de choisir une base
  3. mysql> describe ma_table; # permet de connaître les attributs d'une table
  4. mysql> create database nomBase; # permet de créer une base
  5. mysql> show tables; # permet de voir la liste des tables
  6. mysql> create table ma_table(...)# Création d'une table
  7. mysql> alter table ma_table ...# Mise à jour d'une table
  8. mysql> drop table ma_table;# Suppression d'une table
  9. mysql> insert into ma_table ...;# Insertion d'une ligne
  10. mysql> update ma_table ...;# Modification d'une ligne
  11. mysql> delete from ma_table ...;# Suppression d'une ligne
Avec quelques paramètres à expliquer quand même:
User: nom d’utilisateur
Serveur: adresse du serveur
MotDePasse: mot de passe de l’utilisateur
nomBase: base à laquelle on veut se connecter

Je vous rappelle le principe en SQL : Table = relation + schéma de relation. Autre principe de base, qui est le même que dans de très nombreux autres langages, chaque requête se termie obligatoirement par un ;.