Nøgleforskel – hvor versus at have klausul i SQL
Data er vigtigt for enhver organisation. Derfor er det nødvendigt at gemme dataene på en organiseret måde for at hente dem. Dataene gemmes i tabeller. En database består af en samling tabeller. En almindelig databasetype er relationelle databaser. I en relationsdatabase er tabellerne relateret til hinanden. Eksempelvis er bordkunden forbundet med ordrebord. Et RDBMS (Relational Database Management System) er et databasestyringssystem, der er baseret på en relationel model. Det bruges til at administrere relationelle databaser. Nogle eksempler på RDBMS er MySQL, MSSQL og Oracle. The Structured Query Language (SQL) er det sprog, der bruges til at manipulere og hente data i en relationel database. Der er forskellige klausuler i SQL til at udføre forskellige opgaver. To af dem er hvor og har. Denne artikel diskuterer forskellen mellem hvor og at have klausul i SQL. Den vigtigste forskel mellem hvor og at have klausul i SQL er den, hvor klausul bruges til at filtrere poster, før en gruppering eller en aggregering forekommer, mens det at have klausul bruges til at filtrere poster efter en gruppering, eller en aggregering forekommer.
Hvad er where-sætning i SQL?
Det hjælper med at hente, opdatere eller slette et bestemt sæt data fra tabellen i henhold til den givne tilstand. Programmøren kan bruge where-klausulen til kun at begrænse og hente de nødvendige data. Forespørgslen udføres kun på de poster, hvor betingelsen angivet af where-sætningen er sand. Den kan bruges med vælg, opdater og slet.
Se elevtabellen nedenfor,
For at vælge navn og alder på eleven, hvis student_id er lig med 3, kan følgende SQL-forespørgsel bruges.
vælg navn, alder fra elev hvor student_id=3;
Det er også muligt at bruge operatorer som f.eks. ikke lig med (!=), større end (>), mindre end (=), mindre end eller lig med (<=). For at vælge elev_id og navn, hvis alder ikke er lig med 15, kan følgende SQL-forespørgsel bruges.
select student_id, navn fra elev, hvor alder!=15;
For at ændre alderen på eleven 2 til 13, kan følgende forespørgsel bruges.
opdater elevsæt alder=13, hvor id=3;
For at slette posten, hvis student_id er 4, kan følgende forespørgsel bruges.
slet fra elev hvor student_id=4;
Og, eller-operatorerne kan bruges til at kombinere flere betingelser.
vælg navn fra elev, hvor student_id=1 og alder=15; forespørgslen vil hente navnet Ann.
Dette er nogle eksempler på where-sætning i SQL. Hvis der er en Group By-klausul, vises where-klausulen før det.
Hvad er at have klausul i SQL?
Der er funktioner leveret af SQL-sproget til at udføre beregninger nemt. De er kendt som aggregeringsfunktioner. Min () bruges til at finde den mindste værdi af den valgte kolonne. Maks () bruges til at finde den maksimale værdi for den valgte kolonne. Avg () bruges til at finde gennemsnittet i kolonnen og sum () bruges til at finde totalen af kolonnen. Det er nogle eksempler på aggregeringsfunktioner. Se ordretabellen nedenfor,
Programmøren kan skrive SQL-forespørgslen som følger for at hente de kunder, hvis saldo er mere end 2000.
vælgfra ordregruppe efter kunde med sum(saldo) > 2000.
Dette vil udskrive kunderegistreringer, hvis summering af saldoen er større end 2000. Det vil udskrive poster for kunder Ann og Alex.
Have-sætningen bruges til at hente værdierne for de grupper, der opfylder visse betingelser. Derfor vil den gruppe, der falder til den givne betingelse, fremstå som resultat af dette. Have-sætningen vises efter gruppe-for-sætningen. Hvis group-by-sætningen ikke er til stede, vil have-sætningen fungere på samme måde som where-sætningen.
Hvad er lighederne mellem hvor og at have klausul i SQL?
- Begge er klausuler i Structured Query Language.
- Begge kan bruges til at filtrere og hente et sæt data.
Hvad er forskellen mellem hvor og at have klausul i SQL?
hvor vs at have klausul i SQL |
|
Hvor er en SQL-sætning, der bruges til at specificere en betingelse, mens data hentes fra en enkelt tabel eller ved at forbinde med flere tabeller. | The have er en SQL-sætning, der specificerer, at en SQL select-sætning kun skal returnere rækker, hvor aggregerede værdier opfylder de angivne betingelser. |
Formål | |
Where-sætningen bruges til at filtrere rækker. | The have-klausul bruges til at filtrere grupper. |
Aggregation | |
Where-sætningen kan ikke bruges med aggregeringsfunktioner, medmindre den er i en underforespørgsel indeholdt i en Having-klausul. | Aggregeringsfunktionerne kan bruges med have-sætningen. |
Filtreringsmetode | |
Where-sætningen opfører sig som et forfilter. | Have-sætningen opfører sig som et postfilter. |
Gruppér efter klausulordre | |
Where-klausulen bruges før Group By-klausulen. | The have-klausulen bruges efter Group By-klausulen. |
Brugt med | |
Where-klausulen kan bruges med vælg, opdater og slet. | The have-klausul bruges kun med select. |
Oversigt – hvor versus at have klausul i SQL
The Structured Query Language (SQL) er det sprog, der bruges i relationelle databaser. Hvor der er to klausuler i SQL. Denne artikel diskuterede forskellen mellem hvor og at have klausul. Forskellen mellem where og have-sætning i SQL er, at where bruges til at filtrere poster, før en gruppering eller en aggregering finder sted, mens have bruges til at filtrere poster efter en gruppering, eller en aggregering finder sted.