Database
 sql >> Base de données >  >> RDS >> Database

VUE SQL

Le concept SQL VIEW permet de masquer la difficulté des enregistrements et fournit des limitations d'accès à la base de données.

La vue SQL est similaire aux tables SQL. Dans les tables SQL, nous stockons des données entières dans des lignes et des colonnes. De la même manière, SQL View est également utilisé pour stocker des enregistrements dans des lignes et des colonnes, mais uniquement les données souhaitées par l'utilisateur, pas les données inutiles.

SQL VIEW est une table virtuelle. SQL View permet d'accéder uniquement à des enregistrements de colonnes spécifiques plutôt qu'à l'ensemble des données de la table.

Nous pouvons facilement créer une vue en sélectionnant une ou plusieurs tables à l'aide du mot-clé CREATE VIEW. Nous pouvons également mettre à jour et supprimer la vue.

Dans cet article, nous comprendrons le concept de vue sur la façon de créer une vue, de supprimer une vue et de mettre à jour une vue.

1 CRÉER UNE VUE SQL : -

En SQL, nous pouvons facilement créer une vue en utilisant le mot-clé CREATE VIEW. Nous pouvons créer une vue pour la table unique et la table des multiples.

La syntaxe de CREATE VIEW (table unique)

CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;    

La syntaxe ci-dessus sert à créer une vue à partir d'une seule table. Dans la syntaxe ci-dessus, VIEW_NAME est le nom de la vue pour créer une vue en SQL. Table_name est le nom de la table à partir de laquelle nous allons sélectionner des enregistrements spécifiques, la clause WHERE est facultative dans la requête SQL.

La syntaxe de CREATE VIEW (Multiple Table)

CREATE VIEW VIEW_NAME AS SELECT T1.COLUMN_NAME, T1.COLUMN_NAME2, T2.COLUMN_NAME1, T2.COLUMN_NAME2 FROM T1, T2 WHERE CONDITION;

La syntaxe ci-dessus sert à créer une vue à partir de plusieurs tables. Dans la syntaxe ci-dessus, VIEW_NAME est le nom de la vue pour créer une vue en SQL. T1, T2 est le nom des tables à partir desquelles nous sélectionnerons des enregistrements spécifiques, la clause WHERE est facultative dans la requête SQL.

Considérez les tableaux suivants avec les enregistrements donnés.

Tableau 1 :Emploi

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOÏDA ORACLE 1
1003 NIKHIL VANI 50000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 Bombay TEST 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3
4001 RAJESH GOUD 60500 Bombay TEST 4

Tableau 2 :Responsable.

ID gestionnaire nom_du_responsable manager_department
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FMW
3 Abhishek Manich JAVA
4 Anupam Mishra TEST

Exemples pour CRÉER UNE VUE à partir d'une seule table.

Exemple 1 :Écrivez une requête pour créer une vue avec l'identifiant de l'employé, le prénom, le nom et le salaire de la table Emp.

CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;

Dans la requête ci-dessus, nous avons créé un nom de vue EMPLOYEE_VIEW avec l'identifiant de l'employé, concaténé le prénom et le nom en tant que nom, salaire à partir de la table Emp.

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM ; de la même manière que nous le ferons pour la vue, au lieu du nom de la table, nous utiliserons le nom de la vue.

SELECT * FROM EMPLOYEE_VIEW;

Exemple 2 :Écrivez une requête pour créer une vue avec l'ID du responsable, le nom du responsable et le service de la table des responsables.

CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;

Dans la requête ci-dessus, nous avons créé un nom de vue MANAGER_VIEW avec l'ID du responsable, le nom du responsable et le service de la table du responsable.

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM. Nous utiliserons le nom de la vue. De même, nous ferons pour la vue au lieu du nom de la table.

SELECT * FROM MANAGER_VIEW;

Exemple 3 :Écrivez une requête pour créer une vue avec l'identifiant de l'employé, le prénom, le nom, le salaire, la ville des employés dont le salaire est supérieur à 54 000 et la ville inclut Pune et Mumbai à partir de la table Emp.

CREATE VIEW EMPLOYEE_VIEW1 AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY, CITY FROM EMP WHERE SALARY > 54000 AND  CITY IN (‘PUNE’, ‘MUMBAI’);

Dans la requête ci-dessus, nous avons créé un nom de vue EMPLOYEE_VIEW1 avec l'identifiant de l'employé, concaténé le prénom et le nom en tant que nom, salaire, ville des employés dont le salaire est supérieur à 54000 et nous avons utilisé l'opérateur AND avec la ville incluant Pune et Mumbai de la table Emp .

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM. Nous utiliserons le nom de la vue. De même, nous ferons pour la vue au lieu du nom de la table.

SELECT * FROM EMPLOYEE_VIEW1;

Exemple 4 :Écrivez une requête pour créer une vue avec l'ID du responsable, le nom du responsable et le service des responsables dont le service est « Oracle » et « Java » à partir de la table des responsables.

CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);

Dans la requête ci-dessus, nous avons créé un nom de vue MANAGER_VIEW avec l'ID du responsable, le nom du responsable et le service des responsables dont le service est "Oracle" et "Java" de la table des responsables.

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM. Nous utiliserons le nom de la vue. De même, nous ferons pour la vue au lieu du nom de la table.

SELECT * FROM MANAGER_VIEW1;

Tous les exemples ci-dessus de CREATE VIEW proviennent de tables uniques. Le prochain exemple de CREATE VIEW provient de plusieurs tables.

Considérez les tableaux suivants avec les enregistrements donnés.

Tableau 1 :Emploi

ID EMPLOYEE FIRST_NAME LAST_NAME SALAIRE VILLE DÉPARTEMENT MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOÏDA ORACLE 1
1003 NIKHIL VANI 50000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGAR ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 Bombay TEST 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 Bombay JAVA 3
4001 RAJESH GOUD 60500 Bombay TEST 4

Tableau 2 :Responsable.

ID gestionnaire nom_du_responsable manager_department
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FMW
3 Abhishek Manich JAVA
4 Anupam Mishra TEST

Exemple 1 :Écrivez une requête pour créer une vue avec l'identifiant de l'employé, le nom, la ville, l'identifiant du responsable et le nom du responsable à partir de la table Emp et de la table des responsables.

CREATE VIEW EMP_MAN_VIEW AS SELECT EMP.EMPLOYEEID, CONCAT(EMP.FIRST_NAME, CONCAT(“ ”, EMP.LAST_NAME)) AS NAME, CITY, MANAGER.MANAGERID, MANAGER.MANAGER_NAME FROM EMP, MANAGER WHERE EMP.MANAGERID = MANAGER.MANAGERID;   

Dans la requête ci-dessus, nous avons créé une vue avec l'identifiant de l'employé, le nom, la ville, l'identifiant du responsable et le nom du responsable à partir de la table Emp et de la table Manager.

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM. Nous utiliserons le nom de la vue. De même, nous ferons pour la vue au lieu du nom de la table.

SELECT * FROM EMP_MAN_VIEW;

2 METTRE À JOUR LA VUE SQL : -

L'instruction de mise à jour modifie la table existante et la vue existante dans le SQL. Nous pouvons également insérer de nouvelles données dans la vue existante dans le SQL. En SQL, une vue est modifiée uniquement lorsque les conditions ci-dessous sont remplies. Si l'une des conditions données n'est pas remplie, nous ne pourrons pas modifier la vue.

  • Le mot-clé DISTINCT ne doit pas être utilisé dans l'instruction SELECT.
  • La vue ne doit pas avoir toutes les valeurs NOT NULL.
  • Ne doit pas utiliser les clauses ORDER BY et GROUP BY lors de la création d'une vue dans l'instruction SELECT.
  • Si la vue créée contient des colonnes de la table unique, nous sommes autorisés à modifier la vue. c'est-à-dire que l'utilisation de plusieurs tables dans la vue n'est pas autorisée.
  • La vue ne doit pas être créée à l'aide d'une sous-requête ou inclure des requêtes complexes
  • La vue contient toutes les fonctions d'agrégation SQL ; nous ne sommes pas autorisés à modifier la vue existante.

L'instruction CREATE OR REPLACE VIEW est utilisée pour ajouter de nouveaux champs ou supprimer des champs de la vue.

Syntaxe : 

CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;    

Exemple 1 :écrivez une requête pour mettre à jour Employee_View et ajoutez la colonne Manager Id de la table Emp dans la vue.

CREATE OR REPLACE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT(FIRST_NAME,CONCAT(" ", LAST_NAME)) AS NAME, SALARY, MANAGERID FROM EMP WHERE DEPARTMENT IN ('ORACLE', 'FMW');

La requête ci-dessus modifie la vue Employee_view existante et modifie les enregistrements en fonction de la requête SELECT donnée.

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM. Nous utiliserons le nom de la vue. De même, nous ferons pour la vue au lieu du nom de la table.

SELECT * FROM EMPLOYEE_VIEW;

Exemple 2 :écrivez une requête pour mettre à jour Manager_View.

CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;

La requête ci-dessus modifie la vue Employee_view existante et modifie les enregistrements en fonction de la requête SELECT donnée.

Chaque fois que nous voulons consulter les enregistrements de la table, nous utilisons la requête SELECT * FROM. Nous utiliserons le nom de la vue. De même, nous ferons pour la vue au lieu du nom de la table.

SELECT * FROM MANAGER_VIEW;

Insérer un nouvel enregistrement dans la vue existante

Nous insérons les nouveaux enregistrements dans la table. De la même manière, nous pouvons également l'insérer dans la vue.

Syntaxe

INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);

Exemple :écrivez une requête pour insérer un nouvel enregistrement dans Manager_view.

INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);

Au fur et à mesure que nous insérons de nouveaux enregistrements dans Manager_View. Pour vérifier que de nouvelles données sont insérées ou non, nous utiliserons la requête SELECT :

SELECT * FROM MANAGER_VIEW; 

VUE 3 DROP : -

Nous laissons tomber la table. De la même manière, nous pouvons également supprimer la vue.

Syntaxe :

DROP VIEW VIEW_NAME;

Exemple :écrivez une requête pour supprimer EMP_MAN_VIEW.

DROP VIEW EMP_MAN_VIEW; 

Si nous voulons vérifier si une vue est supprimée ou non, nous utiliserons la requête SHOW TABLES.

SHOW TABLES;

Le nom de la vue EMP_MAN_VIEW n'est pas dans la base de données, ce qui signifie que nous avons réussi à supprimer la vue.