INSERT INTO (MySQL): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 17: Regel 17:
 
INSERT INTO table_name
 
INSERT INTO table_name
 
VALUES  
 
VALUES  
   (value1, value2,...valueN),
+
   (value1, value2, ..., valueN),
   (value1, value2,...valueN),
+
   (value1, value2, ..., valueN),
   (value1, value2,...valueN);
+
   (value1, value2, ..., valueN);
 
</pre>
 
</pre>
  

Versie van 5 nov 2015 14:51

Er zijn verschillende methodes om data in records in te voeren. Onder andere MySQL Workbench en PMA bieden hiervoor mogelijkheden. Dit artikel behandelt SQL-methodes.

SQL met embedde data

Data kan ingevoerd worden met ingebedde SQL-statements. Dat is een vreemde eend in de bijts, omdat data en commando's daarbij vermengd raken. Desalniettemin is het vaak een goede oplossing. Bv.:

  • In situaties waarin ik anders handmatig data zou aanpassen. Door het in een script te stoppen, is het herhaalbaar
  • Database-dumps.

INSERT INTO is de standaardmanier om records in te voeren vanuit code. Er zijn twee syntaxises:

Zonder kolomnamen

Indien je geen kolomnamen gebruikt, moeten alle kolommen worden opgenomen in VALUES(). Meerdere records kunnen in één statement worden opgenomen. Dat kun je bv. zien bij mysqldump-output. Bv.:

INSERT INTO table_name
VALUES 
   (value1, value2, ..., valueN),
   (value1, value2, ..., valueN),
   (value1, value2, ..., valueN);

Inclusief kolomnamen

Voorbeeld:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');

Vanuit een andere tabel

Hierbij hoef je alleen velden te benoemen die gebruikt worden.

Bv.:

insert into term_data
select null, 15, naam, "", 0 
from term_data_nieuw;

Ander voorbeeld:

insert into tbl_ad 
select 
	"master" as account,
	"Merken" as campaign,
	adgroup as adgroup,
	headline as headline,
	line1 as line1,
	line2 as line2,
	displayurl as displayurl,
	finalurl as finalurl,
	"campagne-oktober-2015" as memo
from tbl_ad_tmp;	

Vanuit een andere tabel + een constante

insert into term_hierarchy
select 
   tid, 
   (select tid from term_data where name = "Merk" and description="Koolborstels op merk") 
from term_data 
where description like "Alle koolborstels voor %";