G4/06 Databáze, import

Relační databáze: generování a import údajů

D2: Obsah databáze knihovny (pokračování cvičení D1)

Naplňte vytvořenou relační databázi údaji. Tyto údaje si nejprve vygenerujte pomocí php skriptů, které si spustíte na lokálním php serveru anebo na webzdarma serveru; jedná se o tabulky Čtenář, Konto, Fond a Titul; tabulce Výpujčka se budeme věnovat až v cvičení D3. Postupně:

  1. Tabulka „ctenar“: zde je plain-text seznam křestních jmen, seznam příjmení a seznam měst. Použijte tyto soubory v php skriptu, jehož zdrojový kód následuje:
    <?php
    $jmena=file("ceska_jmena", FILE_IGNORE_NEW_LINES);
    $pocet_jmen=count($jmena);
    $prijmeni=file("ceska_prijmeni", FILE_IGNORE_NEW_LINES);
    $pocet_prijmeni=count($prijmeni);
    $mesta=file("ceska_mesta", FILE_IGNORE_NEW_LINES);
    $pocet_mest=count($mesta);
    
    $file=fopen("ctenar.sql","w");
    echo("<body>");
    
    for ($id=1 ; $id<=300; $id++) {
      $sql_dotaz="INSERT INTO ctenar VALUES (".$id.", '".$jmena[rand(0,$pocet_jmen-1)]."', '".$prijmeni[rand(0,$pocet_prijmeni-1)]."', '".rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9)."', '".rand(1950,2000)."-".rand(1,12)."-".rand(10,28)."', '".$mesta[rand(0,$pocet_mest-1)]."')";
      fwrite($file,$sql_dotaz.";"."\n");
      echo('<h6>'.$id.'</h6>');
    }
    echo("</body>");
    fclose($file);
    ?>
    

    Zdrojový kód tohoto skriptu si uložte jako soubor s příponou php ve stejné složce jako výše uvedené soubory obsahující jména. Poté skript spusťte (na lokálním serveru musí být uložen a otevřen ze složky htdocs v instalaci XAMPP, na webserveru na umístění nezáleží), a vytvoří se Vám soubor ctenar.sql, který bude obsahovat informace o fiktivních čtenářích. Tento soubor následně v příslušné tabulce Vaší databáze importujte.

  2. Tabulka Konto: Analogickým postupem vytvořte soubor konto.sql pomocí tohoto skriptu:
    <?php
    $file=fopen("konto.sql","w");
    echo("<body>");
    $stav_konta[0]="V pořádku.";
    $stav_konta[1]="V nepořádku.";
    
    for ($id=1 ; $id<=300; $id++) {
      $sql_dotaz="INSERT INTO konto VALUES (".$id.",'".$stav_konta[rand(0,1)]."')";
      echo('<h6>'.$id.'</h6>');
      fwrite($file,$sql_dotaz."\n".";");
    }
    echo("</body>");
    fclose($file);
    ?>
    

    Po jeho vytvoření soubor konto.sql importujte v tabulce Konto.

  3. Tabulka Titul: Opět analogicky vytvořit třetí sql soubor titul.sql pomocí tohoto souboru obsahujícího seznam fiktivních knižních titulů a následovného skriptu:
    <?php
    $file=fopen("titul.sql","w");
    $tituly=file("tituly", FILE_IGNORE_NEW_LINES);
    $pocet_titulu=count($tituly);
    echo("<body>");
    
    for ($i=0 ; $i<$pocet_titulu; $i++) {
      $sql_dotaz="INSERT INTO titul VALUES ('".$tituly[$i]."',".rand(0,100).")";
      echo('<h6>'.$i.'</h6>');
      fwrite($file,$sql_dotaz."\n".";");
    }
    echo("</body>");
    fclose($file);
    ?>
    
  4. Tabulka Fond: Nakonec vygenerujte a importujte poslední tabulku použitím souborů se seznamy jmen, příjmení, měst, nakladatelství a titulů pomocí tohoto skriptu:
    <?php
    $jmena=file("ceska_jmena", FILE_IGNORE_NEW_LINES);
    $pocet_jmen=count($jmena);
    $prijmeni=file("ceska_prijmeni", FILE_IGNORE_NEW_LINES);
    $pocet_prijmeni=count($prijmeni);
    $mesta=file("ceska_mesta", FILE_IGNORE_NEW_LINES);
    $pocet_mest=count($mesta);
    $nakladatelstvi=file("ceska_nakladatelstvi", FILE_IGNORE_NEW_LINES);
    $pocet_nakladatelstvi=count($nakladatelstvi);
    $tituly=file("tituly", FILE_IGNORE_NEW_LINES);
    $pocet_titulu=count($tituly);
    
    $file=fopen("fond.sql","w");
    echo("<body>");
    
    for ($sig=1 ; $sig<=500; $sig++) {
      $sql_dotaz="INSERT INTO fond VALUES ('".$sig."', '".$jmena[rand(0,$pocet_jmen-1)]."', '".$prijmeni[rand(0,$pocet_prijmeni-1)]."', '".$tituly[rand(0,$pocet_titulu-1)]."','".$nakladatelstvi[rand(0,$pocet_nakladatelstvi-1)]."','".$mesta[rand(0,$pocet_mest-1)]."',".rand(1900,2000).", 'Anotace')";
      fwrite($file,$sql_dotaz.";"."\n");
      echo('<h6>'.$sig.'</h6>');
    }
    echo("</body>");
    fclose($file);
    ?>
    

Hotová databáze Knihovna pro další práci

SQL dotaz SELECT a jeho klauzule

  • základní syntaxe: SELECT sloupec1, sloupec2, … FROM tabulka
  • podmíněné filtrování: SELECT … FROM … WHERE podmínka
  • skládání logických výrazů, např.: podmínka1 AND (podmínka2 OR podmínka3) …
  • uspořádání výsledků: SELECT … FROM … WHERE … ORDER BY sloupec (ASC/DESC)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>