Wat is SQL?
De standaardtaal voor het definiëren van tabellen, het zoeken, toevoegen, wijzigen en verwijderen van gegevens en het regelen van rechten in relationele databases. Ze is gestandaardiseerd door ISO/IEC (in Japan ook als JIS). Tot haar statements behoren SELECT, INSERT, UPDATE, DELETE, CREATE TABLE en GRANT.
Japanse benaming: SQL
“SQL” komt voor in 15 oefenvragen uit 3 onderwerpen, bijv. Basis van databases, Basis van informatiebeveiliging, LSI-ontwerpflow en EDA.
Vakgebied: Basis van databases
Soorten SQL-statements
SQL-statements vallen naar hun rol grofweg in drie groepen uiteen. De datadefinitietaal (DDL), zoals CREATE, ALTER en DROP, definieert structuren zoals tabellen, views en indexen. De datamanipulatietaal (DML), zoals SELECT, INSERT, UPDATE en DELETE, bewerkt de gegevens in tabellen. De datacontroletaal (DCL), zoals GRANT en REVOKE, regelt rechten. COMMIT, dat een transactie definitief maakt, en ROLLBACK, dat haar ongedaan maakt, worden soms tot DCL gerekend en soms apart behandeld als statements voor transactiebeheer.
De clausules van het SELECT-statement en hun verwerkingsvolgorde
Een SELECT-statement wordt geschreven door clausules op te sommen, zoals in SELECT kolommen FROM tabel WHERE voorwaarde GROUP BY kolommen HAVING voorwaarde ORDER BY kolommen. Anders dan de geschreven volgorde is de verwerking gemakkelijker te begrijpen als FROM (tabellen kiezen en joinen), WHERE (rijen selecteren), GROUP BY (groepen vormen), HAVING (groepen selecteren), SELECT (kolommen nemen en aggregatiefuncties berekenen) en ORDER BY (sorteren). Daarom kunnen aggregatiefuncties niet in WHERE staan en horen voorwaarden op groepen in HAVING.
Veelgestelde vragen
Wat is het verschil tussen de WHERE- en de HAVING-clausule in SQL?
De WHERE-clausule is een voorwaarde op afzonderlijke rijen vóór het groeperen, en aggregatiefuncties kunnen er niet in staan. De HAVING-clausule is een voorwaarde op de groepen die GROUP BY vormt, en kan aggregatiefuncties gebruiken, zoals in HAVING SUM(Bedrag) >= 1000.
Hoe vind je in SQL rijen met NULL?
Schrijf WHERE kolom IS NULL. WHERE kolom = NULL selecteert geen enkele rij, omdat een vergelijking met NULL nooit waar is. Rijen die niet NULL zijn, worden geselecteerd met IS NOT NULL.