sql >> Database >  >> RDS >> Mysql

Meerdere rijen invoegen in een enkele SQL-query - Interviewvraag van de week #069

Er zijn zoveel verschillende databases in de wereld en velen van hen gebruiken de taal SQL voor hun programmering. Het is heel gemakkelijk om aan te nemen dat als ze SQL gebruiken, we gemakkelijk code van de ene database naar een andere database kunnen gebruiken. Helaas is de realiteit heel anders, niet alle scripts uit de ene database werken in een andere database. Vandaag zullen we een zeer interessante vraag zien waarbij de gebruiker een vraag heeft gesteld over het invoegen van meerdere rijen in een enkele SQL-query.

Vraag: Schrijf een SQL-code die meerdere rijen in een enkele SQL-query zal invoegen. De voorwaarde voor dit script was dat het zou moeten werken in SQL Server, MySQL en PostgreSQL zonder een enkele regelcode te wijzigen.

Antwoord: Het schrijven van een code om meerdere rijen in een enkele SQL-query in te voegen is geen moeilijke taak, maar het is inderdaad een uitdaging om een ​​script te maken dat met meerdere databases werkt. Het is echter mogelijk om een ​​script te maken dat in meerdere databases werkt.

Laten we eerst een voorbeeldtabel maken met twee kolommen erin. Nadat de tabel is gemaakt, voegt u drie verschillende rijen in een enkele SQL-query in.

CREATE TABLE SampleTable (ID INT, Col1 VARCHAR(100));
INSERT INTO SampleTable (ID, Col1)
VALUES (1, 'One'), (2, 'Two'), (3, 'Three');
SELECT *
FROM SampleTable;
DROP TABLE SampleTable;

Laten we deze query nu in meerdere databases uitvoeren en het resultaat bekijken.

SQL Server

MySQL

PostgreSQL

Dat is het. Dit was inderdaad een zeer interessante vraag. Zodat u het weet, kunt u ook het SQL-script bouwen met behulp van de UNION. De oplossing die in deze zoekopdracht werd aangetoond, is echter de nieuwe weg.


  1. Haal de id van de ingevoegde rij op met C#

  2. Kunnen we primaire sleutelwaarden van een tabel bijwerken?

  3. Hoe Oracle SQL-script uit te voeren via Java-code

  4. Een databaseback-up herstellen in OpenCart 1.5