sql >> Database >  >> RDS >> Sqlserver

Wat zijn de verschillende manieren om gegevens in de SQL Server-tabel in te voegen - SQL Server / TSQL-zelfstudie, deel 100

Scenario:

Als SQL Server-ontwikkelaar moet je verschillende manieren hebben om gegevens in de SQL Server-tabel in te voegen.
Soms moet je gewoon statische records invoegen, soms moet je gegevens van een andere tabel in een bestaande tabel invoegen. Laten we eens kijken naar verschillende technieken om gegevens in de SQL Server-tabel in te voegen.

Oplossing:

Laten we eerst de dbo.Customer-tabel maken met behulp van onderstaande definitie.
USE yourDatabaseName
Go
Create Table dbo.Customer(
Id int identity(1,1),
FName VARCHAR(50),
LName VARCHAR(50),
Age int,
DOB Date,
Salary Numeric(6,2))
 
 

1) Gebruik meerdere invoegingen om gegevens in de tabel in te voegen.


Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values('Aamir','Shahzad',36,'1980-01-01',5000.50)
GO
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values ('Raza','M',33,'1983-03-03',4900.34)
GO
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values ('John','Smith',26,'1990-04-05',5000.50)
 
 
 

2) Gebruik enkele invoeging met meerdere waarden

Zoals in het bovenstaande voorbeeld, gebruiken we meerdere inserts. Elk was het invoegen van een enkel record. In SQL Server kunnen we een enkele Insert gebruiken met meerdere waarden zoals hieronder getoond.
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values('Aamir','Shahzad',36,'1980-01-01',5000.50),
('Raza','M',33,'1983-03-03',4900.34),
('John','Smith',26,'1990-04-05',5000.50)
 
 

3) Gebruik Selecteren met Invoegen om records in te voegen

We kunnen Invoegen met selectiequery gebruiken om de resultatenset in te voegen die wordt geretourneerd door de selectiequery.
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary
union all
Select 'Raza','M',33,'1983-03-03',4900.34
Union all
Select 'John','Smith',26,'1990-04-05',5000.50
 
 
 

4) Gebruik Invoegen zonder kolomnamen op te geven

Zoals je in bovenstaande voorbeelden hebt gezien, heb ik kolomlijst gebruikt met Invoegen, je hoeft dat niet te gebruiken als je weet dat de volgorde van kolommen en waarden die je gebruikt ook in orde zijn. Ik gebruik altijd de kolomlijst in invoegen en selecteer om ervoor te zorgen dat ik de juiste gegevens in de tabel in de juiste kolommen invoeg.
--Insert without provide Column Names
Insert into dbo.Customer
Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary
union all
Select 'Raza','M',33,'1983-03-03',4900.34
Union all
Select 'John','Smith',26,'1990-04-05',5000.50
 
Also we can use the insert without Column Names with Values option
 
Insert into dbo.Customer
Values('Aamir','Shahzad',36,'1980-01-01',5000.50),
('Raza','M',33,'1983-03-03',4900.34),
('John','Smith',26,'1990-04-05',5000.50)
 

5) Gegevens uit een andere tabel in de bestemmingstabel invoegen

Zoals we hebben gezien, kunnen de resultaten van de geselecteerde query in de tabel worden ingevoegd. In bovenstaande voorbeelden hebben we de statische waarden met select gebruikt. U kunt de gegevens uit tabel, weergave en functie enz. selecteren om in uw tabel in te voegen. Laten we zeggen of we gegevens in de dbo.Customer-tabel willen invoegen vanuit de dbo.CustomerUS-tabel. u kunt onderstaande query gebruiken.
--Insert into table from another table
Select into dbo.Customer(FName,LName,Age,DOB,Salary)
Select FName,LName,Age,DOB,Salary from dbo.CustomerUS


Videodemo:gegevens in de SQL Server-tabel invoegen met behulp van T-SQL-instructies


  1. Postgres gebruikt geen index wanneer indexscan een veel betere optie is

  2. Oracle Concurrent Manager

  3. Onverwachte geclusterde indexfragmentatie

  4. MySQL:hoe beveilig je op rijniveau (zoals Oracle's Virtual Private Database)?