DESCRIBE#
%LOAD ../data/employees.db
Het kan belangrijk zijn dat je de precieze structuur van een tabel weet. Bijvoorbeeld als je nieuwe rijen wil invoegen in de tabel. Je moet dan weten van welk type data elke kolom is en of een kolom leeg mag worden gelaten of niet. Je kunt de informatie opvragen met het commando DESCRIBE
of kortweg DESC
. In onderstaand voorbeeld vragen we de structuur op van de tabel departments.
DESC departments;
In de kolom Null
kun je zien dat het veld department_id
niet mag worden leeggelaten als er nieuwe rijen worden toegevoegd. Dat veld dient namelijk als primary key. Dat kun je zien bij Key
.
Tabel-structuur in SQLite#
SQLite heeft geen DESCRIBE
opdracht, maar je kunt de structuur van een tabel achterhalen uit de tabel sqlite_schema
.
Deze tabel beschrijft niet alleen de tabellen van de huidige database, maar ook de eventuele views op deze tabellen.
SELECT sql
FROM sqlite_schema
WHERE type = 'table' and name = 'departments';
sql |
---|
CREATE TABLE `departments` ( `department_id` smallint(6) NOT NULL DEFAULT '0', `department_name` varchar(30) DEFAULT NULL, `manager_id` int(11) DEFAULT NULL, `location_id` smallint(6) DEFAULT NULL, PRIMARY KEY (`department_id`) ) |
Het resultaat van deze query is de opdracht waarmee de tabel gemaakt is. Ook in dit geval zie je dat department_id
de primary key is van de tabel.
Schema#
Het schema van een database beschrijft de structuur van alle tabellen, inclusief de manier waarop de tabellen naar elkaar verwijzen. Vaak wordt dit schema in grafische vorm gegeven.
Hieronder zie je het schema van de employees
database, getekend met MySQL Workbench.
FIGUUR - schema