-
ACID
-
Atomicity
- 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