Utilisateur:Darkoneko/SQL

Un article de Wikipédia, l'encyclopédie libre.

pour se connecter depuis la console :

mysql tding1 -u (monlogin) -p (monlogin)


SELECT <- projections

FROM <- produits cartésiens

WHERE <- restrictions + critères de jointure

Sommaire

[modifier] Commandes de base

  • show tables : liste les tables de la base
  • desc (table) : décrire une table

[modifier] Mettre des commentaires

#ligne
--ligne

[modifier] le client SQL

/options de la ligne de commande

[modifier] jointures

SELECT ...

FROM table1 A JOIN table2 B

ON A.col2 = B.col3

WHERE ...


LEFT JOIN


RIGHT JOIN

...

[modifier] modification de données

  • INSERT INTO table(col1 col2, col3, col4) VALUES val1, val2, val3, val4;
    il est possible de ne pas préciser les colonnes si elles sont toutes utilisées)
    syntaxe pour rajouter plusieurs lignes : rajouter ,(val1, val2, val3, val4) pour autant de lignes que l'on veut. Note, pas standard, possible que certains SGDB ne reconnaissent pas la commande
  • INSERT INTO table(col1, col2, col3)
SELECT val1, val2, val3
FROM tables
WHERE condition
note : valx est soit une constante, soit un attribut (le nom d'une colonne)

ex ;

INSERT INTO note(numEtudiant, numEpreuve, note)
  SELECT numEtudiant, 10, 14
  FROM etudiant E
  WHERE E.nom LIKE "nomDeFamille" AND E.prenom LIKE "prenom";


  • UPDATE table SET .... WHERE...;
  • DELETE FROM table WHERE condition;

[modifier] Modification de structure

[modifier] créer une table

  • CREATE TABLE table (
attr1 TYPE1 propriete1
attr2 TYPE2 propriete2
attr3 TYPE3 propriete3
attr4 TYPE4 propriete4
.......);

propriétés possibles :

  • PRIMARY KEY +auto_increment (eventuellement)
  • REFERENCES +table(attribut) <-clé étrangère
  • NOT NULL
  • DEFAULT +valeur
  • auto_increment (utilisable uniquement si le champ est clé primaire)

[modifier] faire une cle primaire sur plus attributs

au lieu de l'écrire en ligne, rajouter à la fin de la requête

PRIMARY KEY(attr1, attr2...)

[modifier] detruire une table

DROP TABLE table;

[modifier] modifier la structure

ALTER TABLE table modifications;

  • renommer
  • ajouter, modifier, supprimer un attribut
  • ajouter/supprimer des clefs

[modifier] exemples

ALTER TABLE table
  RENAME nouveauNom;

proprietes : NOT NULL, PRIMARY KEY, etc....
 si NOT NULL, la valeur par defaut est une chaîne vide

ALTER TABLE table
  ADD COLUMN attr type proprietes;

ALTER TABLE table
  ADD COLUMN attr type proprietes AFTER champ; //après un autre champ

ALTER TABLE table
  ADD COLUMN attr type proprietes FIRST; //en premier

ALTER TABLE table
  MODIFY nouvelle definition *complete* d'un attribut;

ALTER TABLE table //permet de changer le nom de l'attribut
  CHANGE nouveauNom type proprietes

ALTER TABLE table //permet de ne pas avoir a repreciser toutes les proprietes
  ALTER attribut SET/DROP DEFAULT value //(ici, juste rajouter/supprimer une valeur par defaut)

ALTER TABLE table //ajouter ou supprimer une cle primaire
  ADD/DROP PRIMARY KEY (attribut)

note : attention, si un champ est auto-increment, il faut enlever cette propriété AVANT d'enlever la clef primaire à ce champ

[modifier] Compléments contraintes d'intégrite

/contraintes integrite