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

Notes des étudiants

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:

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:

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:

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.
- L'instruction SELECT utilisée pour créer la vue ne doit pas inclure de clause GROUP BY ou ORDER BY.
- L'instruction SELECT ne doit pas contenir le mot clé DISTINCT.
- La vue doit avoir toutes les valeurs NOT NULL.
- La vue ne doit pas être créée à l'aide de requêtes imbriquées ou de requêtes complexes.
- 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:

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:

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:

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 :
- 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.
- Masquage de la complexité des données – Une vue peut masquer la complexité qui existe dans plusieurs tables jointes.
- 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.
- Stocker les requêtes complexes – Les vues peuvent être utilisées pour stocker des requêtes complexes.
- 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.
- 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.