[[Tabellenkalkulation]] <- [[..:..:Informatik-Buch:]], [[..:Datenbank:]] -> [[SQL-Befehle]] ====== PHPMyAdmin ====== Das, was hier steht ist noch sehr dürftig. Erst mal stehen da nur Dinge, die nötig sind, um die SchülerInnen als User einzurichten, die aber eigentlich keinen interessieren. Statt dessen empfehlen meine Jungs aus der 10 die Seite [[http://www.bplaced.net]], auf der man sich kostenlos registrieren lassen kann, kostenlosen Webspace, kostenlose Datenbanken, FTP-Zugang und zur Bearbeitung der Datenbanken PHPMyAdmin bekommt. Werbefrei. Eigentlich sollte man meinen, dass es dabei irgendwelche Haken gibt, aber ich hab noch keinen gefunden. Dann also los... ===== Aufbau der Bücherei-Datenbank mit PHPMyAdmin ===== - Beim Anlegen der Tabellen darauf achten, dass als engine ''InnoDB'' gewählt wird, da sonst keine Fremdschlüssel genutzt werden können. - Anlegen einer Tabelle ''Buecher'' mit: * ID, int(11), primary key, auto_increment * Titel, text * Autor, text * ISBN, text * Exemplar, tinyint(4) * Präsenz, bool=tinyint(1) - Anlegen einer Tabelle ''Benutzer'' mit: * ID. int(11), primary key, auto_increment * Vorname, varchar(50) * Nachname, varchar(50) * Geburtsdatum, date * Telefon, varchar(15) * E-Mail, varchar(30) - Anlegen einer Tabelle ''Ausleihe'' mit: * ID, int(11), primary key, auto_increment * ausgeliehhen, date * zurueckzubringen, date * Buch, int(11) * Benutzer, int(11) - Attribute Buch und Benutzer zu Fremdschlüsseln machen. \\ Ich habe in PHPMyAdmin keine Möglichkeit gefunden, die folgenden Befehle per Klick auszuführen. Also manuell... ALTER TABLE Ausleihe ADD FOREIGN KEY ( Buch ) REFERENCES Buecher( ID ) ALTER TABLE Ausleihe ADD FOREIGN KEY ( Benutzer ) REFERENCES Benutzer( ID ) Anlegen der Benutzer-Tabelle kann man auch mit SQL machen: CREATE TABLE `claude`.`Benutzer` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Surrogatschlüssel', `Vorname` VARCHAR( 50 ) NOT NULL , `Name` VARCHAR( 50 ) NOT NULL , `Geburtsdatum` DATE NOT NULL , `Telefon` VARCHAR( 15 ) NOT NULL , `E-Mail` VARCHAR( 30 ) NOT NULL ) ENGINE = InnoDB Füllen der Tabelle: INSERT INTO `claude`.`Benutzer` ( `ID` , `Vorname` , `Name` , `Geburtsdatum` , `Telefon` , `E-Mail` ) VALUES ( NULL , 'Hugo', 'Schmidt', '1960-09-22', '0271 / 08 15', 'Hugo.Schmidt@web.de' ), ( NULL , 'Gerda', 'Müller', '1967-09-14', '', '02745 / 012398' ); ===== Die einzelnen SQL-Befehle ===== CREATE TABLE `claude`.`Buecher` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Der Primärschlüssel', `Titel` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `Autor` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `ISBN` VARCHAR( 17 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `Exemplar` TINYINT NOT NULL , `Praesenz` BOOL NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin CREATE TABLE `claude`.`Benutzer` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Primärschlüssel', `Vorname` VARCHAR( 30 ) NOT NULL , `Name` VARCHAR( 30 ) NOT NULL , `Telefon` VARCHAR( 15 ) NOT NULL , `E-Mail` VARCHAR( 30 ) NOT NULL , `Geburt` DATE NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin CREATE TABLE `claude`.`Ausleihe` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Primärschlüssel', `ausgeliehen` DATE NOT NULL , `zurueckbringen` DATE NOT NULL , `BuchID` INT NOT NULL , `BenutzerID` INT NOT NULL ) ENGINE = InnoDB ALTER TABLE Ausleihe ADD FOREIGN KEY ( BuchID ) REFERENCES Buecher( ID ) ALTER TABLE Ausleihe ADD FOREIGN KEY ( BenutzerID ) REFERENCES Benutzer( ID ) ===== Einrichten der SchülerInnen ===== * Installieren. * root-Passwort anlegen: * http://localhost/phpmyadmin * als root ohne Passwort einloggen * -> Rechte * -> root@localhost auswählen und auf "Rechte Ändern" klicken * oder: SET PASSWORD FOR 'root'@ 'localhost' = PASSWORD( '*******' ) * Benutzer (Schülerinnen und Schüler) einrichten: * http://localhost/phpmyadmin * als root ohne Passwort einloggen * -> Rechte * -> ''Neuen Benutzer hinzufügen'' * Benutzername, Passwort (2 Mal) eingeben * ''Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte'' auswählen * oder CREATE USER 'heinz'@ '%' IDENTIFIED BY '*****'; GRANT USAGE ON * . * TO 'heinz'@ '%' IDENTIFIED BY '*****' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; CREATE DATABASE `heinz` ; GRANT ALL PRIVILEGES ON `heinz` . * TO 'heinz'@ '%';