Ibland kan det vara bra att även ta bort data ur en databas. Lägger man till villkor för vilka poster som ska tas bort så slipper man leta upp dom manuellt. Jag utnyttjar en tabell med dessa fält inklusive några poster för att exemplet ska fungera:
Det handlar alltså om ett adressregister där tabellen heter ”Adressregister”.
Gå in i menyn Verktyg/SQL och kopiera in allting som står inom citatet för att få tabellen Adressregister med medföljande data:
CREATE TABLE ”Adressregister”
(”ID” Integer PRIMARY KEY, ”Förnamn” char(50), ”Efternamn” char(50), ”Adress” char(50), ”Postnummer” char(50), ”Postadress” char(50));INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(0, ’Peter’, ’Andersson’, ’Storgatan 4’, ’678 65’, ’Göteborg’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(1, ’Sven’, ’Gustavsson’, ’Allmänna stigen 36’, ’566 56’, ’Örnsköldsvik’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(2, ’Algot’, ’Blomkvist’, ’Västra gatan 25’, ’678 65’, ’Stockholm’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(3, ’Emma’, ’Hultkvist’, ’Gränden 3’, ’765 56’, ’Göteborg’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(4, ’Johanna’,’Evertsson’, ’Höjden 3’, ’566 88’, ’Falköping’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(5, ’Evelina’, ’Jonasson’, ’Östra gatan 87’, ’766 65’, ’Stockholm’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(6, ’Finn’,’Rutgersson’,’Skojarbacken 44′,’655 67′,’Linköping’);
INSERT INTO ”Adressregister”
(”ID”, ”Förnamn”, ”Efternamn”, ”Adress”, ”Postnummer”, ”Postadress”)VALUES(7, ’Anders’,’Andersson’,’Storgatan 12′,’678 65′,’Göteborg’);
Glöm inte att gå in i menyn Visa och ”uppdatera tabeller”.
Nu skulle jag vilja ta bort alla personer som bor i Stockholm från registret.
Som vanligt går vi in i menyn Verktyg/SQL och skriver sen in följande text:
DELETE FROM ”Adressregister”
WHERE ”Postadress”=’Stockholm’
Texten behöver knappast någon närmare förklaring mer än att jag återigen måste nämna att tabellnamn och fältnamn kräver dubbelfnuttar och värden enkelfnutt, dvs. det som hamnar efter lika-med-tecknet. Detta skiljer sig från program till program och Base är uppbyggt på detta sätt.
Så här ser tabellen ut efter man kört sql-kommandot:
Vi har fått bort alla personer från Stockholm från tabellen.
Nu försvårar vi det hela en smula. Jag vill nu ta bort alla personer som bor på Storgatan i Göteborg. Som vi kan se så finns här tre personer i nuläget. Problemet är att vi har två Storgatan med olika nummer på gatan. Alltså kan vi inte sätta ett lika-med-tecken.
Nu skriver vi därför in följande sql-kommando:
DELETE FROM ”Adressregister”
WHERE ”Postadress”=’Göteborg’ AND ”Adress” LIKE ’Storgatan*’
och tabellen ser ut på följande sätt efter vi kört kommandot:
I denna fråga använde vi oss av LIKE och satte sen värdet Storgatan med jokertecknet * efteråt. Detta betyder att alla poster som innehåller Göteborg från kolumnen Postadress samt där adressen börjar med Storgatan kommer att tas bort.