sql >> Databasteknik >  >> RDS >> Database

SQL Basic-kommandon:Hur man skriver enkla frågor med exempel

Den här artikeln förklarar att skriva enkla SQL-frågor från de mest grundläggande och gradvis förbättra skriptet för att lösa vissa matematiska och datumrelaterade problem. Dessutom kommer vi att klargöra begreppen kring SQL-frågor.

Även om den här artikeln främst är för nybörjare, innehåller den tips som kan vara till hjälp för alla erfarenhetsnivåer.

Vad är SQL Query i databasen?

Låt oss först prata lite om SQL-frågor för att förstå dem ordentligt innan vi får praktisk erfarenhet av att skriva.

SQL står för structured query language det är ett viktigt språk som används för att söka efter relationsdatabaser.

T-SQL vs SQL – Vad är skillnaden?

T-SQL eller Transact-SQL är Microsoft-versionen av SQL med fler funktioner och funktioner än vad traditionellt SQL-språk även känt som ANSI SQL har.

Därför är T-SQL ett traditionellt SQL-språk plus fler saker som lagts till av Microsoft. Det är mer vanligt att använda och nämnas när vi pratar om SQL.

Den här artikeln kommer att hänvisa till Microsoft SQL-versionen oavsett om vi använder ordet SQL eller T-SQL.

Varför använder vi SQL-fråga i en relationsdatabas?

En relationsdatabas är en databas med nycklar som används för att ansluta tabeller snarare än att koppla samman tabeller fysiskt.

Du har till exempel ett bord som heter Boka som du länkar till en annan tabell som heter BookType via tangenter för att lägga till fler betydelser till posterna.

Tabellerna på bilden är länkade via en nyckel. Det finns inget behov av att koppla dem fysiskt. Detta är den grundläggande regeln för relationsdatabaser – du skapar relationer mellan de två tabellerna med hjälp av nyckel(r).

Läs också relationsdatabas vs NoSQL – vad ska man välja för big data-hantering?

Vad är att söka efter en databas?

Du frågar databasen för att få svar på frågor relaterade till den databasen. Med andra ord, du skriver frågor mot en databas för att få information om den data den innehåller.

Du är till exempel intresserad av att se alla bokföring tillsammans med deras typer i den specifika databasen. Du måste fråga den databasen för att se de nödvändiga uppgifterna. För det måste du skriva och köra ett skript mot databasen.

Vad behöver du för att göra en fråga?

Några förutsättningar måste finnas för att fråga en databas eftersom vi inte bara kan skriva och köra en fråga var som helst mot någonting.

Följande saker är obligatoriska för att söka efter en databas:

  1. En databasserver som SQL Server (installerad lokalt eller på distans) där du lagrar databasen.
  2. Ett databashanteringsverktyg som SQL Server Management Studio eller dbForge Studio för SQL Server som du kommer att använda för att skriva och köra dina frågor
  3. En databas mot vilken du kör dina frågor. Du kan skapa valfri exempeldatabas för inlärningsändamål.

Du måste också ha en grundläggande förståelse för din databas, som vilken tabell som innehåller den önskade informationen och så vidare. Förståelse för relationsdatabaskoncept är också ett plus.

Vi antar att du redan har uppfyllt ovanstående krav. Men du kan också hänvisa till följande artikel för mer information:

Grunderna i SQL Server Management Studio (SSMS) – Del 1

Saker att göra innan du skriver frågor i SQL

Vi ska skriva enkla SQL-frågor nu.

Vänligen ställ in miljön för att börja skriva dina SQL-frågor. Förbered verktygen. Öppna dbForge Studio för SQL Server eller SQL Server Management Studio och anslut till SQL-instansen. Här börjar vi vår SQL-resa:

När du har anslutit framgångsrikt tryck på CTRL+N eller gå till Arkiv> Ny> Fråga med aktuell anslutning :

Nu är du framgångsrikt ansluten till mastern (systemdatabasen) för den för närvarande anslutna servern.

Viktigt tips: Skapa alltid en exempeldatabas för att köra dina frågor (skript) mot den. Att köra frågor mot systemdatabaserna är inte en bra praxis förutom i tre fall:

  1. Du arbetar med en exempeldatabas och sedan körs skriptet som skapats för den mot systemdatabasen (huvuddatabasen).
  2. Du frågar huvuddatabasen med avsikt för att få ut lite information från den.
  3. Frågorna är säkra att köra mot systemets (master) databas.

Konfigurera en exempeldatabas

Låt oss skapa en exempeldatabas som heter BookSimple utan några bord. Skriv följande skript mot huvuddatabasen för att skapa en exempeldatabas och Tryck på F5 för att utföra frågan:

-- Create sample database BookSimple
USE MASTER
GO

CREATE DATABASE BookSimple
GO

USE BookSimple

Det uppsättningsbaserade konceptet bakom SQL-frågor

Precis innan du skriver ens den enklaste SQL-frågan måste du förstå att SQL är ett uppsättningsbaserat språk.

Det betyder att när du vill fråga din databas med SQL bör du tänka i termer av uppsättningar eller grupper.

SQL är designat och som standard mycket effektivt för att betjäna uppsättningsbaserade förfrågningar. Om du skapar dina skript (frågor) med den uppsättningsbaserade logiken i åtanke, förstår och implementerar du SQL snabbare än de som följer den typiska inlärningsvägen (som har sina egna fördelar).

Låt oss tänka på en naturligt förekommande uppsättning, såsom klass eller grupp. När vi hänvisar till en klass hänvisar vi till alla elever i den klassen. SQL kan hjälpa till att fråga den klassen som helhet.

På samma sätt en bok är en tabell med böcker. Den innehåller alla poster för böcker. Vi kan helt enkelt fråga den tabellen som om vi pratar om en enskild bok, men i själva verket frågar vi hela tabellen med böcker som representeras av boken bord.

Vi kommer att se fler fördelar med det uppsättningsbaserade konceptet senare när vi utforskar några grundläggande exempel.

Enkel SQL SELECT-sats

SELECT är en T-SQL-sats som hämtar alla eller valda rader och kolumner (baserat på ett kriterium) från en databas.

Med andra ord, VÄLJ låter oss se (välja) data från en tabell eller ett antal tabeller baserat på vissa kriterier, som, om de inte nämns generellt, visar all data.

Därför är SELECT den första satsen att leta efter om vi vill hämta rader och kolumner från en databas. Den enklaste formen av SELECT-syntax är följande:

SELECT * FROM <Table>

Kom ihåg att vi kommer att modifiera syntaxen med tiden för att gradvis förbättra inlärningsprocessen.

Ett annat sätt att använda SELECT-satsen är som följer:

SELECT <Expression>

Uttrycket kan vara många saker inklusive följande:

  1. Konstant (som ett fast nummer som 1).
  2. Variabel (som @X som kan ändras till valfritt nummer).
  3. Kombination av konstanter eller variabler (som 1+2 eller @X [email protected]).

Men oavsett om du använder SELECT eller SELECT * FROM

, måste du tänka i termer av set.

Hur man skriver en enkel SQL-fråga

Låt oss fråga BookSimple databas genom att uppdatera databaserna nod under Objektutforskaren. Högerklicka på BookSimple > Ny fråga :

Skriv ner den enklaste SQL-frågan – skriv och kör följande skript mot exempeldatabasen:

-- Display 1
SELECT 1

Om du kör frågan (tryck på F5) visas följande resultat:

Så, SELECT 1 returnerar 1, men med en namnlös kolumn (Inget kolumnnamn).

1 är en konstant. Det kommer att förbli 1, så vi räknar med att resultatet blir 1 också. Det finns dock en viktig sak att förstå:vår utdata konverteras till en uppsättning av 1 kolumn och 1 rad. Eftersom vi inte har angett något namn till kolumnen och det inte finns någon tabell inblandad (att hämta namnet från), får vi värdet 1 för en namnlös kolumn i en icke namngiven tabell (uppsättning).

Det uppsättningsbaserade språket har automatiskt returnerat vårt angivna värde till en namnlös kolumn i en namnlös tabell med en rad.

Låt oss namnge kolumnen genom att ändra skriptet enligt följande:

-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number

Kör skriptet för att se följande resultatuppsättning den här gången:

Eftersom den här frågan alltid returnerar samma värde (antal) som vi matar in (tillhandahåller), finns det inte mycket att diskutera förutom att förstå varför det uppsättningsbaserade tänkandet är avgörande för att förstå hur frågor fungerar.

Beräkning i Select Statement

Låt oss använda ovanstående fall för snabba beräkningar i SQL – vi förvandlar det enskilda värdet till ett uttryck.

Till exempel vill vi snabbt lägga till två siffror 1000 och 200. Vi kan helt enkelt skriva följande fråga utan att nämna någon tabell med endast SELECT-satsen:

-- Adding two numbers 1000 and 200 
SELECT 1000+200 AS [Sum Of 1000 And 200]

Resultatet är nedan:

På samma sätt kan vi addera, multiplicera, dividera och subtrahera tal.

Det är bra att lägga till två kolumner i en tabell som innehåller numeriska värden. Men vi kan också använda detta tillvägagångssätt för att lägga till två variabler. Att använda variabler är fördelaktigt eftersom vi kan lägga till två valfria tal genom att initiera dessa variabler med de önskade värdena. Detta illustreras av följande skript:

-- SQL script to add any two numbers
DECLARE @X INT, @Y INT, @Addition INT

SET @X=550 -- Initialise variable X with a value (number)
SET @Y=350 -- Initialise variable Y with a value (number)
 
SET @[email protected]@sqldat.com -- SUM X and Y

SELECT @X AS FirstNumber_X,@Y as SecondNumber_Y,@Addition as SumOfNumbers

Att köra skriptet visar oss följande utdata:

Vi kan spara den här frågan för att återanvända den när som helst för att lägga till två valfria siffror (genom att ändra värdena för @X och @Y). Om vi ​​tänker på detta i termer av en uppsättning kan vi säga att utdata returneras som en namnlös tabell (uppsättning) med en rad och följande tre kolumner:

  1. FörstaNumber_X
  2. AndraNumber_Y
  3. SumOfNumbers

Du kan dock göra mer med SELECT med en tom databas (som inte har några tabeller).

Ett mer databeräkningsexempel

Här kommer vi att använda GETDATE()-funktionen för att hämta det aktuella datumet och det förväntade leveransdatumet för en okänd beställning som ännu inte är en del av vår tabell.

Anta att vi inte har någon beställningstabell ännu, men vi vill snabbt beräkna ett förväntat leveransdatum för produktorder. Om vi ​​lägger till ett tal till funktionen GETDATE() kommer den att berätta för oss vilket datum som lagts till med det angivna antalet dagar.

Med andra ord, om vi förväntar oss att leveransdatumet för beställningen är två dagar efter beställningen, kan vi beräkna det genom att använda SELECT med GETDATE()+2.

För att se det i aktion, kör följande SQL-skript:

-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]

Resultatuppsättningen är som följer:

Den här gången kunde vi beräkna det förväntade leveransdatumet för order direkt med hjälp av SELECT-satsen med funktionen GETDATE() i avsaknad av någon tabell.

Men om vi hade ett bord skulle vi ha fått det förväntade leveransdatumet för alla beställningar i den tabellen.

Återigen, om vi analyserar denna utdata i termer av Set Logic, har vi en namnlös tabell (uppsättning) med två kolumner och en rad. SQL är ett uppsättningsbaserat språk som fungerar mycket snabbt med uppsättningar, såsom tabeller. Om tabeller inte finns där behandlas indatavärdena (som ska bearbetas) som namnlösa uppsättningar.

Kort sagt, en SQL-fråga kräver en SELECT-sats följt av ett uttryck för att göra vissa tal- eller datumbaserade beräkningar även mot en tom databas (inga tabeller).

Grattis! Du har lärt dig grunderna i SQL-frågor och skrivit några enkla frågor med hjälp av SELECT-satsen mot en exempeldatabas.

Håll kontakten, eftersom att skriva enkla SQL-frågor mot databastabellerna är ännu inte på väg.

Saker att lära sig att skriva SQL-frågor på bättre sätt

Nu när du kan skriva några grundläggande SQL-frågor, prova följande övningar:

  1. Skapa en exempeldatabas BookSimple2.
  2. Skapa en fråga för att multiplicera två valfria tal genom att definiera dem som variabler.
  3. Skriv en fråga för att skapa ett beställningsdatum som det aktuella datumet, leveransdatumet som två dagar efter beställningsdatumet och det förväntade leveransdatumet som två dagar efter leveransdatumet.

  1. Guide till designdatabas för meddelanden i MySQL

  2. Hur inloggningar fungerar på länkade servrar (T-SQL-exempel)

  3. Postgresql SQL GROUP BY tidsintervall med godtycklig noggrannhet (ned till millisekunder)

  4. POWER() Funktion i Oracle