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

MySQL créer une vue, remplacer une vue et supprimer des déclarations de vue avec des exemples

Une vue SQL est une table virtuelle ou un jeu de résultats généré par la requête SELECT. Contrairement aux tables physiques, les vues ne stockent pas de données dans une base de données. Lorsque nous exécutons la requête SELECT pour remplir les données, elle exécute une requête qui crée la vue (définition de la vue).

Qu'est-ce que la vue dans MySQL

Supposons que vous utilisiez une requête SQL complexe qui utilise plusieurs jointures et une logique métier complexe. Vous utilisez fréquemment cette requête dans le code de l'application. Cependant, en raison des besoins de l'entreprise, vous devez modifier cette logique de requête. Les modifications apportées à une requête doivent se refléter dans l'ensemble de l'application.

Dans de tels cas, il est préférable de créer une vue SQL et d'y encapsuler la logique métier. De plus, lorsque nous souhaitons modifier la définition de la requête, nous pouvons modifier la définition de la vue au lieu d'effectuer des modifications dans l'application.

Les vues s'appliquent également pour masquer le nom réel et les détails de la table. Si nous stockons les informations sensibles d'un client dans le tableau et que nous souhaitons afficher uniquement les détails principaux, nous pouvons créer une vue.

Cet article explique le Créer une vue , Remplacer la vue et Déposer la vue utilisation des instructions dans le serveur MySQL.

Exemple Base de données Configuration

Pour la démonstration, j'ai installé MySQL Server et créé une base de données factice nommée EltechDB . Dans cette base de données, j'ai créé une table nommée tblemployee .

La requête suivante crée EltechDB base de données :

Create database EltechDB;

La requête suivante crée un tblemployee tableau :

CREATE TABLE tblemployees (
    emp_no      INT             NOT NULL,
    birth_date  DATE            NOT NULL,
    first_name  VARCHAR(14)     NOT NULL,
    last_name   VARCHAR(16)     NOT NULL,
    gender      ENUM ('M','F')  NOT NULL,    
    hire_date   DATE            NOT NULL,
    PRIMARY KEY (emp_no)
);

J'ai inséré des enregistrements factices dans le tblemployee table en utilisant la requête suivante :

INSERT INTO `EltechDB`.`tblemployees` 
VALUES 
(10001,'1953-09-02','Georgi','Facello','M','1986-06-26'),
(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'),
(10003,'1959-12-03','Parto','Bamford','M','1986-08-28'),
(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01'),
(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12'),
(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02'),
(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10'),
(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15'),
(10009,'1952-04-19','Sumant','Peac','F','1985-02-18'),
(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');

Maintenant, clarifions les instructions pour gérer les vues MySQL.

Comment créer une vue dans MySQL

L'instruction Create View crée une nouvelle vue dans une base de données. La syntaxe est la suivante :

Create View view_name
As
Select * from base_table

Ici :

  • view_name est le nom souhaité de la vue.
  • Le sélectionner * de est la requête qui génère la vue en utilisant base_table . La requête est spécifiée après le AS mot-clé.

Exemple de syntaxe de création de vue MySQL

Supposons que nous voulions créer une vue qui remplit la liste des employés. La définition de la vue est la suivante :

Create view vwEmployees
as
select * from tblemployees;

Pour accéder aux données de la vue, nous pouvons utiliser la requête SELECT. Pour afficher les données de vwEmployees , exécutez la requête suivante :

mysql> select * from vwEmployees;

Sortie :

Filtrer les données de la vue à l'aide de la clause WHERE

Nous pouvons filtrer la sortie de la vue à l'aide de la clause WHERE. Dans notre cas, nous voulons récupérer la liste des femmes employés des vwEmployés . La requête est la suivante :

mysql> select * from vwEmployees where gender='F';

Le résultat de la requête est :

Prenons un autre exemple. On veut récupérer la liste des salariés dont le matricule est inférieur à 10005 . La requête est la suivante :

mysql> select * from vwemployees where emp_no<10005;

Résultat de la requête :

Utiliser la fonction d'agrégation sur la vue

Nous pouvons utiliser les fonctions d'agrégation sur la vue.

Ici, nous voulons remplir le nombre d'employés masculins et féminins à partir de vwEmployees Voir. Tout d'abord, nous utilisons la fonction COUNT pour obtenir le nombre d'employés. Ensuite, nous utilisons la clause GROUP BY pour regrouper la sortie en fonction de la colonne gender. La requête est la suivante :

mysql> select gender, count(emp_no)as 'Total Employees' from vwEmployees group by gender;

Résultat de la requête :

Utilisez la fonction date-heure sur la vue

Nous pouvons utiliser la fonction date-heure sur la sortie View. Récupérons la liste des salariés dont l'année d'entrée est supérieure ou égale à 1990. La requête est la suivante :

mysql> select * from vwemployees where Year(hire_date)>=1990;

Résultat de la requête :

Utilisez la fonction Control-Flow sur la vue

Nous pouvons utiliser la fonction CASE ou IF sur la sortie de la vue.

Nous imprimons la valeur du genre dans un format significatif. La sortie de la colonne gender renvoyée par la vue est M ou F. Au lieu d'imprimer M, la requête doit renvoyer Male . De même, au lieu d'afficher le F, la requête doit renvoyer Femme . La requête est la suivante :

mysql> Select first_name, last_name, case when gender='M' then 'Male' when gender ='F' then 'Female' end as 'Gender', hire_date from vwEmployees;

Résultat de la requête :

En savoir plus sur la création d'une vue en SQL.

Remplacer la déclaration de vue

Le REPLACE VIEW est utilisé pour changer la définition d'une vue. Les mots clés CREATE VIEW et REPLACE VIEW sont utilisés ensemble. La syntaxe est la suivante :

Create or replace View view_name
As
Select * from base_table

Ici :

  • Créer ou remplacer la vue : Ces mots clés servent à créer ou à remplacer la vue existante. Lorsque nous exécutons l'instruction de vue create ou replace, MySQL vérifie si elle existe dans la base de données. Si la vue existe, elle modifie la définition de la vue à l'aide de la requête spécifiée après le mot clé AS. Si la vue n'existe pas, elle crée une nouvelle vue à l'aide de la requête spécifiée après le mot-clé AS.
  • view_name est le nom souhaité de la vue.
  • Le sélectionner * de est la requête utilisée pour générer la vue à l'aide de base_table . La requête est spécifiée après le AS mot-clé.

Remarque : Créer ou remplacer des mots-clés de vue créer une nouvelle vue ou modifier la définition de vue existante.

Écrivez le nom de la vue dans ‘database_name’.’view_name’ format . Si vous ne spécifiez pas la base de données, vous risquez de créer la vue dans une autre base de données.

Exemple d'instructions MySQL CREATE View ou MySQL REPLACE View

Nous voulons afficher uniquement le prénom, le nom et le sexe des employés. De plus, nous voulons fournir des noms appropriés aux colonnes. Par exemple, le prénom et nom_de_famille les valeurs des colonnes doivent être combinées et le nom de la colonne doit être le nom de l'employé. La requête SQL doit être la suivante :

mysql> create or replace view vwEmployees(EmployeeName,gender) as select concat(first_name, " ",last_name),gender from tblEmployees; 

Exécutez la requête SELECT suivante pour afficher les données de vwEmployees :

mysql> select * from vwEmployees

Résultat de la requête :

Comme vous pouvez le voir, le first_name et nom_de_famille les valeurs sont combinées dans EmployeeName colonne indiquant que la définition de la vue a été mise à jour.

La déclaration de vue MySQL DROP

Le mot-clé DROP View sert à supprimer la vue de la base de données. La syntaxe est la suivante :

Drop View ‘database_name’.’view_name’

Dans la syntaxe, view_name est le nom de la vue que vous souhaitez supprimer.

Laissons tomber les vwEmployees Afficher à l'aide de l'instruction DROP View. Exécutez la requête suivante :

mysql> DROP VIEW `eltechdb`.`vwemployees`;

Pour vérifier que la vue a bien été supprimée, exécutez la requête suivante :

mysql> SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.tables WHERE TABLE_TYPE LIKE 'VIEW' and table_schema='EltechDB';

Sortie :

La requête n'a renvoyé aucune ligne, indiquant ainsi que la vue a été supprimée.

Résumé

Cet article a expliqué et démontré les vues MySQL et les façons de créer et de gérer ces vues. Il a également clarifié l'utilisation des instructions CREATE VIEW, REPLACE View et DROP View. CREATE View est utilisé pour créer une vue, REPLACE View modifie la définition de la vue et DROP View supprime la vue.