{"id":23,"date":"2021-03-25T08:15:17","date_gmt":"2021-03-25T08:15:17","guid":{"rendered":"https:\/\/sqltutorial.nl\/?p=23"},"modified":"2025-11-08T10:47:35","modified_gmt":"2025-11-08T09:47:35","slug":"constraints","status":"publish","type":"post","link":"https:\/\/sqltutorial.nl\/constraints\/","title":{"rendered":"Constraints in SQL: Dwing eenvoudig bepaald gedrag af"},"content":{"rendered":"\n<p>Constraints zijn bedoeld voor het afdwingen van bepaalde invoer op velden. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Voorbeelden van constraints zijn:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Not Null<\/strong>: Voor het afdwingen van verplichte invoer van een bepaald veld.<\/li>\n\n\n\n<li><strong>Unique:<\/strong> Voor het afdwingen van een unieke waarde in een tabel.<\/li>\n\n\n\n<li><strong>Primary key:<\/strong> Voor het afdwingen van een primaire waarde in een tabel, deze dient als sleutel.<\/li>\n\n\n\n<li><strong>Foreign key<\/strong>: Voor het leggen van relaties tussen meerdere tabellen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-not-null\">Not Null<\/h2>\n\n\n\n<p>Het is mogelijk om lege waardes in een tabel op te slaan, dit zijn&nbsp;<code>NULL<\/code>&nbsp;waardes. Met de&nbsp;<code>NOT NULL<\/code>&nbsp;constraint kan aangegeven worden of een bepaald veld verplicht ingevuld moet worden. dit veld mag dus geen&nbsp;<code>NULL<\/code>&nbsp;waarde bevatten. De constraint kan worden toegevoegd bij het&nbsp;<a href=\"https:\/\/sqltutorial.nl\/create-table\/\">maken van de tabel<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql line-numbers\">CREATE TABLE tabelnaam\n    (\n        kolomnaam1 datatype NOT NULL,\n        kolomnaam2 datatype\n    )<\/code><\/pre>\n\n\n\n<p>Genomen het voorbeeld&nbsp;<a href=\"https:\/\/sqltutorial.nl\/create-table\/\">waarin een tabel<\/a>&nbsp;wordt gemaakt voor het opslaan van persoonsgevens. Deze gegevens bestaan onder andere uit de voor, &#8211; en achternaam, woonplaats en geslacht.<\/p>\n\n\n\n<p>In het voorbeeld hieronder zal worden afgedwongen dat de voor, &#8211; en achternaam geen lege waarde (<code>NULL<\/code>) mag bevatten. De velden moeten dus worden ingevuld.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql line-numbers\">CREATE TABLE persoon\n\t(\n\t\tid int,\n\t\tvoornaam varchar(255) NOT NULL,\n\t\tachternaam varchar(255) NOT NULL,\n\t\twoonplaats varchar(255),\n\t\tgeslacht varchar(1)\n\t)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Unique<\/h2>\n\n\n\n<p>Er zijn situaties waarin de combinatie van \u00e9\u00e9n of meerdere kolommen uniek moet zijn. Hierbij valt te denken aan unieke ID nummers. Het afdwingen van unieke waardes kan gedaan worden met de&nbsp;<code>UNIQUE<\/code>&nbsp;constraint.<\/p>\n\n\n\n<p>De syntax van de&nbsp;<code>UNIQUE<\/code>&nbsp;contraint ziet er als volgt uit&nbsp;<code>CONSTRAINT Constraintnaam UNIQUE kolomnaam1<\/code><\/p>\n\n\n\n<p>Het is ook mogelijk om een combinatie van meerdere velden als constraint op te geven door middel&nbsp;<code>CONSTRAINT Constraintnaam UNIQUE ( kolomnaam1, kolomnaam2 )<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Identificatie<\/h3>\n\n\n\n<p>Hierboven is&nbsp;<em>Constraintnaam<\/em>&nbsp;gebruikt als naam voor de constraint. Deze naam is bedoeld als identificatie van de constraint. Deze identificatie moet uniek zijn over alle constraints voor de tabel in kwestie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>UNIQUE<\/code>&nbsp;constraint toevoegen<\/h3>\n\n\n\n<p>Het toepassen van de&nbsp;<code>UNIQUE<\/code>&nbsp;constraint kan worden gedaan bij het&nbsp;<a href=\"https:\/\/sqltutorial.nl\/create-table\/\">maken van de tabel<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql line-numbers\">CREATE TABLE tabelnaam\n    (\n        kolomnaam1 datatype NOT NULL,\n        kolomnaam2 datatype,\n        CONSTRAINT Constraintnaam UNIQUE kolomnaam1\n    )\n<\/code><\/pre>\n\n\n\n<p>Het is ook mogelijk om een constraint later toe te voegen voor een bestaande table. Hiervoor kan het&nbsp;<a href=\"https:\/\/sqltutorial.nl\/alter-table\/\"><code>ALTER TABLE<\/code>&nbsp;statement<\/a>&nbsp;gebruikt worden.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ALTER TABLE tabelnaam\n    ADD CONSTRAINT Constraintnaam UNIQUE ( kolomnaam1, kolomnaam2 )\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><code>UNIQUE<\/code>&nbsp;constraint verwijderen<\/h3>\n\n\n\n<p>Voor het verwijderen van de UNIQUE constraint kan het&nbsp;<a href=\"https:\/\/sqltutorial.nl\/alter-table\/\"><code>ALTER TABLE<\/code>&nbsp;statement<\/a>&nbsp;gebruikt worden.<\/p>\n\n\n\n<p>In MySQL is het statement&nbsp;<code>ALTER TABLE tabelnaam DROP INDEX Constraintnaam;<\/code>&nbsp;en voor de &#8216;meeste&#8217; andere databases is dit&nbsp;<code>ALTER TABLE tabelnaam DROP CONSTRAINT Constraintnaam;<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Primary key<\/h2>\n\n\n\n<p>De&nbsp;primary key, ofwel <a href=\"https:\/\/sqltutorial.nl\/de-primary-key-in-database-tabellen\/\">primaire sleute<\/a>l, identificeert ieder record in een tabel. De primary key zorgt ervoor dat ieder veld dat ingevoerd wordt niet leeg mag zijn en dat het een unieke waarde heeft. Per tabel kan er maximaal \u00e9\u00e9n primary key gedefinieerd worden.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql line-numbers\">CREATE TABLE tabelnaam\n    (\n        kolomnaam1 datatype,\n        kolomnaam2 datatype,\n        CONSTRAINT Constraintnaam PRIMARY KEY (kolomnaam)\n    )<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Foreign key<\/h2>\n\n\n\n<p>De&nbsp;foreign key, oftewel verwijzende sleutel, verwijst naar data in een andere tabel. Met de foreign key kunnen relaties worden gelegd tussen verschillende tabellen. De syntax voor het aanmaken van een foreign key, ziet er als volgt uit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql line-numbers\">CREATE TABLE tabelnaam\n    (\n        kolomnaam1 datatype,\n        kolomnaam2 datatype,\n        CONSTRAINT Constraintnaam FOREIGN KEY (kolomnaam)\n        REFERENCES tabelnaam(kolomnaam)\n    )<\/code><\/pre>\n\n\n\n<p>In onderstaand voorbeeld wordt de tabel orders gemaakt, in deze tabel wordt het id-nummer opgeslagen, de datum van inboeken en een verwijzing naar het persoonsnummer van tabel Persoon. De kolom persoonNr zal verwijzen naar het het kolom id in de tabel Persoon.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql line-numbers\">CREATE TABLE Orders\n    (\n        orderNr int,\n        persoonNr int,\n        orderDatum datetime,\n        CONSTRAINT PK_persoon PRIMARY KEY (id)\n        CONSTRAINT FK_Order_personen FOREIGN KEY (persoonNr)\n        REFERENCES Persoon(id)\n    )\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Constraints zijn bedoeld voor het afdwingen van bepaalde invoer op velden.<\/p>\n","protected":false},"author":5,"featured_media":734,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"favit-monetize-post":true,"favit-sponsored-post":false,"footnotes":""},"categories":[2],"tags":[],"content_cluster":[],"class_list":["post-23","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ddl"],"_links":{"self":[{"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":4,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":437,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/posts\/23\/revisions\/437"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/media\/734"}],"wp:attachment":[{"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/tags?post=23"},{"taxonomy":"content_cluster","embeddable":true,"href":"https:\/\/sqltutorial.nl\/wp-json\/wp\/v2\/content_cluster?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}