Archiv für die ‘Datenbank’ Kategorie.

Oracle – Funktion nvl

Unter Oracle gibt es durch die Funktion nvl die Möglichkeit einen Wert auf null zu überprüfen und statt dem leeren Wert (‘null’) einen alternativen Wert zurückzuliefern.

Der Aufruf sieht folgendermaßen aus: nvl(expr_1, expr_2)

Falls expr_1 leer (‘null’) ist, so gibt die Funktion den expr_2 zurück, ansonsten expr_1.

Mysql-Datenbank unter Linux exportieren und importieren

Für Linux-Systeme steht der Kommandozeilen-Befehl mysqldump zum Exportieren von Mysql-Datenbanken zur Verfügung.

Allgemein sieht der Aufruf folgendermaßen aus:
Gebrauch: mysqldump [OPTIONEN] database [TABELLEN]
oder mysqldump [OPTIONEN] –databases [OPTIONEN] DB1 [DB2 DB3...]
oder mysqldump [OPTIONEN] –all-databases [OPTIONEN]

Export einer einzelnen Mysql-Datenbank:
linux> mysqldump <DATENBANK> > datenbank.sql

Weiterlesen ‘Mysql-Datenbank unter Linux exportieren und importieren’ »

MySql – group_concat

Mysql bietet dem Anwender die Möglichkeit bei Gruppierungen, Werte anderer Spalten z.B. kommagetrennt in einer Zeile auszugeben.

Die Syntax:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

Wir benutzen das Beispiel, dass wir in dem Artikel zum Verknüpfen von Tabellen beschrieben haben, um Tabellen miteinander zu verknüpfen. Dort haben wir die Tabellen Autor, Buch und eine Verknüpfungstabelle zwischen Autor und Buch. Ein Buch kann mehrere Autoren haben. Wir wollen nun einen SQL-Befehl der alle Bücher ausgibt und deren Autoren in einer Zeile, jeweils mit Komma voneinander getrennt, wenn ein Buch mehrere Autoren hat.

Weiterlesen ‘MySql – group_concat’ »

SQL – Bestehende Datenbanktabelle verändern mit alter table

Um eine bestehende Datenbanktabelle zu verändern, um neue Spalten hinzuzufügen, Spalten verändern oder zu löschen, gibt es den Befehl: alter table.

Als erstes fügen wir der Tabelle PERSON die Spalte ADRESSE hinzu:

alter table PERSON add ADRESSE varchar(64);

Weiterlesen ‘SQL – Bestehende Datenbanktabelle verändern mit alter table’ »

SQL – Tabellen verknüpfen mit Join

Mit Hilfe von Joins lassen sich Datenbank-Tabellen einfach in SQL-Anweisungen verknüpfen.

Ich möchte die Tabelle ‘Autor’ mit der Tabelle ‘Buch’ verknüpfen. Hier die Tabellenstruktur:

Autor-Tabelle Buch-Tabelle
ID NAME
1 Autor 1
2 Autor 2
3 Autor 3
4 Autor 4
ID NAME AUTOR_ID
1 Buch 1 1
2 Buch 2 1
3 Buch 3 3
4 Buch 4 4

Weiterlesen ‘SQL – Tabellen verknüpfen mit Join’ »

SQL – Datenbank anlegen bzw. löschen

Bevor man Tabellen und Datensätze in einer Datenbank anlegen kann, muss die Datenbank selbst angelegt werden.

Dafür gibt es den Befehl: create database <DATENBANKNAME>;

Beispiel: create database autos;

Will man eine Datenbank komplett löschen, so benutzt man den Befehl:

drop database <DATENBANKNAME>;

Beispiel: drop database autos;

Bevor man eine Datenbank wirklich löscht, sollte man sich sicher sein, dass man diese nicht benötigt oder die Daten in der Datenbank gesichert hat. Nach dem Löschen sind alle Daten und der Datenbank unwiderbringlich gelöscht.

SQL – Die Klausel Order By

Mit Hilfe der Order By-Klausel kann man Ergebnisse von Select-Abfragen nach bestimmten Spalten aufsteigend bzw. absteigend sortieren.

Wir haben wieder unsere Personentabelle und wollen diese aufsteigend nach dem Alter ausgeben:

ID Name Vorname Alter
1 Mustermann Klaus 43
2 Musterfrau Elke 39
3 Musterkind Heinz 17
4 Musterkind Karl 15

Die Select-Anweisung dazu sieht so aus:

select * from personen order by alter asc;

Weiterlesen ‘SQL – Die Klausel Order By’ »

SQL – Die Klausel Group By

Die Ergebnisse einer Select-Anweisung können mit Hilfe der Group by-Klausel gruppiert werden. Dazu wird wieder eine Select-Anweisung geschrieben, am Ende wird dann die Group by-Klausel angehängt. Die Group by-Klausel gruppiert dann die gleiche Werte einer Spalte zu einer Ergebnisspalte zusammen.

ID Name Vorname Alter
1 Mustermann Klaus 43
2 Musterfrau Elke 39
3 Musterkind Heinz 17
4 Musterkind Karl 15

Beispiel: select sum(alter) as summe, name from personen group by name;

Weiterlesen ‘SQL – Die Klausel Group By’ »

SQL – Die Anweisung Insert

Um neue Datensätze in eine Tabelle einer SQL-Datenbank zu schreiben gibt es die INSERT-Anweisung.

Formal gibt es hier zwei mögliche Insert-Anweisungen:

1. insert into TABELLENNAME (SPALTENNAME1, SPALTENNAME2, …) values (WERT1, WERT2, …);

2. insert into TABELLENNAME select SPALTENNAME1, SPALTENNAME2, …

Bei Punkt 1 werden die Spalten der Tabelle benannt, die gefüllt werden sollen. Dabei stehen die Spaltennamen in Klammern, genauso steht die Aufzählung der Werte für die Spalten in Klammern. Vor dem Aufzählen der Werte steht das Schlüsselwort values. Es müssen bei der Angabe der Spalten nur die Spalten genannt werden, die gefüllt werden sollen, die restlichen Spalten der Tabelle würden dann leer bleiben. Werden aber alle Felder gefüllt, so müssen die Spalten nicht angegeben werden und man kann direkt die Werte angeben. Jedoch müssen die Werte in der Reihenfolge genannt werden, wie die Spalten in der Tabelle vorkommen.

Bei Punkt 2 wird eine Tabelle aus den Daten einer anderen Tabelle befüllt. Dabei müssen die ausgewählten Spalten der beiden benannten Tabellen übereinstimmen, da es sonst zu Fehlern kommen kann.

Weiterlesen ‘SQL – Die Anweisung Insert’ »

SQL – Die Anweisung Update

Datensätze in einer SQL-Datenbank können mit dem UPDATE-Befehl bearbeitet werden.

Die UPDATE-Anweisung sieht formal so aus:

update TABELLENNAME set SPALTENNAME1 = Wert1 [, SPALTENNAME2 = Wert2, ...] where BEDINGUNG;

Weiterlesen ‘SQL – Die Anweisung Update’ »