Opprette SQL-VISNINGER: Forklart trinn for trinn

Vi bruker SQL eller Structured Query Language for å kommunisere med en relasjonsdatabase og lage SQL-visninger.

Nå, hva er SQL-visninger? De er virtuelle tabeller som kombinerer og lagrer data fra faktiske databasetabeller du oppretter. På sin side får du sikker og forenklet tilgang til datasettet ditt mens du skjuler de underliggende tabellstrukturene og implementeringene.

Så hvordan fungerer dette? Du vet allerede at SQL-spørringer brukes til å lage SQL-visninger. Når SQL-visningen er opprettet, lagres den underliggende SQL-spørringen. Når du bruker en SQL-spørring til å slå opp data fra flere tabeller, utføres spørringen og hjelper til med å hente data fra tilsvarende databasetabeller. På samme måte, når du spør etter en opprettet SQL-visning, blir den lagrede spørringen først hentet og deretter utført.

Hvordan er det nyttig å lage SQL-visninger?

Siden SQL-visninger støttes av lagrede SQL-spørringer, hjelper de med å gjøre databasen din sikker. De forenkler også komplekse søk og øker søkeytelsen, blant andre fordeler. La oss se hvordan opprettelse av SQL-visninger kan være fordelaktig for databasen og applikasjonene dine:

#1. Gir databasesikkerhet

SQL-visninger fungerer som virtuelle tabeller og skjuler strukturene til de faktiske databasetabellene. Så, bare ved å se på en visning, er det ikke mulig å vite hvor mange tabeller det er og hva som er de forskjellige kolonnene i tabellen. I tillegg kan du legge til tilgangskontrollbegrensninger til databasen din slik at en bruker bare kan spørre i visningen og ikke de faktiske tabellene.

  Hva er mikrotransaksjoner, og hvorfor hater folk dem?

#2. Forenkler komplekse spørsmål

Ofte spenner SQL-spørringene dine over flere tabeller med komplekse sammenføyningsbetingelser. Hvis du bruker slike komplekse søk ofte, kan du utnytte kraften ved å lage SQL-visninger. Du kan lagre det komplekse søket ditt i SQL-visningen. Med dette kan du ganske enkelt spørre i visningen i stedet for å måtte kjøre hele den komplekse spørringen.

#3. Reduserer mot skjemaendring

Hvis de underliggende tabellstrukturene dine endres, som f.eks. tillegg eller fjerning av kolonner, forblir visningene dine upåvirket. Hvis du stoler på SQL-visningene dine for alle søkene dine, trenger du ikke å bekymre deg for skjemaendringen. Som virtuelle tabeller vil den opprettede SQL-visningen fortsette å fungere sømløst.

#4. Forbedrer søkeytelse

Når du oppretter SQL-visninger, optimaliserer databasemotoren den underliggende spørringen før den lagres. En lagret spørring kjører raskere enn å kjøre den samme spørringen direkte. Dermed får du bedre ytelse og raskere resultater ved å bruke SQL-visninger for å spørre etter dataene dine.

Hvordan lage SQL-visninger?

For å lage SQL-visninger kan du bruke CREATE VIEW-kommandoen. En visning inneholder en SELECT-setning. Dette gir spørringen som vil bli lagret 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

La oss forstå dette ved å bruke et eksempel. Tenk på at du har opprettet to tabeller avdeling og ansatt. Avdelingen har avdelingens navn og ID. Følgelig inneholder ansatttabellen navn og ID til den ansatte, sammen med IDen til avdelingen de tilhører. Du skal bruke disse to tabellene for å lage SQL-visningen.

Lag dine databasetabeller

department_iddepartment_name1Finance2Teknologi3BusinessTabell 1: department

Hvis du bruker MySQLkan du opprette denne tabellen ved å bruke følgende spørring:

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

Sett inn data i tabellen du har opprettet ved å bruke SQL nedenfor:

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

ansatt_idemployee_namedepartment_id100John3101Mary1102Natalya3103Bruce2Tabell 2: ansatt

  12 beste zombiespill for å teste overlevelsesferdighetene dine [2023]

Med avdelingstabellen klar og fylt med data, lag ansatttabellen ved å bruke MySQL-spørringen nedenfor:

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

Deretter setter du inn ansattpostene i tabellen din. Husk at siden department_id-kolonnen har en fremmednøkkelreferanse med avdelingstabellen, kan du ikke sette inn en department_id som ikke finnes i den andre tabellen.

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

Spørr i databasetabellene dine

La oss bruke tabellene i en databasespørring. Tenk på tilfellet der du må spørre etter ansatt_id, ansatt_navn og avdelingsnavn for alle ansatte. I dette tilfellet må du bruke begge tabellene og slå sammen dem ved å bruke den vanlige kolonnen, som er department_id. Din forespørsel blir dermed:

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

Lag din SQL-visning

Nå kan det hende at du ofte slår opp eller refererer til disse dataene. I tillegg til dette, over tid, med flere poster i tabellene dine, vil søketiden din begynne å øke. I et slikt scenario kan du opprette SQL-visningen som tilsvarer denne spørringen.

Bruk følgende spørring for å opprette en visning kalt ansattinfo:

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

Med denne visningen på plass, kan du direkte spørre det samme. Din forespørsel er derfor forenklet til:

SELECT 
  * 
FROM 
  employee_info;

Spørring i SQL-visningen gir deg samme utdata som å kjøre den opprinnelige spørringen. Men søket ditt er nå enkelt å vedlikeholde. Visningen skjuler kompleksiteten til søket ditt uten at det går på bekostning av resultatet eller ytelsen.

  Hvordan fungerer FPGA-programmering?

Hvordan erstatte SQL-visninger?

Hvis du har en visning med et bestemt navn og du vil endre eller erstatte den, bruker du kommandoen CREATE OR REPLACE VIEW. Ved å bruke dette kan du endre SELECT-setningen som ble brukt til å opprette visningen. Derfor blir visningsutgangen din erstattet mens visningsnavnet holdes intakt. I tillegg oppretter du en ny SQL-visning hvis den ikke eksisterer.

Du kan erstatte SQL-visninger ved å bruke 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

Du kan forstå dette bedre med et eksempel. Vurder avdelingen og ansatttabellene. En ansatt_info SQL-visning opprettes fra dem, som inneholder kolonnene ansatt_id, ansatt_navn og avdelingsnavn.

Med tanke på sikkerhetshensyn kan det være lurt å få medarbeider-ID-en fjernet fra denne visningen. I tillegg vil du også endre kolonnenavnene for å skjule de faktiske databasekolonnene. Du kan gjøre disse endringene i den eksisterende visningen ved å bruke følgende SQL-spørring:

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 har blitt erstattet, vil du få andre resultater når du bruker det samme søket som du brukte før. I søkeresultatet finner du for eksempel at en av kolonnene er slettet. I tillegg til det er kolonnenavnene endret fra ansattnavn og avdelingsnavn til henholdsvis navn og avdeling.

Utnytt kraften ved å lage SQL-visninger

Å lage SQL-visninger vil ikke bare gi deg forenklede spørringer og raskere dataoppslag, men også sikkerhet og beskyttelse mot skjemaendringer. Å lage SQL-visninger er ganske enkelt. Du kan ta alle eksisterende spørringer du har og gjøre det om til en SQL-visning.

Bruk trinn-for-trinn-guiden ovenfor for å lage SQL-visninger og utnytte fordelene deres. Med SQL-visninger kan du gjøre databaseapplikasjonene dine enkle og sikre samtidig som du øker ytelsen.

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