In dit artikel wordt uitgelegd hoe u eenvoudige SQL-query's kunt schrijven vanaf de meest eenvoudige en het script geleidelijk kunt verbeteren om een aantal wiskundige en datumgerelateerde problemen op te lossen. Daarnaast gaan we de concepten rondom SQL-query's verduidelijken.
Hoewel dit artikel in de eerste plaats bedoeld is voor beginners, bevat het tips die nuttig kunnen zijn voor elk ervaringsniveau.
Wat is SQL-query in database?
Laten we eerst een beetje praten over SQL-query's om ze goed te begrijpen voordat we praktische ervaring opdoen met schrijven.
SQL staat voor gestructureerde querytaal dat is een essentiële taal die wordt gebruikt om relationele databases te doorzoeken.
T-SQL vs SQL – Wat is het verschil?
T-SQL of Transact-SQL is de Microsoft-versie van SQL met meer functies en mogelijkheden dan de traditionele SQL-taal, ook wel ANSI SQL genoemd.
Daarom is T-SQL een traditionele SQL-taal plus meer dingen die door Microsoft zijn toegevoegd. Het wordt vaker gebruikt en genoemd als we het over SQL hebben.
Dit artikel verwijst naar de Microsoft SQL-versie, of we nu het woord SQL of T-SQL gebruiken.
Waarom gebruiken we SQL-query's in een relationele database?
Een relationele database is een database met sleutels die worden gebruikt om tabellen te verbinden in plaats van tabellen fysiek te verbinden.
U heeft bijvoorbeeld een tafel met de naam Boek die u linkt naar een andere tabel genaamd BookType via toetsen om meer betekenissen aan de records toe te voegen.
De tabellen op de afbeelding zijn met elkaar verbonden door middel van een sleutel. Het is niet nodig om ze fysiek aan te sluiten. Dit is de fundamentele regel van relationele databases:u maakt relaties tussen de twee tabellen met behulp van sleutel(s).
Lees ook relationele database vs NoSQL – wat te kiezen voor big data-beheer?
Wat is een database opvragen?
U doorzoekt de database om antwoorden te krijgen op vragen met betrekking tot die database. Met andere woorden, u schrijft query's op een database om informatie te krijgen over de gegevens die deze bevat.
U bent bijvoorbeeld geïnteresseerd om alle boekrecords samen met hun typen in de specifieke database te bekijken. U moet die database doorzoeken om de vereiste gegevens te bekijken. Daarvoor moet je een script schrijven en uitvoeren tegen de database.
Wat heb je nodig om een vraag te stellen?
Er moeten een paar vereisten zijn om een database te doorzoeken, aangezien we niet zomaar ergens een query kunnen schrijven en uitvoeren.
De volgende dingen zijn verplicht om een database te doorzoeken:
- Een databaseserver zoals SQL Server (lokaal of op afstand geïnstalleerd) waar u de database opslaat.
- Een tool voor databasebeheer, zoals SQL Server Management Studio of dbForge Studio voor SQL Server, die u zult gebruiken om uw query's te schrijven en uit te voeren
- Een database waarop u uw zoekopdrachten uitvoert. U kunt elke voorbeelddatabase maken voor leerdoeleinden.
U moet ook een basiskennis hebben van uw database, zoals welke tabel de gewenste informatie bevat, enzovoort. Begrip van relationele databaseconcepten is ook een pluspunt.
We gaan ervan uit dat je al aan bovenstaande eisen hebt voldaan. Maar u kunt ook het volgende artikel raadplegen voor meer details:
Basisprincipes van SQL Server Management Studio (SSMS) – Deel 1
Wat u moet doen voordat u query's in SQL schrijft
We gaan nu eenvoudige SQL-query's schrijven.
Stel de omgeving in om te beginnen met het schrijven van uw SQL-query's. Zet de gereedschappen klaar. Open dbForge Studio voor SQL Server of SQL Server Management Studio en maak verbinding met de SQL-instantie. Hier beginnen we onze SQL-reis:
Eenmaal succesvol verbonden, druk op CTRL+N of ga naar Bestand> Nieuw> Query met huidige verbinding :
U bent nu succesvol verbonden met de master (systeemdatabase) van de momenteel verbonden server.
Belangrijke tip: Maak altijd een voorbeelddatabase om uw query's (scripts) erop uit te voeren. Het uitvoeren van query's op de systeemdatabases is geen goede gewoonte, behalve in drie gevallen:
- U werkt met een voorbeelddatabase en dan wordt het script dat ervoor is gemaakt, uitgevoerd tegen de systeemdatabase (master).
- Je doorzoekt de hoofddatabase met opzet om er wat informatie uit te halen.
- De query's kunnen veilig worden uitgevoerd tegen de systeemdatabase (master).
Een voorbeelddatabase instellen
Laten we een voorbeelddatabase maken met de naam BookSimple zonder tafels. Schrijf het volgende script tegen de hoofddatabase om een voorbeelddatabase te maken en Druk op F5 om de zoekopdracht uit te voeren:
-- Create sample database BookSimple
USE MASTER
GO
CREATE DATABASE BookSimple
GO
USE BookSimple
Het op sets gebaseerde concept achter SQL-query's
Net voordat u zelfs de eenvoudigste SQL-query schrijft, moet u begrijpen dat SQL een op een set gebaseerde taal is.
Het betekent dat wanneer u uw database wilt doorzoeken met SQL, u in termen van sets of groepen moet denken.
SQL is zo ontworpen en standaard zeer efficiënt om op set gebaseerde verzoeken te verwerken. Als u uw scripts (query's) ontwerpt, rekening houdend met de set-gebaseerde logica, begrijpt en implementeert u SQL sneller dan degenen die het typische leerpad volgen (dat zijn eigen voordelen heeft).
Laten we denken aan een natuurlijk voorkomende verzameling, zoals een klas of een groep. Als we naar een klas verwijzen, verwijzen we naar alle leerlingen in die klas. SQL kan helpen om die klasse als geheel te doorzoeken.
Zo ook een Boek is een tafel met boeken. Het bevat alle records voor boeken. We kunnen die tabel gewoon doorzoeken alsof we het over een enkel boek hebben, maar in feite doorzoeken we de hele tabel met boeken vertegenwoordigd door het Boek tafel.
We zullen later meer voordelen van het set-gebaseerde concept zien wanneer we enkele basisvoorbeelden bekijken.
Eenvoudige SQL SELECT-instructie
SELECT is een T-SQL-statement dat alle of geselecteerde rijen en kolommen (op basis van een criterium) ophaalt uit een database.
Met andere woorden, SELECTEER laat ons gegevens uit een tabel of een aantal tabellen bekijken (selecteren) op basis van bepaalde criteria, die, indien niet algemeen vermeld, alle gegevens tonen.
Daarom is SELECT de eerste instructie waarnaar moet worden gezocht als we rijen en kolommen uit een database willen ophalen. De eenvoudigste vorm van SELECT-syntaxis is als volgt:
SELECT * FROM <Table>
Onthoud dat we de syntaxis in de loop van de tijd zullen wijzigen om het leerproces geleidelijk te verbeteren.
Een andere manier om het SELECT-statement te gebruiken is als volgt:
SELECT <Expression>
De uitdrukking kan van alles zijn, waaronder het volgende:
- Constant (zoals een vast getal zoals 1).
- Variabele (zoals @X die kan worden gewijzigd in een willekeurig getal).
- Combinatie van constanten of variabelen (zoals 1+2 of @X [email protected]).
Maar of je nu SELECT
Laten we een query uitvoeren op de BookSimple database door de Databases . te vernieuwen knooppunt onder Objectverkenner. Klik met de rechtermuisknop op BookSimple > Nieuwe zoekopdracht :
Schrijf de eenvoudigste SQL-query op - schrijf en voer het volgende script uit voor de voorbeelddatabase:
Als u de query uitvoert (door op F5) te drukken, worden de volgende resultaten weergegeven:
Dus SELECT 1 retourneert 1, maar met een naamloze kolom (geen kolomnaam).
1 is een constante. Het blijft 1, dus we verwachten dat het resultaat ook 1 zal zijn. Er is echter nog iets belangrijks om te begrijpen:onze output wordt omgezet in een set van 1 kolom en 1 rij. Omdat we geen naam aan de kolom hebben gegeven en er geen tabel bij betrokken is (om de naam vandaan te halen), krijgen we de 1-waarde voor een naamloze kolom van een naamloze tabel (set).
De set-gebaseerde taal heeft automatisch onze geleverde waarde teruggestuurd naar een naamloze kolom van een naamloze tabel met één rij.
Laten we de kolom een naam geven door het script als volgt aan te passen:
Voer het script uit om deze keer de volgende resultatenset te zien:
Aangezien deze query altijd dezelfde waarde (getal) retourneert die we invoeren (levering), valt er niet veel te bespreken behalve begrijpen waarom het set-gebaseerde denken van vitaal belang is om te begrijpen hoe query's werken.
Laten we het bovenstaande geval gebruiken voor snelle berekeningen in SQL - we zetten de enkele waarde om in een uitdrukking.
We willen bijvoorbeeld snel twee getallen 1000 en 200 toevoegen. We kunnen eenvoudig de volgende query schrijven zonder een tabel te noemen met alleen de SELECT-instructie:
Het resultaat is hieronder:
Op dezelfde manier kunnen we getallen optellen, vermenigvuldigen, delen en aftrekken.
Het is handig om twee kolommen van een tabel met numerieke waarden toe te voegen. We kunnen deze benadering echter ook gebruiken om twee variabelen toe te voegen. Het gebruik van variabelen is nuttig omdat we twee willekeurige getallen kunnen toevoegen door die variabelen te initialiseren met de gewenste waarden. Dit wordt geïllustreerd door het volgende script:
Als we het script uitvoeren, zien we de volgende uitvoer:
We kunnen deze query opslaan om deze op elk moment opnieuw te gebruiken om twee willekeurige getallen toe te voegen (door de waarden van @X en @Y te wijzigen). Als we dit beschouwen in termen van een set, kunnen we zeggen dat de uitvoer wordt geretourneerd als een naamloze tabel (set) met één rij en de volgende drie kolommen:
U kunt echter meer doen met de SELECT
Hier gaan we de GETDATE()-functie gebruiken om de huidige datum en de verwachte leverdatum op te halen van een onbekende bestelling die nog geen deel uitmaakt van onze tabel.
Stel dat we nog geen besteltabel hebben, maar we willen snel een verwachte leveringsdatum van de productbestelling berekenen. Als we een getal toevoegen aan de GETDATE()-functie, zal het ons de toegevoegde datum vertellen met het opgegeven aantal dagen.
Met andere woorden, als we de leveringsdatum van de bestelling verwachten op twee dagen na het plaatsen van de bestelling, kunnen we deze berekenen door SELECT te gebruiken met GETDATE()+2.
Voer het volgende SQL-script uit om het in actie te zien:
De resultatenset is als volgt:
Deze keer konden we de verwachte leveringsdatum van de bestelling rechtstreeks berekenen met behulp van de SELECT-instructie met de GETDATE()-functie in afwezigheid van een tabel.
Als we echter een tafel hadden, zouden we de verwachte leverdatum hebben gekregen voor alle bestellingen in die tafel.
Nogmaals, als we deze uitvoer analyseren in termen van Set Logic, hebben we één naamloze tabel (set) met twee kolommen en één rij. SQL is een op Sets gebaseerde taal die zeer snel werkt met sets, zoals tabellen. Als er geen tabellen zijn, behandelt het de invoerwaarden (te verwerken) als naamloze sets.
Kortom, een SQL-query vereist een SELECT-instructie gevolgd door een expressie om berekeningen op basis van getallen of datums uit te voeren, zelfs met een lege database (geen tabellen).
Gefeliciteerd! U hebt de basis van SQL-query's geleerd en enkele eenvoudige query's geschreven met behulp van de SELECT-instructie tegen een voorbeelddatabase.
Blijf in contact, want het schrijven van eenvoudige SQL-query's tegen de databasetabellen moet nog komen.
Probeer de volgende oefeningen, nu u enkele basis SQL-query's kunt schrijven: gebruikt, je moet denken in termen van sets.
Een eenvoudige SQL-query schrijven
-- Display 1
SELECT 1
-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number
Berekening in Select Statement
-- Adding two numbers 1000 and 200
SELECT 1000+200 AS [Sum Of 1000 And 200]
-- 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
Nog een voorbeeld van gegevensberekening
-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]
Dingen om te leren hoe u beter SQL-query's kunt schrijven