1. #1
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.001
    Thanked 590 Times in 319 Posts

    Standard [Tutorial] SQL für Einsteiger (Teil 1)

    Guten Abend liebe Community,

    ich will wieder aktiver werden und aus diesem Grund folgt hier nun ein Tutorial zum Thema SQL.

    1.0 Was ist SQL?

    SQL bedeutet Structured Query Language und wird dafür benutzt mit Datenbanken zu arbeiten, man kann mit SQL z.B. neue Datenbanken oder Tabellen erstellen, diese mit Daten füllen, sie verändern oder auch wieder löschen.
    Ein einfaches Bespiel wäre z.B. U-Hacks. U-Hacks benutzt auch eine Datenbank, in der viele Datensätze gespeichert werden, es gibt eine Tabelle für die Benutzer, die z.B. users heißen kann. In dieser Tabelle sind dann die Informationen über einen Benutzer gespeichert, wie z.B. sein Username, sein Passwort (natürlich verschlüsselt), seine Email-Adresse etc.
    Diese Daten können mit SQL eingetragen werden (wenn man sich registriert) oder verändert werden (wenn man z.B. sein Passwort ändert) oder gelöscht werden.
    In einer Datenbank werden aber auch andere Daten gespeichert, wie z.B. dieser Thread hier, der dann über die ID abgerufen werden kann.
    Mit SQL kann man also gezielte Befehle an eine Datenbank senden um Informationen zu erhalten.

    1.1 Verbindung herstellen

    Achtung: Diese Funktionen beziehen sich auch MySQL.

    Bevor man eine Datenbank erstellen kann muss man sich zu dem Datenbankserver verbinden. Wie macht man das also?
    PHP-Code:
    mysql_connect(Datenbankserver,Benutzername,Passwort); 
    Beispiel:
    PHP-Code:
    mysql_connect("localhost","root","1337"); 
    Nun kann man noch prüfen ob die Verbindung erfolgreich war oder eine Fehlermeldung ausgeben:
    PHP-Code:
    $verbindung mysql_connect("localhost","root","1337");
    if (!
    $verbindung)
      {
      die(
    'Verbindung zur Datenbank fehlgeschlagen: ' mysql_error());
      } 
    Dieser Fehler wird nur dann ausgegeben, wenn keine Verbindung hergestellt werden konnte.

    Die Verbindung zur Datenbank wird automatisch beendet, wenn das Skript endet, will man dies allerdings schon vorher machen, geht das so:
    PHP-Code:
    $verbindung mysql_connect("localhost","root","1337");
    if (!
    $verbindung)
      {
      die(
    'Verbindung zur Datenbank fehlgeschlagen: ' mysql_error());
      }
    mysql_close($verbindung); 
    1.2.1 Eine Datenbank erstellen

    Eine neue Datenbank zu erstellen ist ganz einfach:
    PHP-Code:
    CREATE DATABASE Datenbankname 
    Etwas anschaulicher:
    PHP-Code:
    $verbindung mysql_connect("localhost","root","1337");
    if (!
    $verbindung)
      {
      die(
    'Fehler bei der Verbindung: ' mysql_error());
      }

    if (
    mysql_query("CREATE DATABASE meine_datenbank",$verbindung))
      {
      echo 
    "Datenbank erstellt!";
      }
    else
      {
      echo 
    "Es ist ein Fehler aufgetreten: " mysql_error();
      }

    mysql_close($verbindung); 
    1.2.2 Eine Tabelle erstellen

    Eine neue Tabelle erstellt man so:
    PHP-Code:
    CREATE TABLE tabelle
    (
    Spalte1 datentyp,
    Spalte2 datentyp,
    Spalte3 datentyp,
    ....

    Und etwas anschaulicher:
    PHP-Code:
    mysql_select_db("datenbankname"$verbindung);
    $sql "CREATE TABLE Personen
    (
    Vorname varchar(15),
    Nachname varchar(15),
    Alter int
    )"
    ;

    //Die Abfrage ausführen
    mysql_query($sql,$verbindung); 
    1.3 Daten eintragen

    Wie trage ich etwas in eine Tabelle ein?
    Natürlich muss man zuerst eine Verbindung zum Server herstellen und eine Datenbank auswählen.
    PHP-Code:
    INSERT INTO table_name (Spalte1Spalte2Spalte3,...)
    VALUES (Wert1Wert2Wert3,...) 
    Etwas anschaulicher:
    PHP-Code:
    mysql_query("INSERT INTO Personen (Vorname, Nachname, Alter)
    VALUES ('Homer', 'Simpson',37)"
    ); 
    Das zweite Tutorial wird in einem anderen Thread veröffentlicht, also haltet euch bitte nicht zurück etwas zu ergänzen oder mich zu verbessern.

    LG
    Geändert von Snees (25.07.2012 um 20:45 Uhr)

  2. The Following 2 Users Say Thank You to Snees For This Useful Post:

    Comu (25.07.2012), infected (25.07.2012)

  3. #2
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.715 Times in 1.285 Posts
    Blog Entries
    7

    Standard AW: [Tutorial] SQL für Einsteiger (Teil 1)

    Das was du hier postest, ist wie wenn ich Leuten das .NET Framework 2.0 Näherbringen will, obwohl wir schon bei 4.5 sind.

    Dieses Tutorial stellt eine Gefahr für JEDES Projekt dar, was der lernende in absehbarer Zukunft realisieren und veröffentlichen möchte.

    Und wieso?

    Weil es bereits PHP5 gibt, in PHP5 gibt es die MySQLi-Erweiterung, die unter Anderem das Erstellen von sogenannten 'Parameterisierten Querys' ermöglicht.
    Diese Methode, in der Datenbank abfragen zu tätigen, schützt zu 100% vor Injections, diese sind schlichtweg NICHT MEHR MÖGLICH.

    Des Weiteren gibt es noch die Möglichkeit für sog. 'Prepared Statements' wo die Abfrage bereits vom Server gecached wird, und damit so oft wie nötig gesendet werden kann, dies geht einher mit einem extremen Performancezuwachs.

    Dies waren nur 2 Argumente für MySQLi, es gibt noch wesentlich mehr, wer mehr erfahren will:
    Einführung in die MySQLi-Erweiterung von PHP 5 - MySQL vs MySQLi

    Also @ TE wenn du den Leuten wirklich nur MySQL näherbringen willst, dann tu dies bitte auch einzig und allein anhand von Querys, und mixe das Ganze nicht mit veraltetem, extrem unsicheren PHP-Code.
    Als kleine Anregung: Du kannst einfach PHP-MyAdmin aufmachen und dort anhand von Screens deine erklärten Querys präsentieren.

  4. The Following User Says Thank You to Sky.NET For This Useful Post:

    Snees (28.07.2012)

  5. #3
    Avatar von Snees
    Registriert seit
    18.11.2011
    Beiträge
    1.001
    Thanked 590 Times in 319 Posts

    Standard AW: [Tutorial] SQL für Einsteiger (Teil 1)

    MySQLi sollte später drankommen, hier trotzdem zur Ergänzung ein Beispiel, hatte die Datenbank "downloadbase" zum Glück noch auf dem Rechner, habe diese als Beispiel genommen.

    PHP-Code:
    <?php
    $mysqli 
    = new mysqli("localhost""root""""downloadbase");
    if (
    $mysqli->connect_error)
        {
            echo 
    "Fehler bei der Verbindung: " mysqli_connect_error();
            exit();
        }
    $ergebnis $mysqli->query("SELECT id, title, version, author, releasedate, download FROM files;");
    echo 
    "<table border='1'>\n";
    while(
    $zeile $ergebnis->fetch_array())
        {
            echo 
    "<tr><td>" htmlspecialchars($zeile["id"]) . "</td>"
            
    "<td>" htmlspecialchars($zeile["title"]) . "</td>"
            
    "<td>" htmlspecialchars($zeile["version"]) . "</td>"
            
    "<td>" htmlspecialchars($zeile["author"]) . "</td>"
            
    "<td>" htmlspecialchars($zeile["releasedate"]) . "</td>"
            
    "<td>" htmlspecialchars($zeile["download"]) . "</td>"
            
    "</tr>\n";
            
        }
    echo 
    "</table>";

    $ergebnis->close();
    $mysqli->close();
    ?>
    Ausgabe:

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 25.10.2015, 23:12
  2. Crypted .Net - Was macht das Teil?
    Von !lkay im Forum Schadsoftware
    Antworten: 2
    Letzter Beitrag: 17.06.2013, 16:28
  3. Antworten: 11
    Letzter Beitrag: 11.11.2012, 20:14
  4. Cro - Ein Teil
    Von x failstar im Forum Musik ♫
    Antworten: 1
    Letzter Beitrag: 15.07.2012, 10:57
  5. Minecraft für Einsteiger
    Von Snees im Forum Minecraft
    Antworten: 0
    Letzter Beitrag: 08.04.2012, 00:37
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.