Oprettelse af SQL VIEWS: Forklaret trin-for-trin

Vi bruger SQL eller Structured Query Language til at kommunikere med en relationel database og skabe SQL-visninger.

Hvad er SQL-visninger? De er virtuelle tabeller, der kombinerer og gemmer data fra faktiske databasetabeller, som du opretter. Til gengæld får du sikker og forenklet adgang til dit datasæt, mens du skjuler de underliggende tabelstrukturer og implementeringer.

Så hvordan virker dette? Du ved allerede, at SQL-forespørgsler bruges til at oprette SQL-visninger. Når SQL-visningen oprettes, gemmes den underliggende SQL-forespørgsel. Når du bruger en SQL-forespørgsel til at slå data op fra flere tabeller, udføres forespørgslen og hjælper med at hente data fra tilsvarende databasetabeller. På samme måde, når du forespørger i en oprettet SQL-visning, hentes den lagrede forespørgsel først og udføres derefter.

Hvordan er det nyttigt at oprette SQL-visninger?

Da SQL-visninger understøttes af lagrede SQL-forespørgsler, hjælper de med at gøre din database sikker. De forenkler også komplekse forespørgsler og øger din forespørgselsydeevne, blandt andre fordele. Lad os se, hvordan oprettelse af SQL-visninger kan være gavnligt for din database og dine applikationer:

#1. Giver databasesikkerhed

SQL-visninger fungerer som virtuelle tabeller og skjuler strukturerne i de faktiske databasetabeller. Så bare ved at se på en visning, er det ikke muligt at vide, hvor mange tabeller der er, og hvad er de forskellige kolonner i tabellen. Derudover kan du tilføje adgangskontrolbegrænsninger til din database, så en bruger kun kan forespørge i visningen og ikke de faktiske tabeller.

  Sådan installeres RAM på bundkortet på din pc

#2. Forenkler komplekse forespørgsler

Ofte spænder dine SQL-forespørgsler på tværs af flere tabeller med komplekse joinbetingelser. Hvis du bruger så komplekse forespørgsler ofte, kan du udnytte styrken ved at skabe SQL-visninger. Du kan gemme din komplekse forespørgsel i din SQL-visning. Med dette kan du blot forespørge i visningen i stedet for at skulle køre hele den komplekse forespørgsel.

#3. Afbøder mod skemaændring

Hvis dine underliggende tabelstrukturer ændres, såsom tilføjelse eller fjernelse af kolonner, forbliver dine visninger upåvirkede. Hvis du stoler på dine SQL-visninger for alle dine forespørgsler, behøver du ikke bekymre dig om skemaændringen. Som virtuelle tabeller vil din oprettede SQL-visning fortsætte med at fungere problemfrit.

#4. Forbedrer forespørgselsydeevne

Når du opretter SQL-visninger, optimerer databasemotoren den underliggende forespørgsel, før den gemmer dem. En lagret forespørgsel kører hurtigere end at køre den samme forespørgsel direkte. Brug af SQL-visninger til at forespørge om dine data giver dig således bedre ydeevne og hurtigere resultater.

Hvordan opretter man SQL-visninger?

Til oprettelse af SQL-visninger kan du bruge CREATE VIEW-kommandoen. En visning indeholder en SELECT-sætning. Dette giver den forespørgsel, der vil blive gemt i visningen. Syntaksen er som følger:

CREATE VIEW view_name AS 
SELECT 
  column_1, 
  column_2, 
  column_3...
FROM 
  table_name_1, table_name_2
WHERE 
  condition_clause

Lad os forstå dette ved at bruge et eksempel. Overvej, at du har oprettet to tabeller afdeling og medarbejder. Afdelingen har afdelingens navn og dens ID. I overensstemmelse hermed indeholder medarbejdertabellen medarbejderens navn og ID sammen med ID for den afdeling, de tilhører. Du skal bruge disse to tabeller til at oprette din SQL-visning.

Opret dine databasetabeller

department_iddepartment_name1Finance2Teknologi3BusinessTabel 1: afdeling

Hvis du bruger MySQLkan du oprette denne tabel ved hjælp af følgende forespørgsel:

CREATE TABLE `department` (
  `department_id` int,
  `department_name` varchar(255),
  PRIMARY KEY (`department_id`)
);

Indsæt data i den tabel, du har oprettet ved hjælp af nedenstående SQL:

INSERT INTO department VALUES (1, 'Finance');
INSERT INTO department VALUES (2, 'Technology');
INSERT INTO department VALUES (3, 'Business');

medarbejder_iemployee_namedepartment_id100John3101Mary1102Natalya3103Bruce2Tabel 2: medarbejder

  Juster disse 12 Gmail-indstillinger for at få den bedste oplevelse

Med afdelingstabellen klar og udfyldt med data, opret medarbejdertabellen ved hjælp af nedenstående MySQL-forespørgsel:

CREATE TABLE `employee` (
  `employee_id` INT, 
  `employee_name` VARCHAR(255), 
  `department_id` INT, 
  FOREIGN KEY (`department_id`) REFERENCES department(department_id)
);

Indsæt derefter medarbejderposterne i din tabel. Husk på, at da afdeling_id-kolonnen har en fremmednøglereference med afdelingstabellen, kan du ikke indsætte et afdelings_id, der ikke er til stede i den anden tabel.

INSERT INTO employee VALUES (100, 'John', 3);
INSERT INTO employee VALUES (101, 'Mary', 1);
INSERT INTO employee VALUES (102, 'Natalya', 3);
INSERT INTO employee VALUES (103, 'Bruce', 1);

Forespørg i dine databasetabeller

Lad os bruge tabellerne i en databaseforespørgsel. Overvej det tilfælde, hvor du skal forespørge efter medarbejder_id, medarbejder_navn og afdelingsnavn for alle medarbejdere. I dette tilfælde skal du bruge begge tabeller og forbinde dem ved hjælp af den fælles kolonne, som er afdeling_id. Din forespørgsel bliver således:

SELECT
  employee_id,
  employee_name,
  department_name
FROM 
  employee,
  department
WHERE 
  employee.department_id = department.department_id;

Opret din SQL-visning

Nu kan det ske, at du ofte slår op eller refererer til disse data. Ud over dette ville din forespørgselstid over tid, med flere poster i dine tabeller, begynde at stige. I et sådant scenarie kan du oprette den SQL-visning, der svarer til denne forespørgsel.

Brug følgende forespørgsel til at oprette en visning med navnet medarbejderinfo:

CREATE VIEW employee_info AS 
SELECT
  employee_id,
  employee_name, 
  department_name 
FROM 
  employee, 
  department 
WHERE 
  employee.department_id = department.department_id;

Med denne visning på plads, kan du direkte forespørge det samme. Din forespørgsel er derfor forenklet til:

SELECT 
  * 
FROM 
  employee_info;

Forespørgsel i SQL-visningen giver dig det samme output som at køre din oprindelige forespørgsel. Din forespørgsel er dog nu nem at vedligeholde. Visningen skjuler kompleksiteten af ​​din forespørgsel uden at gå på kompromis med resultatet eller ydeevnen.

  De 17 dyreste NFT'er nogensinde

Hvordan erstatter jeg SQL-visninger?

Hvis du har en visning med et bestemt navn, og du vil ændre eller erstatte den, skal du bruge kommandoen CREATE OR REPLACE VIEW. Ved at bruge dette kan du ændre SELECT-sætningen, der blev brugt til at oprette visningen. Derfor erstattes dit visningsoutput, mens visningsnavnet holdes intakt. Derudover opretter du en ny SQL-visning, hvis den ikke eksisterer.

Du kan erstatte SQL-visninger ved hjælp af følgende syntaks:

CREATE OR REPLACE VIEW view_name AS 
SELECT 
  new_column_1, 
  new_column_2, 
  new_column_3 ...
FROM 
  new_table_name_1, 
  new_table_name_2 ...
WHERE 
  new_condition_clause

Det kan du bedre forstå med et eksempel. Overvej afdelingen og medarbejdertabellerne. Der oprettes en SQL-visning medarbejderinfo ud fra dem, som indeholder kolonnerne medarbejder_id, medarbejdernavn og afdelingsnavn.

I betragtning af sikkerhedsmæssige bekymringer vil du måske have medarbejder-id’et fjernet fra denne visning. Derudover vil du også gerne ændre kolonnenavnene for at skjule de faktiske databasekolonner. Du kan foretage disse ændringer i den eksisterende visning ved hjælp af følgende SQL-forespørgsel:

CREATE OR REPLACE VIEW employee_info AS
SELECT
  employee_name as name,
  department_name as department
FROM
  employee,
  department
WHERE
  employee.department_id = department.department_id;

Når visningen er blevet erstattet, vil du få andre resultater, når du bruger den samme forespørgsel, som du brugte før. For eksempel vil du i forespørgselsresultatet opdage, at en af ​​kolonnerne er blevet slettet. Derudover er kolonnenavnene ændret fra medarbejdernavn og afdelingsnavn til henholdsvis navn og afdeling.

Udnyt styrken ved at oprette SQL-visninger

Oprettelse af SQL-visninger vil ikke kun give dig forenklede forespørgsler og hurtigere dataopslag, men også sikkerhed og beskyttelse mod skemaændringer. Oprettelse af SQL-visninger er ret ligetil. Du kan tage enhver eksisterende forespørgsel, du har, og gøre den til en SQL-visning.

Brug trin-for-trin guiden ovenfor til at oprette SQL-visninger og udnytte deres fordele. Med SQL-visninger kan du gøre dine databaseapplikationer enkle og sikre og samtidig øge deres ydeevne.

Hvis du vil administrere din egen SQL-server, så kig på SQL Server Management Studio (SSMS).