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