SQL steht für Structured Query Language und ist eine Datenbanksprache.
Dieses Tutorial bezieht sich auf eine Mysql Datenbank.
Syntax:
create database datenbankname;
Beispiel:
create database sqltutorial;
create database `sql-tutorial`; (Sonderzeichen bindestrich)
Syntax:
drop database datenbankname;
Beispiel:
drop database sqltutorial;
Syntax:
CREATE TABLE tabellenname
(
Spaltenname Typ Option
[...]
);
Beispiel:
CREATE TABLE KundenTest
(
Vorname varchar (100) NOT NULL,
Nachname varchar (100) NULL,
Beruf varchar (100),
`Alter` int(11),
Geburtsdatum date
);
Alter wurde mit Sonderzeichen ausgestattet, weil es eine alter Funktion
existiert.
Syntax:
RENAME TABLE tabellenname;
Beispiel:
RENAME TABLE KundenTest TO Kunden;
Syntax:
DROP TABLE tabellenname;
Beispiel:
DROP TABLE Kunden4;
Syntax:
INSERT INTO tabellenname (Spaltenname [...]) VALUES (Werte [...]);
Beispiel:
Kurze Version:
INSERT INTO Kunden (Vorname, Nachname, Beruf, `Alter`, Geburtsdatum) VALUES ('Peter', 'Wurst', 'Bauer', '23', '2014-12-18');
Lange und sichere Version:
INSERT INTO `sql-tutorial`.`Kunden` (
`Vorname` ,
`Nachname` ,
`Beruf` ,
`Alter` ,
`Geburtsdatum`
)
VALUES (
'Hans', 'Wurst', 'Fleischer', '22', '2014-12-18'
);
Syntax:
SELECT Spaltenname, [...] FROM Tabellenname;
Beispiel:
Select * From Kunden;
Select Vorname, Nachname From Kunden;
Select Nachname AS Name From Kunden;
Select * From Kunden WHERE `Alter` > 22;
Select * From Kunden WHERE `Alter` BETWEEN 20 AND 22;
Select * From Kunden WHERE Nachname = 'Wurst' AND Vorname = 'Peter';
Hier kommt nur ein Ergebnis.
Select * From Kunden WHERE Nachname = 'Wurst' OR Vorname = 'Peter';
Zwei Ergebnisse
Syntax: SELECT Spaltenname, [...] FROM Tabellenname WHERE Spaltenname
LIKE 'MUSTER';
Muster
Beispiel:
Select * From Kunden WHERE Nachname LIKE 'W_st';
Syntax:
SELECT Spaltenname, [...] FROM Tabellenname ORDER BY Spaltenname, [...] ASC|DESC;
Beispiel:
Select * From Kunden ORDER BY Nachname, Vorname ASC;
Der IN Operator ersetzt den OR Parameter, kann jedoch nicht mit LIKE
funktionen genutzt werden.
Select * From Kunden WHERE Vorname IN ('Peter', 'Hans');
Ergebnismenge wird gruppiert. Dieser Befehl wird meistens in Verbindung
von AVG, SUM und Count usw. Verwendet.
Select Beruf From Kunden GROUP BY Beruf;
Zeigt alle Berufe an.
Select Beruf, count(Beruf) AS Anzahl From Kunden GROUP BY Beruf;
Zeigt die Berufe mit der jeweiligen Anzahl auf.
HAVING ist ein zusätzlich WHERE klause die es erlaubt nach einem GROUP
BY zu benutzen.
Select * From Kunden GROUP BY Beruf HAVING `ALTER` = 22;
Mittels Distinct wird die Redundanz reduziert.
Select DISTINCT Nachname From Kunden;
Weiteres SQL_Distinct
Mittels einem Join können mehrere Tabellen Verbunden werden.