Tabelopbouw

Uitleg
De vet en cursief gedrukte woorden zijn de tabelnamen, daaronder staat in het onderlijnt welke kolom de primairy key is, en de onderstreepte en cursieve kolommen zijn foreign keys. Deze kolommen hebben een link met een kolom in één van de andere tabellen. (Dit wijst zich overigens vanzelf)

Achter de kolomnamen staat in het cursief, gescheiden door een komma, welke waarden er in die velden staan. (voorbeeld data) De data types heb ik er niet bij staan, ik neem aan dat je deze zelf wel kan bepalen en het is ook niet van groot belang voor de tutorial. (onderaan deze pagina staat nog wel een SQL dump van de database)


actors
id 1, 2, 3, 4
firstname Angel, Brador, John, Arno
lastname Jolige, Pittje, Depperd, Zwartebesje
birthdate 1977-10-05, 1979-05-16, 1957-09-24, 1959-04-03

movies
id 1, 2, 3
title Eduard Schaarhand, Tombe rijder, Zeven jaar in de bergen
subtitle Een sprookje van …, De wig des levens, Een tibetaans verhaaltje voor het slapengaan

movie_actors
id 1, 2, 3, 4, 5, 6
actor_id 4, 3, 2, 1, 1, 3
movie_id 2, 3, 3, 1, 2, 1


Deze opbouw wordt hier gebruikt in de tutorial om op een herkenbare manier te laten zien wat joins doen en hoe ze werken.

SQL dump

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
--
-- Tabel structuur voor tabel `actors`
--
CREATE TABLE IF NOT EXISTS `actors` (
  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `birthdate` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Gegevens worden uitgevoerd voor tabel `actors`
--
INSERT INTO `actors` (`id`, `firstname`, `lastname`, `birthdate`) VALUES
(1, 'Angel', 'Jolige', '1977-10-05'),
(2, 'Brador', 'Pittje', '1979-05-16'),
(3, 'John', 'Depperd', '1957-09-24'),
(4, 'Arno', 'Zwartebesje', '1959-04-03');
--
-- Tabel structuur voor tabel `movies`
--
CREATE TABLE IF NOT EXISTS `movies` (
  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `subtitle` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT AUTO_INCREMENT=4 ;
--
-- Gegevens worden uitgevoerd voor tabel `movies`
--
INSERT INTO `movies` (`id`, `title`, `subtitle`) VALUES
(1, 'Eduard Schaarhand', 'Een sprookje van ...'),
(2, 'Tombe rijder', 'De wig des levens'),
(3, 'Zeven jaar in de bergen', 'Een Tibetaans verhaaltje voor het slapengaan'),
(4, 'Caribische piraten', 'Een waargebeurd verhaal van Disney');
--
-- Tabel structuur voor tabel `movie_actors`
--
CREATE TABLE IF NOT EXISTS `movie_actors` (
  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `actor_id` int(8) unsigned NOT NULL,
  `movie_id` int(8) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `actor_id` (`actor_id`),
  KEY `movie_id` (`movie_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Gegevens worden uitgevoerd voor tabel `movie_actors`
--
INSERT INTO `movie_actors` (`id`, `actor_id`, `movie_id`) VALUES
(1, 4, 2),
(2, 3, 3),
(3, 2, 3),
(4, 1, 1),
(5, 1, 2),
(6, 3, 1);
--
-- Beperkingen voor tabel `movie_actors`
--
ALTER TABLE `movie_actors`
  ADD CONSTRAINT `movie_actors_ibfk_2` FOREIGN KEY (`movie_id`) REFERENCES `movies` (`id`),
  ADD CONSTRAINT `movie_actors_ibfk_1` FOREIGN KEY (`actor_id`) REFERENCES `actors` (`id`);

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Tabelopbouw
  3. Inner Join
  4. Left Join
  5. Left Join (IS NULL)
  6. Right Join
  7. Right Join (IS NULL)
  8. Outer Join
  9. Outer Join (IS NULL)
  10. Multiple Joins
  11. Tabel met zichzelf Joinen
  12. Tot slot

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.