13 viktigaste SQL -kommandon som alla programmerare borde känna till

13 viktigaste SQL -kommandon som alla programmerare borde känna till

Databaser driver den moderna webben. Varje stor eller dynamisk webbplats använder en databas på något sätt, och i kombination med Structured Query Language (SQL) , möjligheterna att manipulera data är verkligen oändliga. Om du redan känner till SQL, se till att du checkar ut dessa programmeringskunskaper som alla webbplatsutvecklare borde känna till.





Idag ska jag visa dig några av de kärn -SQL -kommandon du behöver veta som programmerare.





Det finns många namn för data som returneras från en databastabell. Data brukar kallas Rader , Uppgifter , eller Tuples . Jag kommer att använda dessa termer utbytbart under hela denna artikel.





Förord

Alla exemplen idag kommer att baseras på fyra skönlitterära tabeller. De kund tabellen innehåller kundens namn och ålder:

De höjder tabellen innehåller namn och höjd för varje person:



De personal tabellen innehåller personalens namn och ålder - exakt samma som kundtabellen:

Sista bordet kallas människor innehåller namn och ålder på personer, precis som kund- och personalborden:





1. Välj

De Välj uttalande är det enklaste, och det är viktigt att du förstår det eftersom det ligger till grund för nästan alla andra kommandon. Det anses vara en bra metod att skriva dina reserverade SQL -ord med versaler, eftersom det gör kommandot lättare att läsa och förstå.

Som namnet antyder är select van vid Välj data från en databas. Här är den enklaste användningen:





SELECT * FROM table;

Det finns två delar i detta. Den första delen ( VÄLJ * ) anger vilka kolumner du vill välja. Asterisken indikerar att du vill markera alla kolumner i tabellen. Den andra delen ( FRÅN bord ) berättar för din databasmotor varifrån du vill hämta dessa data. Ersätt 'tabell' med namnet på din databastabell.

Detta val är känt som 'välj stjärna.' Att använda asterisken är ett bra sätt att ta reda på vilken data som finns i en tabell, men jag rekommenderar inte att du använder den för någon produktionskod. När du använder en utvald stjärna är det upp till databasmotorn att presentera den data du vill ha. Du har ingen kontroll över ordningen där data returneras, så om någon lägger till en ny kolumn i tabellen kan det hända att dina variabler i ditt programmeringsspråk inte längre representerar rätt data. Lyckligtvis finns det en lösning.

Du kan uttryckligen ange vilka kolumner du vill hämta, så här:

SELECT age, name FROM people;

Denna fråga hämtar kolumnerna 'ålder' och 'namn' från tabellen 'människor'. Att vara så tydligt kan vara lite tråkigt om du har mycket data, men det kommer att minska problem i framtiden, tillsammans med att göra din SQL lättare att förstå av framtida programmerare.

Om du vill välja en extra data, men den inte lagras i någon av dina tabeller, kan du göra så här:

SELECT age, '1234' FROM people;

Alla strängar i enskilda citattecken kommer att returneras istället för att matcha ett kolumnnamn.

2. Var

Välj -kommandot är utmärkt för att hämta data, men vad händer om du vill filtrera resultaten lite mer? Vad sägs om att hämta bara personer som har blå ögon? Hur är det med människor födda i januari som arbetar som mekaniker? Det är här var kommandot kommer in. Detta gör att du kan tillämpa villkor för väljaren, och du lägger helt enkelt till det i slutet av uttalandet:

SELECT age, name FROM people WHERE age > 10;

Denna fråga är nu begränsad till personer som är äldre än 10 år. Du kan kombinera flera villkor med OCH operatör:

SELECT age, name FROM people WHERE age > 10 AND age <20;

De OCH kommandot fungerar precis som det gör på det engelska språket: det tillämpar ett annat villkor för påståendet. I det här exemplet skulle data som returneras vara alla poster med en ålder mellan 10 och 20. Eftersom det inte finns några matchande resultat returneras inga data.

Windows 7 vs Windows 10 2018

Ett annat kommando som kan användas i samband med detta är ELLER . Här är ett exempel:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Denna fråga returnerar poster där åldern är mer än 10, eller namnet är lika med 'Joe'. Lägg märke till hur det bara finns ett likhetstecken? De flesta programmeringsspråk använder dubbla lika (==) för att kontrollera om det är likvärdigt. Detta behövs inte för de allra flesta databasmotorer (men det kan mycket per miljö, så dubbelkolla först).

3. Beställ

De beställa kommandot används för att sortera resultaten som returneras. Det är en annan enkel att använda. Lägg bara till det i slutet av ditt uttalande:

SELECT name, age FROM people ORDER BY age DESC;

Du måste ange kolumnen och ordningen, vilket kan vara ASC för stigande eller DESC för fallande. Du kan beställa med flera kolumner så här:

SELECT name, age FROM people ORDER BY name ASC, age DESC

SORTERA EFTER är kanske den mest användbara i kombination med andra kommandon. Inte alla frågor returnerar data på ett logiskt eller ordnat sätt - det här kommandot låter dig ändra det.

4. Gå med

De Ansluta sig kommandot är van vid Ansluta sig relaterad data lagrad i en eller flera tabeller. Du Ansluta sig den andra tabellen till den första tabellen och ange hur data är anslutna. Här är ett grundläggande exempel:

app som berättar vilken låt som spelas
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Det händer några saker här. Du måste börja med 'LEFT JOIN' -syntaxen, som anger att du vill gå med i en tabell med en koppling av vänster typ. Ange sedan tabellen du vill gå med i (höjder). De ANVÄNDNING (namn) syntax säger att kolumnen 'namn' finns i båda tabellerna, och att detta bör användas som en nyckel för att sammanfoga tabellerna.

Oroa dig inte om dina kolumner har olika namn i varje tabell. Du kan använda 'PÅ' istället för 'ANVÄNDNING':

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

På -uttalandet anger uttryckligen vilka kolumner som du vill skriva på. Det finns många typer av anslutningar, och det skulle ta lång tid att gå in på detaljer för var och en, så här är en snabb sammanfattning av deras användningsområden:

  • (INRE KOPPLING - Returnerar rader med en matchning i båda tabellerna.
  • VÄNSTER (YTTRE) GÅ MED - Returnerar alla rader från den vänstra tabellen, med matchningar från den högra tabellen. Om det inte finns några matchningar returneras de vänstra tabellposterna fortfarande.
  • HÖGER (YTTRE) GÅ MED - Detta är motsatsen till en vänsterkoppling: alla rader från det högra bordet returneras, tillsammans med alla matchningar i den vänstra tabellen.
  • HELA (YTTRE) GÅ MED - Returnerar alla poster med en matchning i endera tabellen.

Syntaxen 'INNER' eller 'YTTRE' är valfri. Det kan göra saker lättare att förstå, men du behöver inte ange det för de allra flesta gånger.

5. Alias

Nu vet du grunderna, låt oss titta på alias kommando. Detta används för att tillfälligt byta namn på en tabell - mer ett smeknamn än någonting annat, eftersom det nya namnet bara existerar inuti den enskilda transaktionen du kör. Så här använder du det:

SELECT A.age FROM people A;

Du kan använda vilket giltigt namn du vill, men jag gillar att använda bokstäver i alfabetet. Före varje kolumnnamn har alias ett prefix. Detta alias tilldelas tabellen omedelbart efter att det har deklarerats. Detta är exakt samma sak som att göra detta:

SELECT people.age FROM people;

Istället för att behöva skriva ett långt tabellnamn kan du skriva en enkel och lätt att komma ihåg bokstav - men vad är poängen? Tja, om du väljer från mer än en tabell är det lätt att bli förvirrad om vilka kolumner som tillhör vilken tabell. Om båda dina tabeller råkar ha kolumner med samma namn kan din databasfråga till och med misslyckas med att köras utan att uttryckligen referera till tabellnamnet eller aliaset. Här är ett exempel med två tabeller:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

Och här är samma fråga med alias:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Personaltabellen ges aliaset 'A' och kundtabellen har aliaset 'B'. Aliasing -tabeller hjälper verkligen till att göra din kod lättare att förstå och minskar skrivmängden du behöver göra.

Du kan också byta namn på en kolumn med ett alias med kommandot 'AS':

SELECT age AS person_age FROM people;

När denna fråga körs kommer kolumnen nu att kallas 'person_age' istället för 'age'.

6. Union

Union är ett bra kommando. Det låter dig lägga till rader till varandra. Till skillnad från fogar som lägger till matchande kolumner kan fackföreningen lägga till orelaterade rader förutsatt att de har samma antal och namn på kolumner. Så här använder du det:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Du kan tänka på fackförening som ett sätt att kombinera resultaten från två frågor. En fackförening returnerar endast resultat där det finns en unik rad mellan de två frågorna. Du kan använda syntaxen 'UNION ALL' för att returnera all data, oavsett dubbletter:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Lägg märke till hur ordningen på raderna ändras? Union fungerar på det mest effektiva sättet, så de returnerade uppgifterna kan variera i ordning.

Ett möjligt användningsfall för union är en delsumma: du kan föra samman en fråga om summan till en fråga om de enskilda totalen för ett visst scenario.

7. Sätt i

Du vet nu allt om att hämta data från en databas, men vad sägs om att infoga den? Det är här Föra in kommandot kommer in. Här är ett exempel:

INSERT INTO people(name, age) VALUES('Joe', 102);

Du måste ange tabellnamnet (personer) och kolumnerna du vill använda (namn och ålder). Syntaxen 'VALUES' används sedan för att tillhandahålla de värden som ska infogas. Dessa måste vara i samma ordning som de kolumner som tidigare angavs.

Du kan inte ange en var -klausul för skär, och du måste se till att du följer alla nödvändiga tabellbegränsningar som finns.

8. Uppdatera

Efter att du har lagt in några data är det helt naturligt att du behöver ändra specifika rader. Här är uppdatering kommandosyntax:

UPDATE people SET name = 'Joe', age = 101;

Du måste ange tabellen du vill ändra och använd sedan 'SET' -syntaxen för att ange kolumnerna och deras nya värden. Detta exempel är bra, men det kommer att uppdatera varje enskild post - något som inte alltid är önskvärt!

För att vara mer specifik kan du använda 'WHERE' -klausuler precis som när du väljer:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Du kan till och med ange flera villkor med 'AND' och 'OR':

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Lägg märke till hur fästena används för att begränsa villkoren.

extern hårddisk visas inte i windows 10

9. Uppsatt

Hoppsan är ett konstigt klingande ord, men det är ett otroligt användbart kommando. Säg att du har en begränsning på ditt bord, och du har angett att du bara någonsin vill ha poster med unika namn - du vill till exempel inte lagra två rader med samma namn. Om du försökte infoga flera värden för 'Joe' skulle din databasmotor kasta ett fel och vägra att göra det (helt riktigt). En UPSERT låter dig uppdatera en post om den redan finns. Detta är otroligt användbart! Utan det här kommandot måste du skriva mycket logik för att först kontrollera om det finns en post, infoga om den inte gör det, annars hämta rätt primärnyckel och uppdatera sedan.

Tyvärr implementeras upserts olika i olika databasmotorer. PostgreSQL har först nyligen fått denna förmåga, medan MySQL har haft det ganska länge. Här är MySQL -syntaxen som referens:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Lägg märke till hur detta i huvudsak är en uppdatering och en infogning, som kan sammanfattas som 'uppdatering om infogning misslyckades.'

10. Radera

Radera används för att ta bort poster helt - det kan vara ganska skadligt om det missbrukas! Den grundläggande syntaxen är mycket lätt att använda:

DELETE FROM people;

Liksom de flesta andra kommandon raderas detta allt ! Du måste använda en var för att begränsa den till ett lite mer vettigt antal rader - helst en:

DELETE FROM people WHERE name = 'Joe';

Om du utvecklar ett system är det ofta klokt att implementera en 'mjuk radering'. Du kör faktiskt aldrig kommandot delete, snarare skapar du en borttagen kolumn och kontrollerar sedan den kolumnen i dina val - det kan undvika mycket förlägenhet om du snabbt och enkelt kan hämta förmodligen borttagna poster. Detta ersätter dock inte korrekta säkerhetskopior.

11. Skapa tabell

De skapa bord kommando används för att skapa tabeller. Det är en annan mycket enkel:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Lägg märke till hur kolumnnamnen och begränsningarna ligger inom parentes, och kolumnerna ges en lämplig datatyp. En primär nyckel är specificerad, vilket krävs i alla bra databasdesigner.

12. Ändra tabell

De ändra bord kommando används för att ändra strukturen i en tabell. Detta är något begränsat, eftersom din databas inte låter dig ändra en tabell om befintliga data skulle orsaka en konflikt - till exempel att ändra en sträng till ett heltal. I dessa fall fixar du data först och ändrar sedan tabellen. Här är ett exempel:

ALTER TABLE people ADD height integer;

Detta exempel lägger till en kolumn som kallas 'höjd' av heltalstyp i tabellen personer. Det finns egentligen ingen gräns för vad du kan ändra.

13. Släpp bord

Det sista kommandot är släpp bord . Tänk på detta som borttagning, men snarare än att ta bort en enda post tar den bort varje post tillsammans med tabellen! Så här använder du det:

DROP TABLE people;

Det är ett ganska drastiskt kommando, och det finns ingen anledning att det behöver programmeras in i ditt system. Det bör endast utföras manuellt i de allra flesta fall, och det kan det vara mycket destruktiv.

Det är allt för idag. Jag hoppas att du har lärt dig några användbara knep! Du kan lära dig hur göra en webbplats , och använd sedan dina nyfunna färdigheter för att göra det dynamiskt - se bara till att du inte gör dessa misstag eller lämnar det sårbart för SQL -injektion. Om du inte är säker på att du behöver lära dig SQL, har du övervägt en statisk platsgenerator?

Varför inte lämna en kommentar nedan med dina favorit -SQL -tips och tricks?

Bildkrediter: HYS_NP/Shutterstock

Dela med sig Dela med sig Tweet E-post Är det värt att uppgradera till Windows 11?

Windows har gjorts om. Men är det tillräckligt för att övertyga dig om att byta från Windows 10 till Windows 11?

Läs Nästa
Relaterade ämnen
  • Programmering
  • Programmering
  • SQL
Om författaren Joe Coburn(136 artiklar publicerade)

Joe är utbildad i datavetenskap från University of Lincoln, Storbritannien. Han är en professionell mjukvaruutvecklare, och när han inte flyger drönare eller skriver musik kan han ofta hittas ta foton eller producera videor.

Mer från Joe Coburn

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera