MySQL Basic's HowTo

  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_forum_access_access_any_forum' not found or invalid function name in /var/kunden/webs/lug/includes/menu.inc on line 452.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'nodereference_autocomplete_access' not found or invalid function name in /var/kunden/webs/lug/includes/menu.inc on line 452.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_forum_access_access_any_forum' not found or invalid function name in /var/kunden/webs/lug/includes/menu.inc on line 452.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'nodereference_autocomplete_access' not found or invalid function name in /var/kunden/webs/lug/includes/menu.inc on line 452.
  • warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'date_repeat_node' not found or invalid function name in /var/kunden/webs/lug/includes/menu.inc on line 452.

MySQL ist eine Datenbank Server-Software die unter der GNU Genral-Public-Licence-2 steht. Diese Datenbank Software wird in viele Anwendungen heutzutage eingesetzt und wird auch oft in PHP-Programmen und Internetseiten eingesetzt.

Dieser Beitrag soll zeigen, wie standard MySQL-Anweisungen beispielsweise in einer MySQL-Shell ausgeführt werden. In der MySQL-Shell werden alle Anweisungen mit einem Semikolon ( ; ) abgeschlossen.

Abfrage in einer MySQL Datenbank


select * from db.table1;
select spalte1,spalte2 from db.table1;
select spalte1,spalte3 from db.table1;

Erklärung: In diesen Abfragen bedeutet "db", das dieses eine Datenbank ist und "table1" eine Tabelle. Das Sternchen hat die bedeutung, das bei der Ausgabe, alle Spalten aus der angegeben Tabelle ausgegeben werden soll. Es werden so alle Datensätze gezeigt.

Wechseln zu einer Datenbank / Datenbanken und Tabellen anzeigen lassen


show databases;
use dbname;
show tables;

Erklärung: Mi show database; und show tables; kann man sich die Datenbanken oder Tabellen ausgegeben lassen. Um Tabellen ausgeben lassen zu können, muss man aber in einer Datenbank sein. Zu einer Datenbank wechselt man mit use und dahinter ein Name einer Datenbank.

Ist man in einer Datenbank ist es nun auch möglich folgendes benutzen:


select spalte6 from table2;

Erklärung: Alle Datensätze aus der Tabelle "table2" werden ausgegeben, wobei sich die Ausgabe auf die spalte6 beschränkt.

Filterungen bei einer Anfrage setzen


select spalte56 from db.table2 where spalte7='foo';
select * from db.table2 where spalte7='foo' and spalte8='bar';

Erklärung: Bei der ersten Anweisung wird die "spalte56" ausgegeben von der Datenbank "db" und der Tabelle "table2". Es werden aber nur Datensätze ausgegeben wo in der Spalte "spalte7" der Wert "foo" existiert. Bei der zweiten Anweisung muss zusätzlich noch der Wert "bar" in der Spalte "spalte8" vorhanden sein.

Es sind auch Vergleichsoperatoren möglich. Vergleichsoperatoren können < > <= => != sein.


select * from db.tabelle where spalte7 > 1;
select * from db.tabelle where spalte7 => 100;

Erklärung: Überall wo die Spalte "spalte7" höher ist als 1 wird ausgegeben. Bei dem zweiten Beispiel werden alle Datensätze ausgegeben, wo der Wert höher oder gleich wie 100 ist.

Wildcards setzen


select spalte56 from db.tabelle where spalte7 like '%fo%o%';

Erklärung: Ein % Zeichen in Verbindung mit einem like steht für ein oder beliebige Zeichen. So könnte solche Ergebnisse ausgegeben werden.
xxfoo
foooo
xfoxo
xfoox
xfooox
xfoooxx

Updates oder Änderungen an Datensätzen


update db.tabelle set spalte8='newentry' where spalte8='oldentry';
update tabelle set spalte8='newentry' where spalte4 like '%foo%';
update db.tabelle set spalte8='newentry' where spalte8='oldentry' and spalte9='entry' and spalte10='1001';

Erklärung: Wo in der Datenbank und Tabelle in der spalte8 ein Eintrag "oldentry" existiert wird die spalte8 Überschrieben mit dem Wert "newentry". In dem zweiten Beispiel kommt zusätzlich noch eine like Anweisung. Zu beachten ist, das Theoretisch auch mehrfache änderung möglich wenn dieser Eintrag öfters in der spalte8 oder spalte4 vorkommt. Möchte man aber diese Anweisung etwas mehr eingrenzen, kann man auch wie in den dritten Beispiel vorgehen um dieses fals notwendig zu vermeiden.

Neue Datensätze hinzufügen


insert into tabelle (spalte1, spalte2, spalte3) VALUE ("zu 1", "zu 2", "zu 3");

Erklärung: Dieses benötigt eine vorhandene Tabelle in der dann die Werte "zu 1", "zu 2" und "zu 3" jeweils in die Spalten spalte1, spalte2 und spalte3 eingetragen werden.

Löschen von Datenbanken oder Tabellen


drop database dbname;
drop table tabelle, tabelle2, tabelle3;

Erklärung: Die drop Anweisung kann man nutzen um Datenbanken oder auch Tabellen zu löschen. Möglich ist, eine mit Komma getrennte Liste anzugeben um mehrere Datenbanken oder Tabellen zu löschen.

Verbindung zu einen MySQL-Server

(Vorrausgesetzt ist, man hat eine Lokale Anbindung oder es ist erlaubt Remote auf den MySQL-Server sich zu verbinden.)


mysql -u USER -pPASS
mysql -u USER -p
mysql -u USER -p DATABASE
mysql -u USER -p -h HOSTNAME

Erklärung: Mit der Option -u ist es möglich einen Benutzer zu wählen mit dem man sich verbinden möchte. Bei der Option -p wäre es möglich direkt ein Passwort anzugeben, wobei zu beachten ist, hinter der Option kein Leerzeichen zu benutzen. Geht man so vor, wäre das Passwort in der History wieder zu finden! Gibt man kein Passwort zu der Option -p wird man nach einem Passwort gefragt und ist dann nicht für den Benutzer sichtbar.

Sicherungen


mysqldump -u USER -p DATABASE > dump.sql
mysql -u USER -p DATABASE < backup.sql

Erklärung: In dem ersten Beispiel wird die Datenbank "DATABASE" in die Datei dump.sql geschrieben und hat eine Sicherung. Gibt man keine Datenbank an, werden alle Datenbanken gesichert die der Benutzer einsehen darf. (Der MySQL-Root Benutzer würde so alle Datenbanken sichern.) In dem zweiten Beispiel wird die Datei backup.sql in die Datenbank "DATABASE" geschrieben. Es gibt zu dem auch verschiedene Arten Sicherungen anzulegen, wobei ich mich auf dieses beschränken möchte.

Abschluss

Diese hier aufgeführten Anweisungen sind natürlich nur einige die MySQL bietet und soll nur dafür sein, sich einen start mit MySQL zu erleichtern. Die Entwickler von MySQL haben selber ein Umfassendes Handbuch welches auf der Internetseite von MySQL zu finden ist. Zudem gibt es auch manpages die einem weiterhelfen können.

Zum Abschluss noch eine Anweisung:

select spalte5 from dbname.tabelle where (select spalte5 from dbname.tabelle2 where foo='2');

Hoffe dieses war etwas Informativ und zeigt, wie man mit MySQL umgeht.

schon ganz gut ;)

Was hältst du davon die MySQL-"Wörter" (mir fällt grad der fachbegruiff nicht ein, also z.b. "SELECT", "INSERT" etc) durchweg groß zu schreiben? Wenn man sich das von Anfang an angewöhnt, dann störts nicht und steigert ungemein die leserlichkeit. Außerdem ist noch zu sagen, dass alles bis "Verbindung mit einem MySQL-Server ausnehmen" (was ist damit eigtl. gemeint?) sog. Queries sind, also Befehle, die man z.B. per API einer Programmiersprache an den MySQL-Server schickt und alles danach in der Shell passiert. Jemanden der noch gar keine Ahnung von MySQL hat könnte das verwirren.

Ansonsten ganz nette Übersicht. Gut gemacht ;)

re:
Daniel hatte geschrieben:

Was hältst du davon die MySQL-"Wörter" (mir fällt grad der fachbegruiff nicht ein, also z.b. "SELECT", "INSERT" etc) durchweg groß zu schreiben?

Das sind MySQL-Anweisungen oder MySQL-Syntaxanweisungen, persönlich finde ich kann man sich wenn alles Kleingeschrieben ist sich mehr auf das gesamte Konzentrieren. Habe auch ewigkeiten keine Syntax Groß- und Kleinschreibung eingesetzt und aus dem Grund habe ich auch nicht daran gedacht gehabt. Im endeffekt nutzt man die Groß- und Kleinschreibung nicht wenn man öfters etwas mit MySQL zu tun hat.

Quote:

Wenn man sich das von Anfang an angewöhnt, dann störts nicht und steigert ungemein die leserlichkeit. Außerdem ist noch zu sagen, dass alles bis "Verbindung mit einem MySQL-Server ausnehmen" (was ist damit eigtl. gemeint?)

Mit dem Satz "Verbindung mit einem MySQL-Server ausnehmen" meinte ich eigentlich "Verbindung mit einem MySQL-Server aufnehmen" also eine verbindung aufnehmen. Werde meinen Rechtschreibfehler noch fixen gleich.

Quote:

sog. Queries sind, also Befehle, die man z.B. per API einer Programmiersprache an den MySQL-Server schickt und alles danach in der Shell passiert. Jemanden der noch gar keine Ahnung von MySQL hat könnte das verwirren.

Das es Queries sind stimmt schon, bin ich nicht dazu gekommen das zu schreiben. Da das eher auch eine Idee war, mal eben zu schreiben alles und hatte das auch geschrieben das ich mich kurz halte.

Quote:

Ansonsten ganz nette Übersicht. Gut gemacht ;)

Danke.

updated

Habe mal den Text neu angepasst wie er jetzt auch in meinem Blog steht.

ghd New Zealand

ghd New Zealand is known for her function.Qualities of people are using ghd nz frequently.They think it will make themself pretty and have a Good Hair Day.

chanel j12 ceramic watch

Chanel J12 CERAMIC Ladies Replica Watch CH017(34mm).Sale Chanel Watches,Chanel Watches,Chanel Replica Watches,Replica Watches are on sale now! When speaking of the quality of movement and reliable characteristic,Chanel J12 Watches,chanel j12 white ceramic,Chanel Ladies Watches, Rolex is no doubt the most excellent one.Chanel Mens Watches,chanel j12 white,chanel watches j12, As one series of this famous brand,white chanel watch,chanel watches online,black chanel watch, Replica Watch is also perfect. With a full GMT hand which is full independently adjustable, chanel women watches,chanel j12 superleggera,you can read the time of a second time zone easily.chanel j12 ceramic watch,chanel j12 chronograph,chanel black j12, Chanel Watches are the best interpretation your taste.Replica Chanel watches have durable materials,chanel j12 black watch,chanel black watch,mens chanel watches,when you wear them, you will like them good texture. The more important is that you will love these kinds of series replica Chanel watches,chanel watches ladies,chanel watches white,ladies chanel watches, it can show your excellence extraordinary taste. 18K Solid White Gold Mauboussin wristwatch with Mechanical Movement and 18K Solid Gold buckle. This elegant luxury timepiece was presented to me as a gift in 2008. It was worn only few times and in Mint as New Condition in and out, still has factory protective sticker on back.chanel j12 ceramic watch,chanel watch j12 ceramic, The watch keeps good time. This particular watch can be worn either by man or a woman. The list price of this watch is nearly $9,000. The total weight of the watch is 53 grams. The watch comes in its own outer box and inner presentation case along with genuine leather pouch and blank warranty certificate.