Frank Schönmann: Buch zum Thema SQL

Beitrag lesen

hi!

Bei Amazon gibts einige zum Thema SQL aber keine definitiv zum Thema Online-DB... der
SQL server ist ein "msql" nur gibt es einen Msql? oder ist das der mysql oder der MS SQL?

Der Server heißt mSQL und hat überhaupt nichts mit Microsoft zu tun. Die Homepage findest du hier: http://www.Hughes.com.au/products/msql/

Hat wer erfahrung mit On-Line - Datenbanken.

Naja, ein wenig.

Ich frag mich gerade wie das funktioniert, ich hab zwar schon die eine oder andere
Datenbank geschrieben (access frontends für SQL datenbanken) nur war da halt die
datenbank schon vorhanden, in diesem fall ist noch gar nichts vorhanden... in was schreibt
man SQL db'S ?

Man schreibt keine SQL-Datenbanken in irgendetwas, sondern irgendetwas in SQL-Datenbanken. Im Prinzip: du stellst eine Verbindung zu einem Datenbank-Server her, schickst ein SQL-Kommando an den Server und dieser trägt Daten in eine Datenbank ein oder liest Daten aus. Danach schickt er dir eine Rückmeldung: das können ausgelesene Daten oder einfach nur ein Returncode sein.

Kann ich aus HTML heraus über Perl eine DB generiern lassen? Wäre ja nicht groß ca. 3-4
tabellen.. und anfangs sicher nicht mehr als 300-3000 einträge.. tendenz hoffentlich steigend :)

Eine Datenbank kannst du aus Perl heraus nicht generieren, wohl aber Tabellen in einer bestehenden Datenbank. Du brauchst dazu das DBI-Modul und das mSQL-DBD-Modul.

Hier ein paar grundlegende Techniken:

Verbindung herstellen:
=== cut ===
#!/usr/bin/perl

use DBI;

$dbname = "test-db";
$dsn = "DBI:mSQL:database=$dbname";
$db = DBI->Connect($dsn);
=== cut ===

SQL-Kommando senden (ohne Rückmeldungen):
=== cut ===
$query = <<"EOQ";
CREATE TABLE Person (
  Vorname CHAR(10),
  Nachname CHAR(20)
)
EOQ
$db->do($query);
=== cut ===

SQL-Kommando senden (mit Rückmeldungen, zb. beim Auslesen von Daten):
=== cut ===
$query = <<"EOQ";
SELECT Vorname, Nachname FROM Person
EOQ
$sth = $db->prepare($query);
$sth->execute;
$sth->finish;
=== cut ===

$sth ist ein Handle für diese Abfrage und kann dann weiterverwendet werden, um die ausgelesenen Daten zu verwerten:
=== cut ===
while (my $ref = $sth->fetchrow_hashref)
{
  printf("Vorname: %s\n", $%ref{'Vorname'});
  printf("Nachname: %s\n", $%ref{'Nachname'});
}
=== cut ===

Ich hoffe, das bringt dich erstmal weiter. Ich hoffe auch, dass alles funktioniert, denn ich konnte es leider nicht testen, da ich unter Windows kein entsprechendes Datenbank-System installiert habe.

Falls du kein Buch über SQL, sondern über Perl mit SQL brauchst, kauf die "Programmieren mit Perl-Modulen". Ist zwar kein reines Buch über Datenbank-Programmierung, aber ca. 50 Seiten des Buches beschäftigen sich genau damit. Aber auch die restlichen Kapitel lohnen sich, wenn man sich mit Perl beschäftigen möchte.

bye, Frank!