Fysiek model

Het fysieke datamodel is geschikt om de database te beschrijven


Datagrip

  • met DataGrip is het mogelijk om de database te benaderen
  • Gebruik daarvoor de gegevens zoals deze onder het kopje praktijk van onderwijsonline

Datatypes

TypeBetekenis
varchar (x)Tekst van lengte x
char (x)Tekst van lengte x
intGeheel getal
decimal (x,y)Getal met x posities, met een decimal seperator op positie y
dateDatum
CLOBCharacter Large Object: grote teksten gigabytes
BLOBBinary Large Object: grote binaire bestanden van gigabytes

DDL: creatie van tabellen

DDL, Data Definition Language (or Statements) is de groep SQL statements waarmee je tabellen kunt aanmaken en verwijderen - CREATE - ALTER - DROP

  • Tabellen bestaan uit kolommen met verschillende datatypes

Create

CREATE TABLE student (
	stud_id    CHAR(9),
	voornaam     VARCHAR(25),
	tussenv     VARCHAR(10),
	achternaam     VARCHAR(25),
	geb_datum    DATE, 
	reistijd     DECIMAL(7,2)
);

Alter

  • Met alter kun je de structuur van een tabel wijzigen
  • Dit gebruik je niet vaak omdat dit een dure database actie is

Drop

drop table student;
  • Het droppen van een tabel is (afhankelijk vam de database) niet meer ongedaan te maken

Null

  • Null (spreek je uit als nil) is in database jargon leeg
  • Null is niet van toepassing of onbekend
  • Null is iets anders dan 0 of een spatie


Constraints

  • Er zijn 5 constraints die we aan tabellen mee kunnen geven
  • Constraints zijn Beperkingen/Aanwijzingen die gelden voor een kolom of groep kolommen
NaamAfkortingBetekenis
1Primary KeyPKIdentificeert een rij
2Foreign KeyFKVerwijst naar een andere(foreign) rij
3UniqueUKUniek in die kolom
4Not NullNNMag niet leeg zijn
5CheckCControle op inhoud

Primary Key: PK

  • De primary key is de identificerende sleutel
  • is nooit leeg (nooit null)
  • Bevat een unieke waarde
  • Maximaal 1 PK per tabel

Foreign Key: FK

  • is de refererende sleutel

  • Verwijst naar een andere kolom

  • Kan leeg (Null) zijn

  • Is niet uniek

  • Een foreign key kan specificeren wat er moet gebeuren met het child record bij een delete/update van het parent record

Unique: UK

  • Unique constraint dwingt uniciteit af
  • Kan meerdere keren in een tabel voorkomen
  • Iedere waarde in een kolom is uniek
  • Niet altijd ingevuld

Not Null: NN

  • Dwingt af dat iets ingevuld moet zijn
  • zoals bijvoorbeeld voornaam

Check: C

  • Dwingt af dat er een bepaalde waarde is opgenomen
  • Voorkom invoer van niet integere gegevens

DDL Samenvatting

  • DDL, Data Definition Language (or Statements) is de groep SQL statements waarmee je tabellen kunt aanmaken en verwijderen
    • CREATE
    • ALTER
    • DROP
  • Tabellen bestaan uit kolommen met verschillende datatypes
TypeBetekenis
varchar (x)Tekst van lengte x
char (x)Tekst van lengte x
intGeheel getal
decimal (x,y)Getal met x posities, met een decimal seperator op positie y
dateDatum
CLOBCharacter Large Object: grote teksten gigabytes
BLOBBinary Large Object: grote binaire bestanden van gigabytes
  • Een kolom kan een extra eigenschappen hebben:
    • Controle op uniciteit (Unique(UK))
    • Controle op de inhoud (Check (C))

DML - Data Manipulation Language

Insert

insert into student values 
(534845,‘Gonny',null,‘Henkes’); 

Of

insert into student 
(student_nr, voornaam, achternaam) 
values (534845,‘Gonny',‘Henkes');

Delete

delete from student;
  • maar dit zal alle studenten verwijden
delete from student
where student_nr = 527727;
DELETE FROM 'table_name' 
WHERE 'condition'; 

Update

update student 
set   email = 'Thijn.vanKempen@han.nl'
where student_nr = 514697
UPDATE table 
SET column = expression 
	[,column = expression ,...] 
[WHERE condition]; 

Pagina 44


DRL- Data Retrieval Language

  • DRL is de statement dat we het meest zullen gebruiken

Select

  • Het is ook het meest complexe statement
  • het begint altijd met select
  • De volgende hoofdstukken zullen daar over gaan
select <kolomnamen {OF} * > 
from <tabel> 
select voornaam
,    achternaam
,    email 
from student 

Distinct

Distinct zorgt voor unieke waardes in de resultaat set

select distinct klas_id
from    student

Where clausule

select *
from    student 
where voornaam = 'Freek'