Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric Preview
Note
Het leertraject Aan de slag met query's uitvoeren met Transact-SQL biedt uitgebreidere inhoud, samen met praktische voorbeelden.
In deze les ziet u hoe u een database maakt, een tabel maakt in de database en vervolgens de gegevens in de tabel opent en wijzigt. Omdat deze les een inleiding tot het gebruik van Transact-SQL is, worden de vele opties die beschikbaar zijn voor deze instructies niet gebruikt of beschreven.
Transact-SQL instructies kunnen op de volgende manieren naar de database-engine worden geschreven en ingediend:
Met behulp van SQL Server Management Studio. In deze zelfstudie wordt ervan uitgegaan dat u Management Studio gebruikt, maar u kunt ook Management Studio Express gebruiken. Dit is gratis te downloaden via het Microsoft Downloadcentrum.
Gebruik het hulpprogramma sqlcmd .
Door verbinding te maken vanuit een toepassing die u maakt.
De code wordt op dezelfde manier uitgevoerd op de database-engine en met dezelfde machtigingen, ongeacht hoe u de code-instructies verzendt.
Als u Transact-SQL instructies wilt uitvoeren in Management Studio, opent u Management Studio en maakt u verbinding met een exemplaar van de SQL Server Database Engine.
Prerequisites
U hebt SQL Server Management Studio en toegang tot een SQL Server-exemplaar nodig om deze zelfstudie te voltooien.
- Installeer SQL Server Management Studio-.
 
Als u geen SQL Server-exemplaar hebt, maakt u er een. Als u er een wilt maken, selecteert u uw platform via de volgende koppelingen. Als u SQL-verificatie kiest, gebruikt u uw SQL Server-aanmeldingsreferenties.
- Windows: Download SQL Server 2022 Developer Edition.
 - Linux: Quickstart: Sql Server Linux-containerinstallatiekopieën uitvoeren met Docker.
 
Een database maken
Net als bij veel Transact-SQL instructies heeft de instructie CREATE DATABASE een vereiste parameter: de naam van de database. 
              CREATE DATABASE bevat ook veel optionele parameters, zoals de schijflocatie waar u de databasebestanden wilt plaatsen. Wanneer u zonder de optionele parameters uitvoert CREATE DATABASE , gebruikt SQL Server standaardwaarden voor veel van deze parameters.
Typ in een queryeditorvenster, maar voer de volgende code niet uit:
CREATE DATABASE TestData GOGebruik de aanwijzer om de woorden
CREATE DATABASEte selecteren en druk op F1. HetCREATE DATABASEartikel moet worden geopend. U kunt deze techniek gebruiken om de volledige syntaxis te vinden voorCREATE DATABASEen voor de andere instructies die in deze zelfstudie worden gebruikt.Druk in De Query-editor op F5 om de instructie uit te voeren en een database met de naam
TestDatate maken.
Wanneer u een database maakt, maakt SQL Server een kopie van de model database en hernoemt deze naar de databasenaam. Deze bewerking duurt slechts enkele seconden, tenzij u een grote initiële grootte van de database opgeeft als een optionele parameter.
Note
Het trefwoord GO scheidt instructies wanneer meer dan één instructie in één batch wordt verzonden. 
              GO is optioneel wanneer de batch slechts één instructie bevat.
Een tabel maken
              van toepassing op:SQL Server
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
Als u een tabel wilt maken, moet u een naam opgeven voor de tabel en de namen en gegevenstypen van elke kolom in de tabel. Het is ook een goed idee om aan te geven of null-waarden zijn toegestaan in elke kolom. Als u een tabel wilt maken, moet u over de CREATE TABLE machtiging beschikken en over de ALTER SCHEMA machtiging voor het schema dat de tabel bevat. De db_ddladmin vaste databaserol heeft deze machtigingen.
De meeste tabellen hebben een primaire sleutel, samengesteld uit een of meer kolommen van de tabel. Een primaire sleutel is altijd uniek. De database-engine dwingt de beperking af dat geen primaire-sleutelwaarde herhaald kan worden in de tabel.
Zie Gegevenstypen voor een lijst met gegevenstypen en koppelingen voor een beschrijving van elk type.
Note
De database-engine kan worden geïnstalleerd met hoofdlettergevoeligheid of zonder hoofdlettergevoeligheid. Als de database-engine is geïnstalleerd als hoofdlettergevoelig, moeten objectnamen altijd hetzelfde hoofdlettergebruik hebben. Een tabel met de naam OrderData is bijvoorbeeld een andere tabel dan een tabel met de naam ORDERDATA. Als de database-engine is geïnstalleerd als hoofdletterongevoelig, worden deze twee tabelnamen gezien als dezelfde tabel en kan die naam slechts één keer worden gebruikt.
De queryeditorverbinding overschakelen naar de TestData-database
Typ en voer in een queryeditorvenster de volgende code in om de verbinding met de TestData database te wijzigen.
USE TestData
GO
De tabel maken
Typ en voer in een queryeditorvenster de volgende code uit om een tabel met de naam Productste maken. De kolommen in de tabel hebben de naam ProductID, ProductNameen PriceProductDescription. De ProductID kolom is de primaire sleutel van de tabel. 
              int, varchar(25), moneyen varchar(max) zijn alle gegevenstypen. Alleen de Price en ProductionDescription kolommen kunnen geen gegevens bevatten wanneer een rij wordt ingevoegd of gewijzigd. Deze instructie bevat een optioneel element (dbo.) dat een schema wordt genoemd. Het schema is het databaseobject dat eigenaar is van de tabel. Als u een beheerder bent, dbo is dit het standaardschema. 
              dbo staat voor database-eigenaar.
CREATE TABLE dbo.Products
    (ProductID int PRIMARY KEY NOT NULL,
    ProductName varchar(25) NOT NULL,
    Price money NULL,
    ProductDescription varchar(max) NULL)
GO
Gegevens invoegen en bijwerken in een tabel
Nu u de Products tabel hebt gemaakt, bent u klaar om gegevens in de tabel in te voegen met behulp van de INSERT instructie. Nadat de gegevens zijn ingevoegd, wijzigt u de inhoud van een rij met behulp van een UPDATE instructie. U gebruikt de WHERE component van de UPDATE instructie om de update te beperken tot één rij. De vier instructies voeren de volgende gegevens in.
| ProductID | ProductName | Price | ProductDescription | 
|---|---|---|---|
| 1 | Clamp | 12.48 | Workbench klem | 
| 50 | Schroevendraaier | 3.17 | Platte kop | 
| 75 | Bandenbalk | Gereedschap voor het wijzigen van banden. | |
| 3000 | 3 mm haakje | 0.52 | 
De basissyntaxis is: INSERT, tabelnaam, kolomlijst VALUESen vervolgens een lijst met de waarden die moeten worden ingevoegd. De twee afbreekstreepjes voor een regel geven aan dat de regel een opmerking is en dat de tekst wordt genegeerd door de compiler. In dit geval beschrijft de opmerking een toegestane variatie van de syntaxis.
Gegevens invoegen in een tabel
Voer de volgende instructie uit om een rij in te voegen in de
Productstabel die in de vorige taak is gemaakt.-- Standard syntax INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GOAls de invoegbewerking is voltooid, gaat u verder met de volgende stap.
Als de invoegbewerking mislukt, kan dit komen doordat de
Producttabel al een rij bevat met die product-id. Als u wilt doorgaan, verwijdert u alle rijen in de tabel en herhaalt u de vorige stap. MET TRUNCATE TABLE worden alle rijen in de tabel verwijderd.Voer de volgende opdracht uit om alle rijen in de tabel te verwijderen:
TRUNCATE TABLE TestData.dbo.Products; GONadat u de tabel hebt afgekapt, herhaalt u de
INSERTopdracht in deze stap.In de volgende instructie ziet u hoe u de volgorde kunt wijzigen waarin de parameters worden opgegeven door de plaatsing van en
ProductIDProductNamein zowel de lijst met velden (tussen haakjes) als in de lijst met waarden te wijzigen.-- Changing the order of the columns INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription) VALUES ('Screwdriver', 50, 3.17, 'Flat head') GODe volgende instructie laat zien dat de namen van de kolommen optioneel zijn, zolang de waarden in de juiste volgorde worden vermeld. Deze syntaxis is gebruikelijk, maar wordt niet aanbevolen omdat het voor anderen moeilijker is om uw code te begrijpen.
NULLis opgegeven voor dePricekolom omdat de prijs voor dit product nog niet bekend is.-- Skipping the column list, but keeping the values in order INSERT dbo.Products VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.') GODe schemanaam is optioneel zolang u een tabel in uw standaardschema opent en wijzigt. Omdat de
ProductDescriptionkolom null-waarden toestaat en er geen waarde wordt opgegeven, kunnen deProductDescriptionkolomnaam en -waarde volledig uit de instructie worden verwijderd.-- Dropping the optional dbo and dropping the ProductDescription column INSERT Products (ProductID, ProductName, Price) VALUES (3000, '3 mm Bracket', 0.52) GO
De tabel met producten bijwerken
Typ en voer de volgende instructie UPDATE uit om het tweede product ProductName te wijzigen van Screwdriver naar Flat Head Screwdriver.
UPDATE dbo.Products
    SET ProductName = 'Flat Head Screwdriver'
    WHERE ProductID = 50
GO
Gegevens uit een tabel lezen
Gebruik de SELECT instructie om de gegevens in een tabel te lezen. De SELECT instructie is een van de belangrijkste Transact-SQL instructies en er zijn veel variaties in de syntaxis. Voor deze zelfstudie werkt u met vijf basisversies.
De gegevens in een tabel lezen
Typ en voer de volgende instructies uit om de gegevens in de
Productstabel te lezen.-- The basic syntax for reading data from a single table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GOU kunt een sterretje (
*) gebruiken om alle kolommen in de tabel te selecteren. Het sterretje is bedoeld voor ad-hocquery's. Geef in permanente code de kolomlijst op, zodat de instructie de voorspelde kolommen retourneert, zelfs als er later een nieuwe kolom aan de tabel wordt toegevoegd.-- Returns all columns in the table -- Does not use the optional schema, dbo SELECT * FROM Products GOU kunt kolommen weglaten die u niet wilt retourneren. De kolommen worden geretourneerd in de volgorde waarin ze worden weergegeven.
-- Returns only two of the columns from the table SELECT ProductName, Price FROM dbo.Products GOGebruik een
WHEREcomponent om de rijen te beperken die worden geretourneerd aan de gebruiker.-- Returns only two of the records in the table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products WHERE ProductID < 60 GOU kunt met de waarden in de kolommen werken terwijl ze worden geretourneerd. In het volgende voorbeeld wordt een wiskundige bewerking uitgevoerd op de
Pricekolom. Kolommen die op deze manier zijn gewijzigd, hebben geen naam, tenzij u er een opgeeft met behulp van hetAStrefwoord.-- Returns ProductName and the Price including a 7% tax -- Provides the name CustomerPays for the calculated column SELECT ProductName, Price * 1.07 AS CustomerPays FROM dbo.Products GO
Nuttige functies in een SELECT-instructie
Zie de volgende artikelen voor informatie over bepaalde functies die u kunt gebruiken om met gegevens in SELECT instructies te werken:
Weergaven en opgeslagen procedures maken
Een weergave is een opgeslagen instructie en een opgeslagen SELECT procedure is een of meer Transact-SQL instructies die als batch worden uitgevoerd.
Weergaven worden opgevraagd als tabellen en accepteren geen parameters. Opgeslagen procedures zijn complexer dan weergaven. Opgeslagen procedures kunnen zowel invoer- als uitvoerparameters bevatten en kunnen instructies bevatten om de stroom van de code te beheren, zoals IF en WHILE instructies. Het is een goede programmeerpraktijk om opgeslagen procedures te gebruiken voor alle terugkerende acties in de database.
In dit voorbeeld gebruikt CREATE u VIEW om een weergave te maken die slechts twee kolommen in de Products tabel selecteert. Vervolgens gebruikt CREATE PROCEDURE u om een opgeslagen procedure te maken die een prijsparameter accepteert en alleen producten retourneert die lager zijn dan de opgegeven parameterwaarde.
Een weergave maken
Voer de volgende instructie uit om een weergave te maken die een select-instructie uitvoert en retourneert de namen en prijzen van onze producten aan de gebruiker.
CREATE VIEW vw_Names
   AS
   SELECT ProductName, Price FROM Products;
GO
De weergave testen
Weergaven worden net als tabellen behandeld. Gebruik een SELECT statement om toegang te krijgen tot een weergave.
SELECT * FROM vw_Names;
GO
Een opgeslagen procedure maken
Met de volgende instructie maakt u een opgeslagen procedurenaam pr_Names, accepteert u een invoerparameter met de naam @VarPrice van het gegevenstype money. Opgeslagen procedure drukt de instructie Products less than af, samengevoegd met de invoerparameter die is omgezet van het money gegevenstype naar een varchar(10) tekengegevenstype. Vervolgens voert de procedure een SELECT instructie uit in de weergave, waarbij de invoerparameter wordt doorgegeven als onderdeel van de WHERE component. Hiermee worden alle producten geretourneerd die minder kosten dan de waarde van de invoerparameter.
CREATE PROCEDURE pr_Names @VarPrice money
   AS
   BEGIN
      -- The print statement returns text to the user
      PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));
      -- A second statement starts here
      SELECT ProductName, Price FROM vw_Names
            WHERE Price < @VarPrice;
   END
GO
De opgeslagen procedure testen
Als u de opgeslagen procedure wilt testen, typt en voert u de volgende instructie uit. De procedure moet de namen retourneren van de twee producten die in de Products tabel in les 1 zijn ingevoerd met een prijs die kleiner is dan 10.00.
EXECUTE pr_Names 10.00;
GO