Entwicklung - SQL - Die wichtigsten SQL-Befehle

SQL: Die wichtigsten SQL-Befehle

rob (53)

rob

12.08.2002 00:42

Vinn

  • 323 Postings, noch 27 bis zum nächsten Level (350)

Postings: 323

Die wichtigsten SQL-Befehle

Samstag, 29. März 2003 17:27

  • 0.0/6 Votes: 0
0.0/6 Votes: 0
Rechte erteilen:

GRANT (Rechte) ON (Datenbank) TO (Benutzer)
z.B. GRANT SELECT,UPDATE,INSERT ON shop1 TO user;

Rechte entziehen:

REVOKE (Rechte) ON (Datenbank) TO (Benutzer)
z.B. REVOKE UPDATE,INSERT ON shop1 TO user;

Datensätze aus einer Tabelle holen:

SELECT (Felder) FROM (Tabelle) WHERE (Bedingung) ORDER BY (Feld) LIMIT (Limit)
z.B. SELECT id.name,nachname FROM user WHERE name='Heinz' ORDER BY nachname LIMIT 10;

Bedingungen kombinieren:

... WHERE (Bedingung1) AND (Bedingung2) ...
z.B. SELECT * FROM user WHERE ort='Aachen' AND name='Heinz'
... WHERE (Bedingung1) OR (Bedingung2) ...
z.B. SELECT * FROM user WHERE ort='Aachen' OR name='Heinz'

Datensätze in eine Tabelle einfügen:

INSERT INTO (Tabelle) ((Felder)) VALUES ((Werte))
z.B. INSERT INTO user (name,nachname,plz,ort) VALUES ('Heinz','Mueller','52525','Heinsberg');
oder
INSERT INTO (Tabelle) VALUES ((Werte))
z.B. INSERT INTO user VALUES ('Heinz','Mueller','52525','Heinsberg','Hauptstr.123','','');
//hierbei müssen jedoch alle in der Tabelle enthaltenen Felder angegeben werden !!

Datensätze in einer Tabelle verändern:

UPDATE (Tabelle) SET (Feld1)=(Wert), ... WHERE (Bedingung)
z.B. UPDATE user SET plz='41849', ort='Wassenberg' WHERE id=12;

Datensätze löschen:

DELETE FROM (Tabelle) WHERE (Bedingung)
z.B. DELETE FROM user WHERE id=12;

Tabelle oder Datenbank löschen:

DROP TABLE (Tabelle)
DROP DATABASE (Datenbank)

Mustervergleich mit LIKE:

SELECT (Felder) FROM (Tabelle) WHERE (Feld) LIKE (Muster)
z.B. SELECT id,name,nachname FROM user WHERE nachname LIKE 'Muel%';
SELECT id,name,nachname FROM user WHERE plz LIKE '5____';
SELECT * FROM news WHERE titel LIKE '%auto%';
% steht für eine beliebige Anzahl von Zeichen
_ steht für genau ein Zeichen

Aggregatfunktionen in SQL:

Anzahl: COUNT((Feld))
z.B. SELECT COUNT(nachname) AS anzahl FROM user WHERE nachname = 'Mueller';
Durchschnitt: AVG((Feld))
z.B. SELECT COUNT(endpreis) AS durchschnitt FROM lieferung ...;
Minimum: MIN((Feld))
z.B. SELECT MIN(endpreis) AS min FROM lieferung ...;
Maximum: MAX((Feld))
z.B. SELECT MAX(endpreis) AS max FROM lieferung ...;
Summe: SUM((Feld))
z.B. SELECT SUM(endpreis) AS summe FROM lieferung ...;

TIP: wenn man eine Statistik mit mehreren Aggregatfunktionen erstellen will,
z.B. Minimum, Maximum, Durchschnitt, Mittelwert ... - dann ist es bei einer hohen Anzahl von Datensätzen besser (schneller), wenn man anstatt der einzelnen SQL-Befehle (MIN,MAX,...) alle Werte einmal aus der Datenbank holt und dann mit einem Script die gewünschten Werte errechnet / ermittelt.

Abfragen über mehrere Tabellen:

SELECT (Felder) FROM (Tabelle1),(Tabelle2), ...
oder:
SELECT (Felder) FROM (Tabelle1) INNER JOIN (Tabelle2) ON (Suchbedingung) ...
z.B. SELECT * FROM user INNER JOIN lieferung ON user.id = lieferung.kunden_nummer WHERE ...;
INNER JOIN - gibt nur Übereinstimmungen (user.id = lieferung.kunden_nummer)
OUTER JOIN - liefert alle Zeilen, nicht nur Übereinstimmungen
RIGHT JOIN - liefert alle Zeilen der ersten Tabelle und Übereinstimmungen aus der zweiten Tabelle
LEFT JOIN - liefert alle Zeilen der zweiten Tabelle und Übereinstimmungen aus der ersten Tabelle

Mengenbegriffe:

SELECT (Felder) FROM (Tabelle1) WHERE (Feld) IN ((Feld1, Feld2, Feld3))
z.B. SELECT * FROM user WHERE ort IN ('Aachen','Heinsberg','Köln');

SELECT (Felder) FROM (Tabelle1) WHERE (Feld) IN (SELECT (Felder) FROM (Tabelle2))
z.B. SELECT * FROM kunden WHERE artikel IN (SELECT artikel FROM lieferant WHERE preis > 100);

weitere Befehle:

BETWEEN - Wertebereich festlegen
z.B. SELECT * FROM user WHERE plz BETWEEN '50000' AND '59999';

GROUP BY - reduziert pro Wert auf eine Reihe
z.B. SELECT ort FROM user WHERE ort='Aachen' GROUP BY nachname;
//liefert alle unterschiedlichen Orte (je 1x) mit Anzahl

DISTINCT - Zusammenfassung gleicher Zeilen zu einer
z.B. SELECT DISTINCT nachname FROM user;
//liefert alle unterschiedlichen Nachnamen (je 1x)
TIP: unter MySQL funktioniert es nur wenn man nur ein Feld abfragt

SUBSTR(String, Start, Länge) - einen Teilstring extrahieren
z.B. SELECT SUBSTR(bezeichnung, 0, 25) FROM artikel;
//liefert die Bezeichnungen als String mit 25 Zeichen (0 bis 25)

NOT - Zeilen ausschliessen
z.B. ...NOT BETWEEN ...
...NOT IN (...
...NOT LIKE ...

Vergleichsoperatoren:

= gleich
< kleiner
<= kleiner-gleich
> grösser
>= grösser-gleich
<> ungleich

Sotierreihenfolge:

DESC - absteigend
ASC - aufsteigend
Bookmark setzen!:Zu Google Bookmark hinzufügen.Zu bloglines hinzufügen.Zu Newsgator hinzufügen.Zu FURL hinzufügen.Zu DIGG hinzufügen.Zu Webnews hinzufügen.Zu Netscape hinzufügen.Zu Yahoo MyWeb hinzufügen.Zu spurl.net hinzufügen.Zu diigo hinzufügen.Zu Newsvine hinzufügen.Zu del.icio.us hinzufügen.Zu SIMPIFY hinzufügen.Zu Mister Wong hinzufügen.Zu Linkarena hinzufügen.Zu isio.de hinzufügen.Zu Oneview hinzufügen.Zu yigg.de hinzufügen.Zu reddit hinzufügen.Zu StumbleUpon hinzufügen.Zu Slashdot hinzufügen.Zu Blinklist hinzufügen.Zu Technorati hinzufügen.Zu Blogmarks hinzufügen.Zu Blinkbits hinzufügen.Zu ma.gnolia hinzufügen.Zu smarking.com hinzufügen.Zu Netvouz hinzufügen.Zu co.mments hinzufügen.Zu Connotea hinzufügen.Zu de.lirio.us hinzufügen.

Specials

Bytefresser Specials: Anno 1404

Umfrage

Welches ist Dein Lieblings-Anno?

(39 Stimmen)

1. Ganz klar: Anno 1800!
2. Anno 2205
3. Anno 2070
4. Anno 1404
5. Anno 1701
6. Anno 1503
7. Anno 1602
8. Anno Online

Benutzer-Counter

Besucher gesamt: 1.179.407
Besucher heute: 33
Besucher gestern: 47
Max. Besucher/Tag: 900
Gerade online: 3
Max. online: 77
Seiten gesamt: 20.244.751
Aufrufe diese Seite: 7.593

Tag-Cloud

  insert     felder     between     datenbank     substr     group     bytefresser     tabelle     rechte     distinct     mueller     entwicklung     datensätze     benutzer     limit     nachnamen     zeilen     werte     select     values     sql-befehle     where     heinsberg     revoke     update     aachen     postings     grant     order     bedingung1