1. ACID
    1. Atomicity
      1. tous les effets d'une transaction sont appliqués, ou aucun
    2. Consistency
      1. une transaction est légale seulement si elle respecte si elle respecte les règles d'intégrité de l'utilisateur (NOT NULL, PRIMARY KEY...)
    3. Isolation
      1. les résultats d'une transactions invisibles aux autres transactions tant qu'elle n'est pas terminée
    4. Durability
      1. une fois une transaction terminée, ses résultats sont permanents
  2. contraintes
    1. NOT NULL: valeur exigée
    2. UNIQUE: deux lignes ne peuvent pas avoir la même valeur pour cette colonne (dans certains serveurs, créé automatiquement un index)
    3. PRIMARY KEY: comme UNIQUE mais peut avoir NULL et d'autres tables peuvent référer à cette colonne
    4. CHECK: limiter les valeurs possibles d'une colonne
    5. REFERENCES: les valeurs ne peuvent être que des valeurs présentes dans une colonne PRIMARY KEY d'une autre table; le type de la colonne est automatiquement celui de la colonne référencée
  3. langage déclaratif
    1. deux avantages
      1. les requêtes ne dépendent plus de la représentation des données
      2. plus facile à écrire qu'un langage procédural
  4. tips
    1. SQL string quoting character = ' ; pour avoir un ' dans une string, il faut écrire ''
    2. pour tester si une valeur est NULL : IS NULL (surtout pas = NULL car toute expression NULL est évaluée à NULL)
    3. sélection avec un joker: select * from users where email like '%yahoo.com'
      1. % signifie zéro ou plus caractères, _ signifie exactement un caractère
  5. commandes
    1. voir les bases dans un serveur : show databases;
    2. définir une base sur laquelle les commandes suivantes s'appliqueront : uses db-name;
    3. voir les colonnes d'une table: show columns from table-name;
  6. modélisation des données
    1. quels éléments sont stockés
    2. quelle taille fait chaque élément
    3. quel type d'information contient chaque élément
    4. quels éléments peuvent être vides (NULL) et ce que signifie NULL dans ce cas
    5. quels éléments sont contraints dans un certain espace
    6. comment certaines tables sont liées
  7. logique à trois valeurs : une valeur de colonne peut être vraie, fausse ou NULL