Fiche mémo BDD - Les Vues
Fiche : Fiche mémo BDD - Les Vues. Recherche parmi 300 000+ dissertationsPar kukie • 31 Janvier 2023 • Fiche • 495 Mots (2 Pages) • 247 Vues
// Vue //
On stocke une requête SQL et on appelle la vue directement par son nom.
Utilité
>> Limité les accès aux données
On ne donne qu'accès qu'à une vue qui ne contient que les données que l'on veut.
>> Simplifier l'écriture des requêtes
>> Créer une interface entre la BDD et l'application
SI la structure de la bdd vient à changer il faut réecrire toutes les requêtes alors que si on créee une vue, on change que la vue. (ce sera elle qui sera appellée dans les applications)
CREATE OR REPLACE
ALGORITHM = merge, temptable
VIEW v_nom_vue
AS requete_select ;
Par convention, on préfixe tjrs les noms des vues par "v_"
Pour l'appeler on écrit "SELECT* from v_nom_vue
Pour modifier une vue, alter view n_view as requête :
Pour connaître la struture de la vue :
DESCRIBE v_nom_vue
Limites
La requête ne peut contenir de sous requêtes
Ne peut pas utiliser de variables
On évitera les clauses LIMIT et DISTINCT
Les algorithmes !
Merge
fusionne les deux req et l'exécute directement sur la table, et ne créer pas de table
Temptable
On exécute 2 requête dont une sur une table temporaire, et interroge cette table avec les conditions du select. (table ne possédant pas d'index, donc plus lent)
// Vues matérialisées //
>> Combinent les avantages des vues et des req sur des tables indexées
>> Les données seront stockées dans les vues et non pas seulement la req.
// Les évènements //
Permet de planifier dans le temps l'exécution d'une requête à renouveler de façon périodique.
--- Création d'event ---
* Ils doivent être activés sur le server
* On doit avoir le privilège correspondant
SHOW GLOBAL VARIABLES LIKE 'event_scheduler' ; -- montre l'état de l'event
SET GLOBAL event_scheduler = 1 ; -- active l'event
Création d'event :
CREATE EVENT (if not exists) nom_event
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE ]
[ENABLE | DISABLE ]
[COMMENT 'description de l'event']
DO code_sql ;
[] = falcutatif
ON SCHEDULE AT timestamp
>> permet d'exécuter les instructions en une seule fois à un moment précis
>> désigne un instant t de type timestamp ou datetime
On peut aussi ajouter un intervalle
ON SCHEDULE AT timestamp + INTERVAL valeur MONTH,DAY,HOUR,YEAR
Intervalle régulier
ON SCHEDULE EVERY intervalle
* permet de répérer les instructions de manière récurrente
ex : DAY, MONTH, HOUR, YEAR, MINUTE...
create event test_event
on schedule every 1 month
...