sql >> Database teknologi >  >> RDS >> Mysql

MySQL Opret visning, Erstat visning og slip visningserklæringer med eksempler

En SQL-visning er en virtuel tabel eller et resultatsæt genereret af SELECT-forespørgslen. I modsætning til fysiske tabeller gemmer visninger ikke data i en database. Når vi kører SELECT-forespørgslen for at udfylde dataene, udfører den en forespørgsel, der opretter visningen (Vis definition).

Hvad er View i MySQL

Antag, at du har en kompleks SQL-forespørgsel, der bruger flere joinforbindelser og kompleks forretningslogik. Du bruger ofte denne forespørgsel i applikationskoden. På grund af forretningskrav skal du dog ændre denne forespørgselslogik. Ændringerne i en forespørgsel skal afspejles i hele applikationen.

I sådanne tilfælde er det at foretrække at oprette en SQL-visning og indkapsle forretningslogikken i den. Desuden, når vi ønsker at ændre forespørgselsdefinitionen, kan vi ændre visningens definition i stedet for at foretage ændringer i applikationen.

Visningerne gælder også for at skjule bordets faktiske navn og detaljer. Hvis vi gemmer en kundes følsomme oplysninger i tabellen og kun ønsker at vise de primære detaljer, kan vi oprette en visning.

Denne artikel vil forklare Opret visning , Erstat visning og Drop View sætningsbrug i MySQL-serveren.

Eksempel Database Opsætning

Til demonstrationen har jeg installeret MySQL Server og oprettet en dummy-database ved navn EltechDB . I den database har jeg oprettet en tabel med navnet tblemployee .

Følgende forespørgsel opretter EltechDB database:

Create database EltechDB;

Følgende forespørgsel opretter en medarbejder tabel:

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)
);

Jeg har indsat nogle dummy-poster i medarbejderen tabel ved hjælp af følgende forespørgsel:

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');

Lad os nu præcisere erklæringerne for at administrere MySQL-visningerne.

Sådan opretter du visning i MySQL

Opret visningserklæringen opretter en ny visning i en database. Syntaksen er følgende:

Create View view_name
As
Select * from base_table

Her:

  • visningsnavn er det ønskede navn på visningen.
  • Den vælg * fra er den forespørgsel, der genererer visningen ved hjælp af base_table . Forespørgslen er angivet efter AS søgeord.

Eksempel på MySQL Create View Syntaks

Antag, at vi vil oprette en visning, der udfylder listen over medarbejdere. Definitionen af ​​visningen er følgende:

Create view vwEmployees
as
select * from tblemployees;

For at få adgang til dataene i visningen kan vi bruge SELECT-forespørgslen. For at se data for vwEmployees , kør følgende forespørgsel:

mysql> select * from vwEmployees;

Output:

Filtrer dataene for visningen ved hjælp af WHERE-klausulen

Vi kan filtrere View-outputtet ved hjælp af WHERE-sætningen. I vores tilfælde ønsker vi at hente listen over kvinder medarbejdere fra vwEmployees . Forespørgslen er som følger:

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

Forespørgselsoutputtet er:

Lad os tage et andet eksempel. Vi ønsker at hente listen over de medarbejdere, hvis medarbejdernummer er mindre end 10005 . Forespørgslen er som følger:

mysql> select * from vwemployees where emp_no<10005;

Forespørgselsoutput:

Brug Aggregate-funktionen på visningen

Vi kan bruge de samlede funktioner på View.

Her ønsker vi at udfylde antallet af mandlige og kvindelige medarbejdere fra vwEmployees Udsigt. Først bruger vi COUNT-funktionen til at få optællingen af ​​medarbejdere. Derefter bruger vi GROUP BY-sætningen til at gruppere outputtet baseret på kønskolonnen. Forespørgslen er som følger:

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

Forespørgselsoutput:

Brug dato-tids-funktionen på visningen

Vi kan bruge dato-tid-funktionen på View-output. Lad os hente listen over de medarbejdere, hvis tiltrædelsesår er større eller lig med 1990. Forespørgslen er som følger:

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

Forespørgselsoutput:

Brug Control-Flow-funktionen på visningen

Vi kan bruge CASE- eller IF-funktionen på outputtet af View.

Vi udskriver værdien af ​​kønnet i et eller andet meningsfuldt format. Outputtet af kønskolonnen, der returneres af visningen, er enten M eller F. I stedet for at udskrive M, skal forespørgslen returnere Mand . På samme måde skal forespørgslen i stedet for det udskrevne F returnere Kvinde . Forespørgslen er som følger:

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

Forespørgselsoutput:

Læs mere, hvordan du opretter visning i SQL.

Erstat visningserklæring

REPLACE VIEW bruges til at ændre definitionen af ​​en visning. Nøgleordene CREATE VIEW og REPLACE VIEW bruges sammen. Syntaksen er følgende:

Create or replace View view_name
As
Select * from base_table

Her:

  • Opret eller erstat View: Disse nøgleord tjener til at oprette eller erstatte den eksisterende visning. Når vi kører create eller replace view-sætningen, kontrollerer MySQL, om den findes i databasen. Hvis visningen findes, ændrer den visningsdefinitionen ved hjælp af den forespørgsel, der er angivet efter AS-nøgleordet. Hvis visningen ikke eksisterer, opretter den en ny visning ved hjælp af den forespørgsel, der er angivet efter AS-nøgleordet.
  • visningsnavn er det ønskede navn på visningen.
  • Den vælg * fra er den forespørgsel, der bruges til at generere visningen ved hjælp af base_table . Forespørgslen er angivet efter AS søgeord.

Bemærk: Opret eller erstat visningsnøgleord opret en ny visning, eller skift den eksisterende visningsdefinition.

Skriv visningsnavnet i 'databasenavn'.'visningsnavn' format . Hvis du ikke angiver databasen, kan du ende med at oprette visningen i en anden database.

Eksempel på MySQL CREATE View- eller MySQL REPLACE View-udsagn

Vi ønsker kun at vise medarbejdernes fornavn, efternavn og køn. Vi ønsker også at give passende navne til kolonnerne. For eksempel fornavn og efternavn kolonneværdier skal kombineres, og kolonnenavnet skal være medarbejderens navn. SQL-forespørgslen skal være som følger:

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

Kør følgende SELECT-forespørgsel for at se dataene fra vwEmployees :

mysql> select * from vwEmployees

Forespørgselsoutput:

Som du kan se, er fornavn og efternavn værdier kombineres i EmployeeName kolonne, der angiver, at visningsdefinitionen er blevet opdateret.

MySQL DROP View Statement

Nøgleordet DROP View tjener til at slette visningen fra databasen. Syntaksen er følgende:

Drop View ‘database_name’.’view_name’

I syntaksen, visningsnavn er navnet på den visning, du vil slette.

Lad os droppe vwEmployees Vis ved hjælp af DROP View-erklæringen. Udfør følgende forespørgsel:

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

For at bekræfte, at visningen er blevet slettet, skal du køre følgende forespørgsel:

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

Output:

Forespørgslen returnerede nul rækker, hvilket indikerer, at visningen er blevet slettet.

Oversigt

Denne artikel forklarede og demonstrerede MySQL-visningerne og måderne at skabe og administrere disse visninger på. Det præciserede også brugen af ​​CREATE VIEW-, REPLACE View- og DROP View-sætningerne. CREATE View bruges til at oprette en visning, REPLACE View ændrer visningens definition, og DROP View sletter visningen.


  1. Fejlfinding af CPU-ydeevne på VMware

  2. MariaDB JSON_QUERY() Forklaret

  3. Måder at rette SQL-server på, der er registreret en logisk konsistensbaseret I/O-fejl

  4. MySQL FULDSTÆNDIG JOIN?