logo

Vues SQL

Vues en SQL sont une sorte de table virtuelle. Une vue comporte également des lignes et des colonnes comme des tableaux, mais une vue ne stocke pas les données sur le disque comme une table. View définit une requête personnalisée qui récupère les données d'une ou plusieurs tables et représente les données comme si elles provenaient d'une source unique.

Nous pouvons créer une vue en sélectionnant des champs dans une ou plusieurs tables présentes dans la base de données. Une vue peut contenir toutes les lignes d'un tableau ou des lignes spécifiques en fonction de certaines conditions.

Dans cet article, nous découvrirons la création, la mise à jour et la suppression de vues dans SQL.



D base de données emo SQL

Nous les utiliserons deux tables SQL pour des exemples.

Détails de l'étudiant

Tableau Étudiant

Notes des étudiants

Notes des élèves du tableau

Vous pouvez créer ces tables sur votre système en écrivant la requête SQL suivante :

MySQL
-- Create StudentDetails table CREATE TABLE StudentDetails (  S_ID INT PRIMARY KEY,  NAME VARCHAR(255),  ADDRESS VARCHAR(255) ); INSERT INTO StudentDetails (S_ID, NAME, ADDRESS) VALUES  (1, 'Harsh', 'Kolkata'),  (2, 'Ashish', 'Durgapur'),  (3, 'Pratik', 'Delhi'),  (4, 'Dhanraj', 'Bihar'),  (5, 'Ram', 'Rajasthan'); -- Create StudentMarks table CREATE TABLE StudentMarks (  ID INT PRIMARY KEY,  NAME VARCHAR(255),  Marks INT,  Age INT ); INSERT INTO StudentMarks (ID, NAME, Marks, Age) VALUES  (1, 'Harsh', 90, 19),  (2, 'Suresh', 50, 20),  (3, 'Pratik', 80, 19),  (4, 'Dhanraj', 95, 21),  (5, 'Ram', 85, 18);>

CRÉER DES VUES en SQL

Nous pouvons créer une vue en utilisant CRÉER UNE VUE déclaration. Une vue peut être créée à partir d'une seule table ou de plusieurs tables.

Syntaxe

  CREATE VIEW   view_name AS   SELECT   column1, column2.....   FROM   table_name   WHERE   condition;>

Paramètres:

  • nom_vue : Nom de la vue
  • nom de la table : Nom de la table
  • condition : Condition pour sélectionner des lignes

Exemples d'instructions SQL CREATE VIEW

Examinons quelques exemples d'instruction CREATE VIEW en SQL pour mieux comprendre comment créer des vues en SQL.

Exemple 1 : Création d'une vue à partir d'une seule table

Dans cet exemple, nous allons créer une vue nommée DetailsView à partir de la table StudentDetails. Requête:

  CREATE VIEW   DetailsView   AS    SELECT   NAME, ADDRESS   FROM   StudentDetails   WHERE   S_ID <5;>

Pour voir les données dans la vue, nous pouvons interroger la vue de la même manière que nous interrogeons une table.

  SELECT   *   FROM   DetailsView;>

Sortir:

créer des exemples de vues

Exemple 2 : Créer une vue à partir d'une table

Dans cet exemple, nous allons créer une vue nommée StudentNames à partir de la table StudentDetails. Requête:

  CREATE VIEW   StudentNames   AS    SELECT   S_ID, NAME   FROM   StudentDetails   ORDER BY   NAME;>

Si nous interrogeons maintenant la vue comme,

  SELECT   *   FROM   StudentNames;>

Sortir:

afficher la sortie

Exemple 3 : Création d'une vue à partir de plusieurs tables

Dans cet exemple, nous allons créer une vue nommée MarksView à partir de deux tables StudentDetails et StudentMarks. Pour créer une vue à partir de plusieurs tables, nous pouvons simplement inclure plusieurs tables dans l'instruction SELECT. Requête:

  CREATE VIEW   MarksView AS   SELECT   StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS   FROM   StudentDetails, StudentMarks   WHERE   StudentDetails.NAME = StudentMarks.NAME;>

Pour afficher les données de View MarksView :

  SELECT   *   FROM   MarksView;>

Sortir:

afficher la sortie

LISTE DE TOUTES LES VUES DANS UNE BASE DE DONNÉES

Nous pouvons lister View en utilisant le AFFICHER LES TABLEAUX COMPLETS déclaration ou en utilisant le table information_schema . Une vue peut être créée à partir d'une seule table ou de plusieurs tables.

Syntaxe

  USE   'database_name';   SHOW FULL   TABLES   WHERE   table_type LIKE '%VIEW';>

Utiliser information_schema

lire les fichiers json
  SELECT   table_name   FROM   information_schema.views   WHERE   table_schema = 'database_name';  OR    SELECT   table_schema, table_name, view_definition   FROM   information_schema.views   WHERE   table_schema = 'database_name';>

SUPPRIMER LES VUES en SQL

SQL nous permet de supprimer une vue existante. Nous pouvons supprimer ou supprimer View en utilisant le Instruction DROP .

Syntaxe

  DROP VIEW   view_name;>

Exemple

Dans cet exemple, nous supprimons la vue MarksView.

  DROP VIEW   MarksView;>

MISE À JOUR DE LA VUE en SQL

Si vous souhaitez mettre à jour les données existantes dans la vue, utilisez l'option MISE À JOUR déclaration.

Syntaxe

  UPDATE   view_name   SET   column1 = value1, column2 = value2...., columnN = valueN   WHERE   [condition];>

Note: Toutes les vues ne peuvent pas être mises à jour à l'aide de l'instruction UPDATE.

Si vous souhaitez mettre à jour la définition de la vue sans affecter les données, utilisez l'option CRÉER OU REMPLACER UNE VUE déclaration. vous pouvez utiliser cette syntaxe

  CREATE OR REPLACE   VIEW view_name   AS    SELECT   column1, column2, ...   FROM   table_name   WHERE   condition;>

Règles pour mettre à jour les vues dans SQL :

Certaines conditions doivent être remplies pour mettre à jour une vue. Si l'une de ces conditions est pas rencontré, la vue ne peut pas être mise à jour.

  1. L'instruction SELECT utilisée pour créer la vue ne doit pas inclure de clause GROUP BY ou ORDER BY.
  2. L'instruction SELECT ne doit pas contenir le mot clé DISTINCT.
  3. La vue doit avoir toutes les valeurs NOT NULL.
  4. La vue ne doit pas être créée à l'aide de requêtes imbriquées ou de requêtes complexes.
  5. La vue doit être créée à partir d'une seule table. Si la vue est créée à l'aide de plusieurs tables, nous ne serons pas autorisés à mettre à jour la vue.

Exemples

Examinons différents cas d'utilisation pour mettre à jour une vue dans SQL. Nous couvrirons ces cas d'utilisation avec des exemples pour mieux comprendre.

Exemple 1 : mettre à jour la vue pour ajouter ou remplacer un champ de vue

Nous pouvons utiliser le CRÉER OU REMPLACER UNE VUE instruction pour ajouter ou remplacer des champs à partir d’une vue.

Si nous voulons mettre à jour la vue Affichage des marques et ajoutez le champ AGE à cette vue de Notes des étudiants Tableau, nous pouvons le faire par :

  CREATE OR REPLACE VIEW   MarksView AS   SELECT   StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE   FROM   StudentDetails, StudentMarks   WHERE   StudentDetails.NAME = StudentMarks.NAME;>

Si nous récupérons maintenant toutes les données de MarksView sous la forme :

  SELECT   *   FROM   MarksView;>

Sortir:

créer ou remplacer un exemple de vue

Exemple 2 : Mettre à jour la vue pour insérer une ligne dans une vue

Nous pouvons insérer une ligne dans une vue de la même manière que dans un tableau. Nous pouvons utiliser le INSÉRER DANS instruction de SQL pour insérer une ligne dans une vue.

Dans l'exemple ci-dessous, nous allons insérer une nouvelle ligne dans la View DetailsView que nous avons créée ci-dessus dans l'exemple de création de vues à partir d'une seule table.

  INSERT INTO   DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>

Si nous récupérons maintenant toutes les données de DetailsView,

  SELECT   *   FROM   DetailsView;>

Sortir:

insérer une ligne dans l'exemple de vue

Exemple 3 : Supprimer une ligne d'une vue

Supprimer des lignes d'une vue est aussi simple que supprimer des lignes d'une table. Nous pouvons utiliser l'instruction DELETE de SQL pour supprimer des lignes d'une vue. De plus, la suppression d'une ligne d'une vue supprime d'abord la ligne de la table réelle et la modification est ensuite reflétée dans la vue.

Dans cet exemple, nous supprimerons la dernière ligne de la vue DetailsView que nous venons d'ajouter dans l'exemple d'insertion de lignes ci-dessus.

  DELETE FROM   DetailsView   WHERE   NAME='Suresh';>

Si nous récupérons maintenant toutes les données de DetailsView,

  SELECT   *   FROM   DetailsView;>

Sortir:

supprimer une ligne de l'exemple de vue

AVEC OPTION DE CHÈQUE Clause

Le AVEC OPTION CHÈQUE La clause SQL est une clause très utile pour les vues. Cela s’applique à une vue pouvant être mise à jour.

La clause WITH CHECK OPTION est utilisée pour empêcher la modification des données (à l'aide de INSERT ou UPDATE) si la condition de la clause WHERE de l'instruction CREATE VIEW n'est pas satisfaite.

Si nous avons utilisé la clause WITH CHECK OPTION dans l'instruction CREATE VIEW et si la clause UPDATE ou INSERT ne satisfait pas aux conditions, elles renverront une erreur.

AVEC OPTION DE CHECK Exemple de clause :

Dans l'exemple ci-dessous, nous créons un View SampleView à partir de la table StudentDetails avec une clause WITH CHECK OPTION.

  CREATE VIEW   SampleView AS   SELECT   S_ID, NAME   FROM   StudentDetails   WHERE   NAME IS NOT NULL   WITH CHECK OPTION  ;>

Dans cette vue, si nous essayons maintenant d'insérer une nouvelle ligne avec une valeur nulle dans la colonne NOM, cela générera une erreur car la vue est créée avec la condition pour la colonne NOM comme NON NULL. Par exemple, bien que la vue puisse être mise à jour, la requête ci-dessous pour cette vue n'est pas non plus valide :

  INSERT INTO   SampleView(S_ID)   VALUES  (6);>

NOTE  : La valeur par défaut de la colonne NOM est nul .

palindrome en java

Utilisations d'une vue

Une bonne base de données doit contenir des vues pour les raisons données :

  1. Restreindre l’accès aux données – Les vues offrent un niveau supplémentaire de sécurité des tables en limitant l'accès à un ensemble prédéterminé de lignes et de colonnes d'une table.
  2. Masquage de la complexité des données – Une vue peut masquer la complexité qui existe dans plusieurs tables jointes.
  3. Simplifiez les commandes pour l’utilisateur – Les vues permettent à l'utilisateur de sélectionner des informations dans plusieurs tables sans qu'il soit nécessaire de savoir réellement comment effectuer une jointure.
  4. Stocker les requêtes complexes – Les vues peuvent être utilisées pour stocker des requêtes complexes.
  5. Renommer les colonnes – Les vues peuvent également être utilisées pour renommer les colonnes sans affecter les tables de base, à condition que le nombre de colonnes affichées doit correspondre au nombre de colonnes spécifié dans une instruction select. Ainsi, renommer permet de masquer les noms des colonnes des tables de base.
  6. Fonction de visualisation multiple – Différentes vues peuvent être créées sur la même table pour différents utilisateurs.

Points clés à retenir sur les vues SQL

  • Les vues en SQL sont une sorte de table virtuelle.
  • Les champs d'une vue peuvent provenir d'une ou de plusieurs tables.
  • Nous pouvons créer une vue à l'aide de l'instruction CREATE VIEW et supprimer une vue à l'aide de l'instruction DROP VIEW.
  • Nous pouvons mettre à jour une vue à l'aide de l'instruction CREATE OR REPLACE VIEW.
  • La clause WITH CHECK OPTION est utilisée pour empêcher l’insertion de nouvelles lignes qui ne satisfont pas à la condition de filtrage de la vue.