Mysmilies.net die Smilies Datenbank

Script oder Datei finden :

 
-Startseite
-Newsarchiv
-Newsletter
-Mein Dreamcodes
-Scripte
-eBooks
-Online Speicher
-Datenbanken
-Webseiten
-Trickfilm
-Web Grafiken
-Bildbearbeiter
-Browser
-EMail Software
-Ftp Clienten
-Betriebssysteme
-Texteditoren
-Wampserver
-Office Pakete
-Antivirus
-System Cleaner
-Recovery Tools
-Php Schnipsel
-Ajax Schnipsel
-VB Schnipsel
-Tutorials
-Workshops
-Webkatalog
-Leserforum
-Erweiterte Suche
-Sitemap
-Impressum
-neuste Downloads

1. Selfphp (1851)
2. Xampp OS X (1737)
3. Xampp Linux (1726)
4. Xampp Windows (1750)

-neuste Tutorials

1. Samsung S20 rooten (2172)
2. Gratis USA Nummer (15921)
3. RAID (14735)
4. Text auf Grafik (15588)


Tutorials Sql Einstieg II

 

Sql Einstieg II

Themen:

- erstellen von neuen datenbanken & tabellen
- bearbeiten der spalten einer tabelle
- aliases
- "komplexere" abfragen über mehrere tabellen (joins)

-- erstellen einer neuen datenbank (funktioniert zum beispiel nicht mit access):
- CREATE DATABASE DATENBANKNAME

(zb CREATE DATABASE dbMyHomepageData)


-- erstellen einer neuen tabelle
- CREATE TABLE Tabellenname(Spalte1 Datentyp, Spalte2 Datentyp, Spalte3 Datentyp, ...)
- CREATE TABLE t_Comment(coID text, co2US integer)
-- beim erstellen einer neuen tabelle muss natürlich auf das jeweilige datenbank-system geachtet werden! text zb wäre ein größeres textfeld am sql server, jedoch nur eine textzeile in microsoft access. zu diesem zweck empfiehlt es sich immer ein handbuch für die jeweilige Datenbank zur verfügung zu haben

-- löschen einer datenbank
- drop database DATENBANKNAME

-- löschen einer tabelle
- drop table TABELLENNAME

-- leeren einer tabelle (inhalte löschen, tabelle bleibt bestehen)
- delete table TABELLENNAME


um spalten einer tabelle zu bearbeiten (löschen/hinzufügen) verwendet man den ALTER befehl...

-- spalte hinzufügen
- alter table TABELLENNAME add SPALTENNAME DATENTYP
- zb "alter table t_Comment add coDateTime datetime"

-- spalte entfernen
- alter table TABELLENNAME drop column SPALTENNAME

beim entfernen von spalten muss man vorsichtig sein, nicht alle Datenbanksysteme lassen dies zu, schon gar nicht wenn diese spalten mit anderen tabellen verknüpft sind!


ALIASES

aliases sind eigentlich schon im einsteiger-teil vorgekommen, allerdings bin ich dort nicht näher darauf eingegangen.

wir erinnern uns (doch hoffentlich *g*): select count(*) as menge from t_Users

mit dem schlüsselwort as ("als") definieren wir einen namen für eine spalte in der abfrage, in diesem fall bekommt die spalte, in der die anzahl aller datensätze in der tabelle t_users steht den namen "menge"

-- ein weiteres beispiel wäre dieses
- select usname as Nickname, usmail as EMail from t_users order by usname asc
-- ich habe hier auch order by untergebracht damit ihr seht, dass man trotzdem nach dem spaltennamen und nicht nach dem alias sortieren muss.

-- aliases funktioniern sogar bei tabellen-namen
- select * from t_users as Benutzer

allerdings habe ich bis heute noch keinen sinnvollen einsatzzweck für einen tabellennamen-alias gefunden



JOINS - abfragen über mehrere tabellen hinweg

die gebräuchlichste benutzung von joins ist der sogenannte INNER JOIN. hierbei werden zwei tabellen anhand einer gemeinsamen spalte verknüpft (eine beziehung sollte also gegeben sein)

-- um in unserer datenbank herauszufinden, auf welche dateien ein user zugriff hat benötigt man folgenden befehl:
- select t_users.usname,t_access.acfilename from t_users inner join t_access on t_access.ac2us = t_users.usid order by t_users.usname asc

(was jetzt neu dazugekommen ist, ist die tatsache das vor spaltennamen die tabelle im sinne von tabelle.spaltenname angegeben wird. dies ist sinnvoll, wenn eine abfrage über mehr als eine tabelle geht und in unserem access beispiel sogar notwendig (access verweigert den dienst wenn die tabellennamen bei joins nicht vor der spalte angegeben werden - "Verknüpfungsausdruck nicht unterstützt", andere systeme wie zb der sql server benötigen diese notation nicht. unter umständen muss man sogar folgende notation verwenden: [TABELLENNAME].[SPALTENNAME])


um unsere beispieldatenbank anzusehen befindet sich in der tabelle T_ACCESS eine spalte namens AC2US. diese stellt einen sogenannten fremdschlüssel (foreign key) dar und verweist auf die T_USERS-Tabelle.

beispiel:

-- die tabelle t_users beinhaltet folgenden datensatz:
- 1 | Quentin | 123 | asdf@asdf.comDiese E-Mail Adresse ist gegen Spam Bots geschützt, Sie müssen Javascript aktivieren, damit Sie es sehen können (usid,usname,uspwd,usmail)

-- die tabelle t_access beinhaltet folgenden datensatz:
- 1 | nix.asp | 1 (acid,acfilename,ac2us)

dadurch, das ac2us die id 1 hat wissen wir schon, das diese User-ID dem user Quentin (also mir ) gehört. das obige beispiel mit dem innerjoin fügt diese zwei datensätze in einer abfrage zusammen!


hinweis: joins sind die gebräuchliche variante um tabellen in einer abfrage zu verknüpfen, es gibt aber auch noch eine andere möglichkeit auf die ich nicht näher eingehe *g*

-- das obige beispiel, ein klein wenig anders:
- select t_users.usname, t_access.acfilename from t_users, t_access where t_access.ac2us = t_users.usid


weitere joins:

-- mit INNER JOIN haben wir die tabellen zwar verknüpft, allerdings werden die einträge weggelassen, die keine beziehung zu der anderen tabelle haben. mit LEFT JOIN erhalten wir alle datensätze, auch wenn in der zweiten tabelle keine beziehung zur ersten besteht:
- select t_users.usname,t_access.acfilename from t_users left join t_access on t_access.ac2us = t_users.usid order by t_users.usname asc
-- jetzt wird auch ein datensatz zurückgegeben mit dem usernamen "HOLYFLY", allerdings bleibt die spalte ACFILENAME leer, da keine beziehung in der tabelle T_ACCESS zur tabelle t_USERS gegeben ist

-- wenn wir jetzt aber auch diejenigen datensätze selektieren wollen, die keine beziehung in der ersten tabelle zur zweiten tabelle herstellen, so verwenden wir RIGHT JOIN
- select t_users.usname,t_access.acfilename from t_users right join t_access on t_access.ac2us = t_users.usid order by t_users.usname asc
-- jetzt wird auch ein datensatz zurückgegeben ohne usernamen, allerdings steht in der spalte ACFILENAME der wert "keinuser.asp", da keine beziehung in der tabelle T_USERS zur tabelle t_ACCESS gegeben ist

klingt vielleicht alles ein wenig kompliziert, aber wenn man die beispiele einmal selbst nachgemacht hat, wird einem schlagartig alles klar =)

 
Seiten : 1
hinzugefügt am : 13.04.2008
Autor : Keine Angabe
Listings ID : 1621
Status zum lesen : Gast
gelesen : 5271 mal
[Druckansicht] [Lesercharts] [RSS] [zur Übersicht]
 
 

Die Möglichkeit diesen Artikel zu verlinken :

HTML-Code:

Code zum Einbinden in ein Forum:


Hinweis : Das lesen des Artikels Sql Einstieg II - listings ID: 1621 auf Dreamcodes, sowie Link Verweise auf Internetseiten fremder Anbieter erfolgen auf eigene Gefahr. Dreamcodes haftet nicht für Schäden, die aus der Verwendung des Inhaltes der Artikel erfolgen könnten. Schadenersatzansprüche, aus welchem Rechtsgrund auch immer, sind ausgeschlossen !
-Live Statistik
Datum: 22.11.2024
Uhrzeit: 00:33 Uhr
Online: 30 User
User heute: 666
User allgem.: 35311323

Eingeloggt als Gast
-Download des Monats
-
-unsere Monats Umfrage
Welche Serie ist besser?

The Blacklist
House of the Dragon
Die Ringe der Macht
The Sandman
Manifest

-unsere Bestseller