Register for your free account! | Forgot your password?

Go Back   elitepvpers > World of Warcraft > WoW Private Server > WoW PServer Hosting
You last visited: Today at 13:40

  • Please register to post and access all features, it's quick, easy and FREE!

 

Datenbanktutorial - Für Neulinge und zum Nachschlagen.

Reply
 
Old   #1
 
elite*gold: 2693
Join Date: Jul 2010
Posts: 6,449
Received Thanks: 1,224
Datenbanktutorial - Für Neulinge und zum Nachschlagen.

Datenbanktutorial
Einführung für Neulinge

Inhaltsverzeichnis

1. Einführung
2. Benötigte Programme
3. Aufbau der Datenbank(en)
4. Einfache Commands u. Querys
5. Testabfragen
6. Einbatchen
7. Warum .sql so wichtig ist.
8. Hilfreiche Seiten und Tools
9. Schlusswort


1. Einführung

Die Datenbanken sind ein wesentlicher Bestandteil aller Emulatoren. Ohne geht es nicht, denn das ist, neben der Core als Herzstück, alles andere vom Körper. Daher daher ist eine besondere Pflege der Datenbank nötig, um ein unvergleichliches Spielerlebnis zu fördern.
In diesem kleinen Tutorial soll nur ein kleiner Bestandteil der Datenbank angeschnitten werden.


2. Benötigte Programme

Wir benötigen Hauptsächlich ein Editor, in unserem Falle nehmen wir Notepad++. Zudem ein MySQL - Programm, auf welches wir auf unsere Datenbank connecten. Für Neulinge empfehle ich Navicat Lite, um alles übersichtlicher darzustellen, für Querys SQLYog oder HeidiSQL.

Notwendige Erstausstattung:
Notepad++ - Sehr wichtig.
Navicat Lite - Weniger wichtig.
SQLYog oder HeidiSQL - Sehr wichtig.


3. Aufbau der Datenbank(en)

Eine Datenbank beherbergt Tabellen. Ihr könnt Euch das wie ein Studentenwohnheim vorstellen. Ein Haus, das viele Wohnungen hat. Jeder dieser Wohnungen hat Ihre Eigenheiten, so ist es in einer Datenbank auch.
Ein Beispiel ist der Vergleich von der Logon- und Chracterdatenbank. Standartmäßig werden in der Logondatenbank alle Accountspezifischen Daten gespeichert. In der DB, die Kurzbezeichnung für Datenbank, heißt zum Beispiel eine Tabelle 'account'. In der finden wir Accountname, -passwort, letzte Verbindung mit IP X und weitere Sachen. Hingegen, so ist es bei der TrinityCore, ist für ein GM - Leveleintrag ein EIntrag in der Tabelle 'account_access' (neuerdings auch in den rbac_tables) von Nöten.

Ihr seht, dass jede Datenbank ihre eigenen Tabellen mit Ihren Eigenheiten hat. Dieses ist auch gut so. Wäre alles gleich, wüsste man selbst nicht, wo man anfangen sollte.


4. Einfache Commands u. Querys

Es gibt in der Regel keine einfachen oder schweren Commands. Jeder hat seinen eigenen Aufbau, ich werde hier die Wichtigsten und Häufigsten nennen.


Code:
SELECT * FROM `world`.`creature_template`;
SELECT - Der Command, wenn man etwas auswählen möchte.
* - Das Sternchen steht für alles. Sprich Zahlen von 1 bis Unendlich.
`world` - Die Datenbank, die wir auswählen.
. - Absolutes Muss, wenn man Datenbank- und Tabellenname nacheinander schreibt.
`creature_template` - Die Tabelle, die wir auswählen.
; - Das Ende einer Query, wie im Satz ein Punkt.


Code:
UPDATE `world`.`creature_template` SET `entry` = 115 WHERE `entry` = 116;
UPDATE - Wir updaten etwas in der Spalte oder die ganze Tabelle, abhängig von WHERE.
SET - Wir setzen diesen Wert um.
WHERE - Die Spalte soll folgende Werte enthalten. Hier entry Nummer 116.


Code:
INSERT INTO `world`.`creature_template` (`entry`, `subname`) VALUES (115, 'Hallo');
INSERT INTO - Wir wollen etwas in eine Tabelle einsetzen. Die beiden stehen immer zusammen. Wir wählen eine Tabelle aus, wollen folgende Werte in den Klammern einfügen.
(`entry`, `subname`) - Werte, die wir ersetzen wollen.
VALUES - Wir setzen die Variablen, die wir in den Klammern definieren.
(115, 'Hallo') - Wir setzen die Variablen in der Reihenfolge, wie wir die vor VALUES geschrieben haben.


Code:
DELETE FROM `world`.`creature_template` WHERE `entry` = 122;
DELETE FROM - Wir wollen etwas von einer Tabelle löschen. Die beiden stehen auch immer zusammen.
WHERE - Diese Werte soll die Spalte haben.

Merke: Sofern man etwas löscht, dann ist es gelöscht. Man sollte immer vorher eine Sicherung machen.


Code:
REPLACE INTO `world`.`creature_template` (`entry`, `subname`) VALUES (115, 'Hallo');
REPLACE INTO - Nach Replace kommt immer INTO. Hier ist es die gleiche Reihenfolge wir bei INSERT INTO.


Merke: REPLACE arbeitet immer mit DELETE zusammen! Sofern man REPLACE einsetzt, wird ein DELETE - Command vom Server vorausgeschickt.


5. Testabfragen


Solltet Ihr diese Grundlagen verstanden haben, müsste Euch ein leichtes sein, folgende Querys zu verstehen:

Code:
DELETE FROM `world`.`creature_template` WHERE `entry` = 122;
DELETE FROM `gossip_menu_option` WHERE `menu_id` BETWEEN 1 AND 56;
DELETE FROM `gossip_menu_option` WHERE `menu_id` = 1 AND `id` = 5;
SELECT * FROM `world`.`creature_template` WHERE `entry` = 56;
INSERT INTO `world`.`creature_template` (`entry`, `subname`, `name`, `AIName`) VALUES (115, 'Hallo', 'ROFL', 'SmartAI');
Und alles verstanden? Dann wendet es mal selbst an!


6. Einbatchen

Unter "Einbatchen" versteht man das einfügen einer oder mehrerer Querys. Dieses hat sich in der Vergangenheit bewährt und kann auch mit "einspielen" gleichgesetzt werden. Unter den Devs ist nur noch einbatchen geläufig.


7. Warum .sql so wichtig ist.

Die Endung einer Datei endet immer auf ".sql". SQL heißt ausgeschrieben "Structured Query Language". Die Sprache (= Language) ist für Datenbanken wichtig, da die nichts mit .txt, .cpp etc. anfangen können.

Solltet Ihr versuchen, andere Dateien einbatchen zu wollen, erhaltet Ihr immer einen Error.


8. Hilfreiche Seiten und Tools

SQL ? Wikipedia




9. Schlusswort

Dieses ist eine kleine Einführung in die Welt der Datenbank(en). Da viele sehr unsicher sind mit der Anwendung bzw. nicht die Standartquerys können (die, die oben beschrieben sind), musste eine kleine Zusammenfassung her.

Bei Fragen bin ich gern für Euch da. Traut Euch auch, bei kleineren Fragen einfach zu Fragen. Ihr lernt schließlich auch nur dazu.



Solltet Ihr Ergänzungen haben oder etwas bestimmtes Beschrieben haben, so schreibt mir eine PN oder antwortet auf das Thema. Ich werde Bestmöglichstes versuchen, es verständlich zu erklären.


Mit freundlichen Grüßen,

Crazy


Stand: 12.04.2015



°"Crazy"° is offline  
Thanks
2 Users
Old   #2
 
elite*gold: 110
Join Date: Mar 2008
Posts: 827
Received Thanks: 361
Sehr schönes, anfängerfreundliches Tutorial!
Eine Sache habe ich allerdings auszusetzen.

Quote:
Originally Posted by °"Crazy"° View Post
Notwendige Erstausstattung:
Notepad++ - Sehr wichtig.
Navicat Lite - Weniger wichtig.
SQLYog oder HeidiSQL - Sehr wichtig.
Kein Einziges dieser Programme ist notwendig, sie machen die ganze Arbeit nur sehr viel gemütlicher.
Ich benutze z.B. Navicat nur aus Gemütlichkeit, da ich eine schnelle Übersicht aller Tabellen bekomme und meine Querys direkt in die MySQL-Konsole schreiben kann. Ansonsten ist bei mir nichts in Verwendung, bis auf den Windows Standardtexteditor.

Eventuell könntest du noch erwähnen, wie man einen MySQL-Server aufsetzt. Gern auch mit XAMPP, aber bitte erwähnen, dass dies mit den Standardkonfigurationen auf einem Rootserver äußerst unsicher ist.


Kaev <3 is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Für die neulinge
.
3 Replies - League of Legends Main - Discussions / Questions
Bot F.A.Q für Neulinge
Hier im Topic tauchen ständig die selben Anfänger Fragen auf, und viele benutzen einfach nicht die Suchfunktion. Deshalb dachte ich mir "schreibst...
7 Replies - WoW Bots
[FrageThread] Für Neulinge .
Ich öffne hier mal nen Frage Thread für Neulinge ;) Es haben sich in letzter Zeit viele Leute Terraria gekauft .. Falls ihr irgend welche Fragen...
15 Replies - Terraria
[TuT] Für Neulinge
Übersetzung: Durch Google Hallo neuer Benutzer! Ich freue mich, Sie herzlich willkommen zu elitepvpers.com (ehemals e * PvP bekannt). Sie haben...
4 Replies - Tutorials
Für WoW Neulinge
Hallo meine neuen gefährten in Azeroth!!!! Ihr wollt mit WoW anfangen oder habt es zuhause liegen, dann müsst ihr euch das anhören. Ihr könnt von...
1 Replies - WoW Main - Discussions / Questions



All times are GMT +2. The time now is 13:40.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.