SQL Bankraub

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
[[Bild:Bankeinbruch.jpg|thumb|300px]]

== Was ist passiert? ==
Ein Gängstertrio hat am 30. August 2015 die Central Bank in New York ausgeräumt. Es waren Profis wie der Polizeichef bestätigte: "Hier waren ganz klar Kenner mit Erfahrung am Werk. Sie haben den Coup sicher schon über Wochen im Vorfeld geplant. Wir sind sicher, wir finden die Täter."

Du bist eine frisch gebackene FBI-Ermittlerin und sollst mit Hilfe des FBI-Computers die Räuber ausfindig machen - ganz bequem vom Schreibtisch aus :-)

Schreibe dir alle wichtigen Hinweise auf ein Notizblatt, damit du sie immer zur Hand hast, während du mit der FBI-Datenbank arbeitest.

== Die Hinweise ==
Von den Augenzeugen haben wir nur drei Hinweise auf die '''drei''' männlichen Täter erhalten:

 1. Hinweis: 
 Ein Täter bedrohte die Angestellten und wurde von einem Komplizen “Lie“ gerufen. 
 Er soll mindestens 1'80 groß gewesen sein und trug auffallend chinesische Kleidung. 

 2. Hinweis:
 Die Täter waren alle zwischen 20 und 30 Jahre alt, sagte die Bankangestellte.

 3.Hinweis:
 Eine Augenzeugin erinnert sich an das Fluchtfahrzeug. Es ist ein blauer oder 
 schwarzer BMW gewesen sagt sie und das Kennzeichen soll auf 557 geendet haben.


Dein Kollege hat bereits eine erste Vorauswahl von 100 möglichen Personen getroffen, die als Täter in Frage kommen könnten. 

<code id="4a9790521b9e5" hidden>

CREATE TABLE Personen (ID INTEGER,Name VARCHAR(255), Vorname VARCHAR(255), Nationalitaet VARCHAR(50), Geburtsdatum VARCHAR(30), Groesse INTEGER, Strasse VARCHAR(200), Hausnummer INTEGER, Vater INTEGER, Mutter INTEGER);

INSERT INTO Personen VALUES (1,'Anderson','George','USA','1932-11-02', 172, 'Corn Road', 104, NULL,NULL);
INSERT INTO Personen VALUES (2,'Anderson','Vivian','England','1936-05-03', 165, 'Corn Road', 104, NULL,NULL);
INSERT INTO Personen VALUES (3,'Smith','Tom','USA','1938-12-07', 181, 'Malven Street', 65, NULL,NULL);
INSERT INTO Personen VALUES (4,'Smith','Sara','USA','1937-07-16', 167, 'Malven Street', 65, NULL,NULL);
INSERT INTO Personen VALUES (5,'Linguini','Hans','USA','1953-10-05', 169, 'St. Luis Road', 12, NULL,NULL);
INSERT INTO Personen VALUES (6,'Anderson','Julia','USA','1956-04-23', 162, 'St. Luis Road', 9, 3,4);
INSERT INTO Personen VALUES (7,'Jones','Eva','USA','1938-12-23', 152, 'Earding Hall', 43, NULL,NULL);
INSERT INTO Personen VALUES (8,'Jones','Sahra','USA','1956-09-16', 154, 'Crossroads', 59, NULL,8);
INSERT INTO Personen VALUES (9,'Watson','Emilie','German','1981-08-02', 161, 'Lancaster Road', 3, NULL,NULL);
INSERT INTO Personen VALUES (10,'Armstrong','Lars','Kanada','1977-09-01', 182, '5th Ave', 176, NULL,NULL);
INSERT INTO Personen VALUES (11,'Anderson','Egon','USA','1987-05-12', 176, 'St. Luis Road', 9, NULL,6);
INSERT INTO Personen VALUES (12,'Faith','Tom','USA','1951-07-22', 176, '12th Ave', 54, NULL,NULL);
INSERT INTO Personen VALUES (13,'Faith','Salma','USA','1954-08-31', 161, '12th Ave', 54, NULL,NULL);
INSERT INTO Personen VALUES (14,'Faith','Larry','USA','1976-11-02', 180, '12th Ave', 88, 12,13);
INSERT INTO Personen VALUES (15,'Thommas','Max','USA','1978-12-07', 182, 'St. George Street', 41, NULL,NULL);
INSERT INTO Personen VALUES (16,'Eddison','Eve','USA','1923-09-21', 148, 'Placa De Toro', 136, NULL,NULL);
INSERT INTO Personen VALUES (17,'Tell','Egon','USA','1973-07-22', 165, '6th Ave', 112, NULL,NULL);
INSERT INTO Personen VALUES (18,'Jang','Lie','China','1988-08-15', 182, '8th Road', 78, NULL,19);
INSERT INTO Personen VALUES (19,'Jang','Chia','China','1971-06-12', 165, 'Bardich Road', 54, NULL,NULL);
INSERT INTO Personen VALUES (20,'La Fe','Largo','France','1978-08-18', 183, 'Bosten Place', 3, NULL,NULL);
INSERT INTO Personen VALUES (21,'La Fe','Morgan','France','1979-06-17', 173, 'Bosten Place', 3, NULL,NULL);
INSERT INTO Personen VALUES (22,'Cook','Lie','USA','1980-02-26', 188, 'Mercury Road', 21, NULL,NULL);
INSERT INTO Personen VALUES (23,'Chong','Lie','China','1954-07-12', 156, 'St Elmar Road', 141, NULL,NULL);
INSERT INTO Personen VALUES (24,'Gandi','Lea','India','1978-12-04', 163, 'Mandara Street', 31, NULL,NULL);
INSERT INTO Personen VALUES (25,'Gandi','Chuan','India','1973-02-23', 183, 'Mandara Street', 31, NULL,NULL);
INSERT INTO Personen VALUES (26,'Urs','Rene','Swizerland','1972-03-04', 182, 'Bold Street', 43, NULL,NULL);
INSERT INTO Personen VALUES (27,'Urs','Lisbet','Swizerland','1975-02-11', 166, 'Bold Street', 43, NULL,NULL);
INSERT INTO Personen VALUES (28,'Urs','Sandra','Swizerland','1993-01-23', 171, 'Bold Street', 43, 26,27);
INSERT INTO Personen VALUES (29,'Clark','Denis','USA','1969-11-08', 173, 'Odessa Street', 87, NULL,NULL);
INSERT INTO Personen VALUES (30,'Talent','Adam','USA','1983-05-17', 193, 'Furca Street', 199, NULL,NULL);
INSERT INTO Personen VALUES (31,'Jeys','Billy','USA','1982-09-21', 187, 'Erding Road', 218, 32,NULL);
INSERT INTO Personen VALUES (32,'Jeys','Egon','USA','1971-11-05', 175, 'Erding Road', 218, NULL,NULL);
INSERT INTO Personen VALUES (33,'Verne','Eddy','USA','1981-07-01', 185, 'Erding Road', 112, NULL,NULL);
INSERT INTO Personen VALUES (34,'Tagar','Loui','France','1982-08-09', 179, 'St Jones Road', 3, NULL,NULL);
INSERT INTO Personen VALUES (35,'Jang','Chia','China','1977-09-07', 165, 'Bardich Road', 32, NULL,NULL);
INSERT INTO Personen VALUES (36,'Jang','Jachi','China','1981-02-21', 185, 'Bardich Road', 32, NULL,NULL);
INSERT INTO Personen VALUES (37,'Thong','Lo','China','1951-01-22', 165, '26th Street', 152, NULL,NULL);
INSERT INTO Personen VALUES (38,'Smith','Thomas','USA','1976-04-11', 185, 'Placa Avante', 19, NULL,NULL);
INSERT INTO Personen VALUES (39,'Jones','Lara','USA','1982-09-01', 161, '2th Ave', 197, NULL,NULL);
INSERT INTO Personen VALUES (40,'Mueller','Hans','German','1952-11-05', 167, 'Erding Road', 134, NULL,NULL);
INSERT INTO Personen VALUES (41,'Delgardo','Lillian','Italy','1981-01-08', 163, 'Erding Road', 122, NULL,NULL);
INSERT INTO Personen VALUES (42,'Delgardo','Luigi','Italy','1977-03-17', 184, 'Erding Road', 122, NULL,NULL);
INSERT INTO Personen VALUES (43,'Cook','Thomas','USA','1978-03-15', 172, 'Lago Street', 81, NULL,NULL);
INSERT INTO Personen VALUES (44,'Cook','Tim','USA','1953-01-04', 171, 'Placa Palace', 55, NULL,NULL);
INSERT INTO Personen VALUES (45,'Cook','Lisa','USA','1955-12-15', 153, 'Placa Palace', 55, NULL,NULL);
INSERT INTO Personen VALUES (46,'Cook','Jack','USA','1932-09-11', 162, 'St George Place', 1, NULL,NULL);
INSERT INTO Personen VALUES (47,'Cook','Elisabeth','USA','1931-08-21', 152, 'St George Place', 1, NULL,NULL);
INSERT INTO Personen VALUES (48,'Rauch','Peter','German','1981-01-22', 182, 'Lago Street', 23, NULL,NULL);
INSERT INTO Personen VALUES (49,'Rauch','Eva','German','1986-08-12', 166, 'Lago Street', 23, NULL,NULL);
INSERT INTO Personen VALUES (50,'Darzzy','Mike','USA','1955-11-21', 182, 'Rose Avenue', 44, NULL,NULL);
INSERT INTO Personen VALUES (51,'Darzzy','Elenore','USA','1960-01-30', 163, 'Rose Avenue', 44, NULL,NULL);
INSERT INTO Personen VALUES (52,'Kingz','Phil','USA','1987-04-22', 197, 'Town Street', 1, 54,53);
INSERT INTO Personen VALUES (53,'Kingz','Carly','USA','1968-09-08', 163, 'Silver Road', 98, NULL,NULL);
INSERT INTO Personen VALUES (54,'Gibson','Sam','USA','1966-03-12', 187, 'Aron Avenue', 11, NULL,NULL);
INSERT INTO Personen VALUES (55,'Soure','Lily','USA','1970-05-24', 158, 'Kline Street', 15, NULL,NULL);
INSERT INTO Personen VALUES (56,'Nealy','Oscar','England','1924-01-01', 172, 'Kensington Road', 43, NULL,NULL);
INSERT INTO Personen VALUES (57,'Nealy','Marlene','England','1930-12-16', 154, 'Kensington Road', 43, NULL,NULL);
INSERT INTO Personen VALUES (58,'Rose','Charlene','England','1962-08-26',165, 'London Street', 5, 56,57);
INSERT INTO Personen VALUES (59,'Nealy','Sam','Irland','1958-07-07', 185, 'Middle Street', 34, 56,57);
INSERT INTO Personen VALUES (60,'Breaker','Fred','USA','1974-11-27', 193, 'City Place', 86, NULL,NULL);
INSERT INTO Personen VALUES (61,'Summer','Aron','USA','1980-09-19', 178, 'Florres Road', 62, NULL,NULL);
INSERT INTO Personen VALUES (62,'Summer','Caroline','USA','1985-11-29', 159, 'Florres Road', 62, NULL,NULL);
INSERT INTO Personen VALUES (63,'Hayden','Luise','USA','1957-12-31', 167, 'Arrlington Road', 94, NULL,NULL);
INSERT INTO Personen VALUES (64,'Hayden','Marcel','USA','1953-04-23', 184, 'Arrlington Road', 94, NULL,NULL);
INSERT INTO Personen VALUES (65,'Runes','Vivianne','German','1980-10-07', 169, 'Seestrasse', 56, 64,63);
INSERT INTO Personen VALUES (66,'Hayden','Loris','USA','1977-05-06', 188, 'Arrow Road', 99, 64,63);
INSERT INTO Personen VALUES (67,'Wild','Mario','USA','1940-02-17', 180, 'Flower Road', 79, NULL,NULL);
INSERT INTO Personen VALUES (68,'Cream','Jonas','USA','1985-06-09', 191, 'Night Avenue', 5, NULL,NULL);
INSERT INTO Personen VALUES (69,'Cave','Marie','Irland','1933-09-21', 160, 'Scot Way', 52, NULL,NULL);
INSERT INTO Personen VALUES (70,'Cave','Linol','Irland','1930-03-25', 186, 'Scot Way', 52, NULL,NULL);
INSERT INTO Personen VALUES (71,'Rinol','Luise','Italy','1951-06-01', 166, 'Wall Way', 9, NULL,NULL);
INSERT INTO Personen VALUES (72,'Meyer','Sina','German','1955-10-16', 181, 'Am Wall', 7, NULL,NULL);
INSERT INTO Personen VALUES (73,'Cave','Gliff','England','1953-01-29', 189, 'Picadilly Circus', 11, 70,69);
INSERT INTO Personen VALUES (74,'Cave','Lisa','England','1957-09-15', 163, 'Picadilly Circus', 11, NULL,NULL);
INSERT INTO Personen VALUES (75,'Cave','Lina','England','1978-01-01', 176, 'Picadily Circus', 104, 73,74);
INSERT INTO Personen VALUES (76,'Crudo','Joel','USA','1979-12-03', 172, '4th Avenue', 34, NULL,NULL);
INSERT INTO Personen VALUES (77,'Birdy','Michael','USA','1958-04-26', 183, 'Circus Road', 354, NULL,NULL);
INSERT INTO Personen VALUES (78,'Lester','Susan','USA','1940-03-30', 167, 'Brook Street', 26, NULL,NULL);
INSERT INTO Personen VALUES (79,'Chester','Larry','USA','1930-12-14', 182, 'Clester Street', 67, NULL,NULL);
INSERT INTO Personen VALUES (80,'Quin','Elia','USA','1956-07-09', 156, 'St Louis Street', 120, NULL,NULL);
INSERT INTO Personen VALUES (81,'Quin','Freddy','USA','1952-03-19', 175, 'St Louis Street', 120, NULL,NULL);
INSERT INTO Personen VALUES (82,'Quin','Eddy','USA','1990-07-09', 182, 'Jefferson Street', 12, 81,80);
INSERT INTO Personen VALUES (83,'Flame','Samanta','USA','1977-04-04', 163, 'Madera Street', 32, NULL,NULL);
INSERT INTO Personen VALUES (84,'Flame','Georg','USA','1980-09-01', 193, 'Madera Street', 32, 85,86);
INSERT INTO Personen VALUES (85,'Flame','Logan','USA','1951-07-26', 181, 'Elmar Street', 176, NULL,NULL);
INSERT INTO Personen VALUES (86,'Flame','Antonia','USA','1955-01-21', 160, 'Elmar Street', 176, NULL,NULL);
INSERT INTO Personen VALUES (87,'Pitt','Lisa','USA','1983-04-22', 163, 'Jefferson Street', 204, NULL,NULL);
INSERT INTO Personen VALUES (88,'Pitt','Joe','USA','1979-09-10', 182, 'Jefferson Street', 204, NULL,NULL);
INSERT INTO Personen VALUES (89,'Lenka','Eddy','USA','1981-12-30', 188, 'Woody Road', 19, NULL,NULL);
INSERT INTO Personen VALUES (90,'Lenka','Gina','USA','1984-05-21', 171, 'Woody Road', 19, NULL,NULL);
INSERT INTO Personen VALUES (91,'Long','Lie','China','1999-05-13', 191, 'Indigo Street', 63, NULL,NULL);
INSERT INTO Personen VALUES (92,'Fray','Paolo','USA','1981-11-09', 186, 'Indigo Street', 103, 93,94);
INSERT INTO Personen VALUES (93,'Fray','William','USA','1961-09-01', 177, 'Tortuga Bay', 10, NULL,NULL);
INSERT INTO Personen VALUES (94,'Fray','Julia','USA','1963-05-09', 161, 'Tortuga Bay', 10, NULL,NULL);
INSERT INTO Personen VALUES (95,'Delaware','Ira','USA','1923-07-07', 143, 'August Street', 132, NULL,NULL);
INSERT INTO Personen VALUES (96,'Honk','Igor','Russland','1976-06-13', 182, 'August Street', 150,NULL,NULL);
INSERT INTO Personen VALUES (97,'Honk','Tatjana','Russland','1979-03-18', 170, 'August Street', 150, NULL,NULL);
INSERT INTO Personen VALUES (98,'Bent','Arthur','USA','1982-02-19', 187, 'St Elmar Street', 201, NULL,NULL);
INSERT INTO Personen VALUES (99,'Bent','Lora','USA','1986-01-18', 171, 'St Elmar Street', 201, NULL,NULL);
INSERT INTO Personen VALUES (100,'Brown','Peter','German','1980-08-31', 180, 'St Elmar Street', 193, NULL,NULL);

CREATE TABLE KFZ (Kennzeichen VARCHAR(20), Fahrzeughalter INTEGER, Farbe VARCHAR(255), Automarke VARCHAR(255));

INSERT INTO KFZ VALUES ('V325634',43,'grau','BMW');
INSERT INTO KFZ VALUES ('E405AD3',12,'blau','GM');
INSERT INTO KFZ VALUES ('E4D4557',15,'weiss','Opel');
INSERT INTO KFZ VALUES ('24553DF',23,'rot','BMW');
INSERT INTO KFZ VALUES ('3D35G53',30,'blau','BMW');
INSERT INTO KFZ VALUES ('4055559',28,'schwarz','BMW');
INSERT INTO KFZ VALUES ('X4455F3',96,'braun','Lada');
INSERT INTO KFZ VALUES ('593FDNS',8,'lila','Opel');
INSERT INTO KFZ VALUES ('4576557',9,'weiss','Toyota');
INSERT INTO KFZ VALUES ('X54S435',38,'lila','Peugot');
INSERT INTO KFZ VALUES ('X566435',40,'rot','VW');
INSERT INTO KFZ VALUES ('D34D442',42,'weiss','VW');
INSERT INTO KFZ VALUES ('L343KD3',43,'grün','Opel');
INSERT INTO KFZ VALUES ('3D34VN9',45,'blau','Mercedes');
INSERT INTO KFZ VALUES ('445DSS3',46,'rot','Toyota');
INSERT INTO KFZ VALUES ('445D557',47,'blau','Toyota');
INSERT INTO KFZ VALUES ('4KE8965',48,'schwarz','Porsche');
INSERT INTO KFZ VALUES ('495DDF3',50,'weiss','Opel');
INSERT INTO KFZ VALUES ('X345557',6,'blau','BMW');
INSERT INTO KFZ VALUES ('4334DDD',52,'gelb','Ford');
INSERT INTO KFZ VALUES ('Y65478D',53,'schwarz','Peugot');
INSERT INTO KFZ VALUES ('L49210F',55,'silber','Mercedes');
INSERT INTO KFZ VALUES ('L344DF3',57,'rot','BMW');
INSERT INTO KFZ VALUES ('X3332SD',59,'rot','VW');
INSERT INTO KFZ VALUES ('X4440AQ',60,'braun','VW');
INSERT INTO KFZ VALUES ('U743DE2',68,'gelb','Toyota');
INSERT INTO KFZ VALUES ('R405553',72,'blau','VW');
INSERT INTO KFZ VALUES ('A47V394',76,'rot','Ford');
INSERT INTO KFZ VALUES ('Y453557',76,'gelb','BMW');
INSERT INTO KFZ VALUES ('A19324D',84,'blau','BMW');
INSERT INTO KFZ VALUES ('64E23F4',81,'silber','GM');
INSERT INTO KFZ VALUES ('A435D25',89,'gelb','Ford');
INSERT INTO KFZ VALUES ('A59225E',90,'blau','Mercedes');
INSERT INTO KFZ VALUES ('D459634',90,'rot','Porsche');
INSERT INTO KFZ VALUES ('F34053D',98,'rot','Mercedes');

CREATE TABLE Strafzettel (Kennzeichen VARCHAR(20), Datum VARCHAR(255),Zeit VARCHAR(255), Strasse VARCHAR(255));

INSERT INTO Strafzettel VALUES ('F34053D','2015-07-06','10:41','St Jones Road');
INSERT INTO Strafzettel VALUES ('495DDF3','2015-09-07','06:43','St Jones Road');
INSERT INTO Strafzettel VALUES ('Y65478D','2015-08-15','12:52','St Jones Road');
INSERT INTO Strafzettel VALUES ('D34D442','2015-09-14','14:23','Placa Avante');
INSERT INTO Strafzettel VALUES ('D34D442','2015-09-10','12:13','August Street');
INSERT INTO Strafzettel VALUES ('X4440AQ','2015-08-26','16:07','St Jones Road');
INSERT INTO Strafzettel VALUES ('4334DDD','2015-08-15','18:15','St Jones Road');
INSERT INTO Strafzettel VALUES ('4055557','2015-07-04','09:20','Elmar Street');
INSERT INTO Strafzettel VALUES ('4055557','2015-08-08','12:20','Clester Street');
INSERT INTO Strafzettel VALUES ('X345557','2015-05-21','12:04','St Jones Road');
INSERT INTO Strafzettel VALUES ('X345557','2015-08-12','18:02','Jefferson Street');
INSERT INTO Strafzettel VALUES ('495DDF3','2015-08-12','11:26','St Jones Road');
INSERT INTO Strafzettel VALUES ('X345557','2015-08-17','17:54','Jefferson Street');
INSERT INTO Strafzettel VALUES ('R405553','2015-09-01','09:19','St Jones Road');
INSERT INTO Strafzettel VALUES ('X345557','2015-08-22','18:45','Jefferson Street');
INSERT INTO Strafzettel VALUES ('445DSS3','2015-08-16','10:41','St Jones Road');
INSERT INTO Strafzettel VALUES ('Y65478D','2015-07-17','06:43','Scot Way');
INSERT INTO Strafzettel VALUES ('Y65478D','2015-09-05','12:52','Brook Street');
INSERT INTO Strafzettel VALUES ('L344DF3','2015-08-04','14:23','Brook Street');
INSERT INTO Strafzettel VALUES ('D34D442','2015-08-00','12:13','Picadilly Circus');
INSERT INTO Strafzettel VALUES ('X4440AQ','2015-09-16','16:07','Madera Street');
INSERT INTO Strafzettel VALUES ('495DDF3','2015-09-25','18:15','St Jones Road');
INSERT INTO Strafzettel VALUES ('L49210F','2015-07-14','09:20','Elmar Street');
INSERT INTO Strafzettel VALUES ('495DDF3','2015-06-18','12:20','Clester Street');
INSERT INTO Strafzettel VALUES ('L344DF3','2015-07-01','12:04','Madera Street');
INSERT INTO Strafzettel VALUES ('Y65478D','2015-08-02','18:02','Picadilly Circus');
INSERT INTO Strafzettel VALUES ('495DDF3','2015-08-22','11:26','St Jones Road');
INSERT INTO Strafzettel VALUES ('4KE8965','2015-09-27','17:54','St Louis Street');
INSERT INTO Strafzettel VALUES ('D34D442','2015-09-11','09:19','St Jones Road');
INSERT INTO Strafzettel VALUES ('445DSS3','2015-08-12','18:45','Am Wall');

CREATE TABLE Vorstrafen (Person INTEGER, Grund VARCHAR(255));

INSERT INTO Vorstrafen VALUES (2,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (8,'Erpressung');
INSERT INTO Vorstrafen VALUES (11,'Raub und schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (12,'Raub');
INSERT INTO Vorstrafen VALUES (18,'Raub und Erpressung');
INSERT INTO Vorstrafen VALUES (22,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (24,'Raub und schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (26,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (28,'Raub und Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (29,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (30,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (32,'Steuerhinterziehung');
INSERT INTO Vorstrafen VALUES (38,'Raub und schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (40,'Raub und Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (43,'schwerer Einbruch');
INSERT INTO Vorstrafen VALUES (48,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (49,'Raub');
INSERT INTO Vorstrafen VALUES (52,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (56,'Raub');
INSERT INTO Vorstrafen VALUES (60,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (63,'Steuerhinterziehung');
INSERT INTO Vorstrafen VALUES (66,'Körperverletzung');
INSERT INTO Vorstrafen VALUES (69,'Steuerhinterziehung');
INSERT INTO Vorstrafen VALUES (73,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (75,'Erpressung');
INSERT INTO Vorstrafen VALUES (80,'Raub');
INSERT INTO Vorstrafen VALUES (82,'Raub und Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (90,'Ladendiebstahl');
INSERT INTO Vorstrafen VALUES (98,'Steuerhinterziehung');
</code>

== Dein Werkzeug: Die FBI-Datenbank  ==

Informationen speichert man heute oft in elektronischen Datenbanken und nicht mehr in dicken Ordnern auf Papier. Ob Facebook oder die Führerscheinstelle, alle verwenden Datenbanken in denen zum Beispiel der Name, Adresse und vielleicht ein Foto jedes Kunden gespeichert wird. Die Datensätze (ein Eintrag in der Datenbank) haben immer den gleichen vorgegebenen Aufbaue - auch wenn einige Felder (Angaben) vielleicht mal leer sind, weil der Kunde seine Adresse noch nicht eingegeben hat oder noch kein Foto hochgeladen hat. 

Eine Datenbank besitzt in der Regel mehrere Tabellen. Zum Beispiel gibt es in der FBI-Datenbank eine Tabelle "Personen" in der alle Einwohner aufgelistet sind - immer eine Person pro Zeile der Tabelle. Die Spalten sind einzelne Angaben wie Name, Vorname, Geburtsdatum und so weiter. Der Computer verwendet eine spezielle Sprache, um mit der Datenbank zu sprechen und genau die Informationen für uns heraus zu suchen, die wir haben möchten. Diese Sprache heisst SQL. Klicke auf "ausführen" um den folgenden Befehl an die Datenbank zu schicken. Es werden alle 100 Personen aufgelistet. Übersetzt heisst der Befehl so viel wie: SUCHE ALLES (*) VON Personen und zeig uns das Ergebnis an.  
<run id="559293c2a092f">
SELECT * FROM Personen
</run>

Wenn wir bereits wissen, wie die einzelnen Spalten heissen, können wir die Ausgabe einschränken zum Beispiel:
<run id="559293c2a09cc">
SELECT Vorname, Name FROM Personen
</run>
Nun bekommen wir nur den Vornamen und Namen aller Personen in der Datenbank angezeigt. 

Wir können aber auch ganz gezielt suchen, indem wir der Datenbank genau sagen, nach was wir suchen möchten. Dies erfolgt über den Zusatz "WHERE" wie im folgenden Beispiel:
<run id="559293c2a0a5b">
SELECT Vorname, Name FROM Personen WHERE Vorname = "Eva"
</run>

Nach den Hinweisen hieß einer der Täter "Lie" mit Vornamen. Kannst du den Befehl so umschreiben, dass der Computer alle Lie's findet? Vermutlich gibt es mehr als einen Lie in der Personendatenbank. Vielleicht können uns die anderen Hinweise weiterhelfen. Der Täter soll recht gross gewesen sein, 1,80 oder mehr. Mit "AND" können wir mehrere Suchkriterien gleichzeitig verwenden. Wir müssen einfach jedes Mal ein "AND" einfügen. Zum Beispiel können wir nach allen Lie's suchen, die grösser als 180 cm sind. Dazu verwenden wir wie in der Mathematik ein grösser-als Zeichen:
<run id="559294ce166aa" >
SELECT Vorname, Name, Groesse FROM Personen WHERE Vorname = "Lie" AND Groesse > "180"
</run>

Wir können immer noch nicht genau sagen, wer der Täter gewesen ist. Suchen wir also nach weiteren Informationen in den Hinweisen. Das Alter des Täters soll zwischen 20 - 30 Jahren gewesen sein. In der Datenbank haben wir keine Angabe zum Alter, jedoch haben wir das Geburtsdatum. Datenbanken verwenden häufig die umgekehrte englische Schreibweise Jahr-Monat-Tag also 2015-10-23 statt 23.10.2015 für ein Datum. Im nachfolgenden Beispiel werden alle Personen, die zwischen dem 1.1.1970 und dem 31.12.1980 geboren wurden herausgefiltert: 

<run id="5592a4616686a">
SELECT Vorname, Name, Geburtsdatum FROM Personen WHERE Geburtsdatum > "1970-01-01" AND Geburtsdatum < "1980-12-31"
</run>

Wann müsste Lie in etwa geboren sein, wenn er zum Tatzeitpunkt zwischen 20 und 30 Jahre alt war? Kannst du den Befehl so umschreiben und erweitern, dass alle Lie's mit passendem Geburtsdatum gesucht werden? Wenn du alles richtig eingegeben hast, wird nur noch eine Person als Täter übrigbleiben. 

== Weitere Tabellen in der Datenbank ==

Unser zweiter Hinweis bezieht sich auf das Fluchtauto. Die Zulassungsstelle arbeitet mit dem FBI zusammen, weshalb wir auch Informationen zu Autos und Nummernschilder in der Datenbank finden können. Damit wir nicht tausende von Autos durchsuchen müssen, hat uns die Behörde nur die Tabelle der Autos gegeben, die zum Tatzeitpunkt in Frage kommen könnten. Die Tabelle heisst "KFZ":
<run id="55929beaa0ec2">
SELECT * FROM KFZ
</run>

Kannst du den Befehl so abändern, dass nur Einträge mit der Automarke BMW herausgesucht werden? Kannst du mit Hilfe der weiteren Hinweise das Fluchtauto herausfinden?

Wenn du das richtige Auto gefunden hast müssen wir den Halter des Fahrzeugs ermitteln. In der Spalte Fahrzeughalter steht aber nur eine Zahl. Solche Zahlen werden in Datenbanken häufig verwendet, wenn auf Einträge in einer anderen Tabelle verwiesen werden soll. Schauen wir erneut in die Tabelle Personen:

<run id="55929f0014074">
SELECT * FROM Personen
</run>

Die erste Spalte heisst "ID". Jede Person wurde fortlaufend mit einer Zahl durchnummeriert. Wenn ein Auto also auf Person 28 zugelassen wurde, können wir in der Tabelle Personen danach suchen:
<run id="55929f00141c8">
SELECT * FROM Personen WHERE ID = "28"
</run>

Versuche den Fahrzeughalter vom Fluchtauto auf diese Weise zu ermitteln. Solche Verweise funktionieren auch innerhalb der gleichen Tabelle. Schau dir die Spalten Vater und Mutter an. Kannst du von Person 28 herausfinden wer ihr Vater ist? Hast du eine Idee, wie du den Fahrer des Fluchtautos herausfinden könntest? Vielleicht gehört das Auto ja jemanden aus seiner Familie?

Prüfe immer auch, ob alle anderen Hinweise bezüglich der Täter auf deine gefundene Person passen - wir möchten ja niemanden fälschlicherweise verdächtigen ein Bankräuber zu sein :-)
== Die Informationen in den Tiefen der Datenbank ==

Schau dir die weiteren Tabellen der FBI-Datenbank an:

<run id="5b69de24626a0">
SELECT * FROM Personen
</run>
<run id="5b69de2462761">
SELECT * FROM Vorstrafen
</run>
<run id="5b69de246284e">
SELECT * FROM KFZ
</run>
<run id="5b69de2462926">
SELECT * FROM Strafzettel
</run>

Die Zusammenhänge zwischen den Tabellen hat dein Vorgänger in einem komplizierten Diagramm aufgezeichnet. Man bezeichnet so ein Diagramm wohl als Entity-Relationship-Diagramm (ERD). Hast du eine Idee, wie man das lesen kann?

<html>
<a href="/Datei:ERDBankraub.png" class="image"><img alt="ERDBankraub.png" src="/images/f/f5/ERDBankraub.png" style="max-width:100%;width:800px"></a>
</html>

Um den dritten Täter zu ermitteln musst du dich wirklich anstrengen! Du hast keine weiteren Hinweise erhalten, kannst du mit Hilfe der bereits gefundenen Informationen vielleicht mehr herausfinden? Was kannst du noch über das Fluchtauto herausfinden? Der Polizeichef sagte, dass die Täter die Tat wohl schon seit Wochen geplant hatten.

== Deine Lösung ==
Gib in den nächsten 3 Feldern deine Befehle zur Suche nach dem Täter ein. Du kannst dazu mit AND mehrere Bedingungen im WHERE Teil formulieren. Du kannst auch mehrere Befehle nacheinander angeben, wenn du sie mit einem ; (Semikolon) voneinander trennst. 

Täter 1:
<run id="662a33252cc64">
SELECT * FROM Personen WHERE ...
</run>

Täter 2:
<run id="662a33252ccdc">
SELECT * FROM Personen WHERE ...
</run>

Täter 3:
<run id="662a33252cd49">
SELECT * FROM Personen WHERE ...
</run>


== Hinweise für die Lehrperson ==
Ganz bewusst verzichten wir bei diesem Beispiel auf eine umfangreiche Einführung in das Thema Datenbanken oder SQL und seine Syntax. Die Aufgabe ist nach dem Prinzip "Entdeckendes Lernen" gestaltet und soll eine Herausforderung für Lernende darstellen, die mit einem für sie unbekannten System konfrontiert werden, wie es wohl auch im Alltag häufiger passieren kann. Über Versuch und Irrtum und einigen Beispielen als Hilfestellung sollen die einfachsten Funktionen von relationalen Datenbanken und eine Idee der Syntax von SQL erschlossen werden.

Bei der Lösung der Aufgabe sollte zusätzlich mit Papier gearbeitet werden, um sich Notizen über die bereits gefundenen Informationen zu machen. Es wird hier bewusst auf JOINs verzichtet, die aber in einer weiteren Aufgabe folgen könnten. Die gesamte Datenbank ist als versteckter Code am Anfang dieser Wikiseite hinterlegt.

<popup label="Lösung">
1. Täter: Lie Jang (Er ist der einzige mit dem Vornamen "Lie" und dem passendem Alter.)

2. Täter: Egon Anderson (Seine Mutter ist Halterinn des Fluchtautos und er ist die einzige männliche Person in der Familie Anderson mit Vorstrafe.)

3. Täter: Eddy Quin (Er wohnt als einziger Vorbestrafter auf der Jefferson Street, wo das Fluchtauto die Wochen vor dem Einbruch mehrere Strafzettel bekommen hat.)
</popup>

Unter [[Bankraub]] ist eine Kopie dieser Seite ohne die Hinweise für die Lehrperson verfügbar.