SQL Basis

Hoofdstuk 16 - Updating & Deleting Data

  • Met een UPDATE statement kunnen twee dingen worden gedaan
    1. Specifieke rijen updaten
    2. Alle rijen updaten
  • Bij een UPDATE gebruik je altijd een WHERE clausule voor de veiligheid
  • Als geen WHERE clausule is opgegeven dan krijgen alle rijen een update!

-- Oracle / MySQL / SQL Server	
UPDATE   Customers
SET      cust_contact = 'Hans Kazan',
         cust_email = '123@123.com'
WHERE    cust_id = '1000000006'; 

1 rij krijgt een update


  • In een UPDATE statement kunnen ook subqueries gebruikt worden
  • Om een veld leeg te maken kun je het updaten met NULL
  • Met een DELETE statement kunnen twee dingen worden gedaan
    1. Verwijder een specifieke rij
    2. Verwijder alle rijen
  • Gebruik bij het verwijderen van een rij altijd een WHERE clausule
  • Als geen WHERE clausule is opgegeven dan worden alle rijen verwijderd!

-- Oracle / MySQL / SQL Server	
DELETE FROM Customers
WHERE cust_id IN ('1000000006','1000000007','DLL01');  

1 rij wordt verwijderd


  • Een Foreign Key verbind een tabel met een andere tabel; relaties
  • Een DBMS zal rijen met een relatie naar een andere tabel niet willen verwijderen
  • Bij een DELETE statement geef je geen kolommen op, hij verwijderd immers alleen rijen en geen kolommen
  • Een DELETE statement verwijderd rijen en nooit de tabel zelf

  • Soms is het ook mogelijk om een kolom te verwijderen
-- Oracle / MySQL / SQL Server
ALTER TABLE custCopy
DROP COLUMN cust_email;	

  • Om ALLE rijen uit een tabel te verwijderen gebruik je geen DELETE maar het TRUNCATE TABLE statement
  • Het TRUNCATE statement is veel sneller want de wijzigingen worden niet gelogd
  • Je kunt geen 'roll back' of 'undo' uitvoeren na een TRUNCATE TABLE statement
-- Oracle / MySQL / SQL Server
TRUNCATE TABLE custCopy; 	

Wanneer bij het updaten of verwijderen geen WHERE clausule is gebruikt worden alle rijen in een tabel gewijzigd of verwijderd. Wees daarom heel voorzichtig met deze statements. Hieronder staan een aantal regels die veel programmeurs in acht nemen

  1. Gebruik nooit een UPDATE of DELETE zonder een WHERE clausule
  2. Zorg dat elke tabel een Primary Key heeft en gebruik deze in de WHERE clausule
  3. Voor je een update of delete uitvoerd test eerst de WHERE clausule met een SELECT statement
  4. Gebruik een database implementatie die de relaties van tabellen intact houdt 'Database-enforced referential integrity '
  5. Stel als database administrator een beperking in op updates en deletes zonder WHERE clausule
  1. Verander de vend_name van de nieuw toegevoegde leverancier uit vraag 65 in 'Toys R Us'


  1. Verwijder de toegevoegde regel van oefening 65 uit de tabel Vendors