SQL


Dieses Dokument ist eine Sammlung meiner Notizen zu SQL aus dem Jahre 2001. Die Beispiele wurden vorwiegend mit Oracle 8 ausprobiert. Einige Anweisungen funktionieren auch mit MySQL.

Anzeigen (select)


Alle Records der Tabelle TEST anzeigen
SELECT * FROM TEST


Alle Records der Tabelle TEST anzeigen, jedoch nur die Spalten VORNAME und NACHNAME
SELECT VORNAME, NACHNAME FROM TEST


Records mit bestimmten Wertebereich auswählen
SELECT * FROM TEST WHERE NUMMER >= 123 AND     ZAHL > 2
SELECT * FROM TEST WHERE NUMMER >= 123 OR      ZAHL > 2
SELECT * FROM TEST WHERE NUMMER >= 123 AND NOT ZAHL > 2


Alle Records mit der Spalte NUMMER im Wertebereich 10 bis 20
SELECT * FROM TEST WHERE NUMMER BETWEEN 10 AND 20


Alle Namen ab M anzeigen
SELECT * FROM TEST WHERE NAME >= ‘M‘


Keine doppelten Vornamen
SELECT DISTINCT VORNAME FROM TEST


Anzahl der Datensätze
SELECT COUNT(*) FROM TEST


Anzahl der verschiedenen Vornamen
SELECT COUNT(DISTINCT VORNAME) FROM TEST


Mit mehreren Recordsets arbeiten
SELECT rsa.KUNDENNR FROM TEST_1 rsa, TEST_2 rsb WHERE rsa.NAME=rsb.NAME


Rechnen
SELECT (BRUTTO / 1.16) AS NETTO FROM TEST


Liefert alle NUMMERN nach einem bestimmten Muster z.B. 101, 102, 1023, ...
SELECT NUMMER FROM TEST WHERE NUMMER LIKE10%‘


Sortieren zuerst VORNAME dann NACHANME
SELECT * FROM TEST ORDER BY VORNAME, NACHNAME


Sortieren umgekehrte Reihenfolge
SELECT * FROM TEST ORDER BY NUMMER DESC


Ändern (update)


Ändern der Felder NUMMER und VORNAME des Records mit der ID 735
UPDATE TEST SET NUMMER = 10, VORNAME = ‘Andreas‘ WHERE ID = 735


Einfügen (insert)


Einfügen eines neuen Records in Test mit Werten für NUMMER und NAME
INSERT INTO TEST NUMMER, NAME VALUES 10, ‘Andreas‘



Löschen (delete)


Löschen eines Records mit bestimmter ID
DELETE FROM TEST WHERE ID=56



Sonstiges (speziell Oracle 8)


Feldnamen und Feldtypen einer Tabelle
DESC TEST


Öffnen und Schließen einer Sitzung
COMMIT


Alle Änderungen innerhalb einer Sitzung rückgängig machen
ROLLBACK


Felder einer Tabelle hinzufügen
ALTER TABLE TEST ADD
( WERT          NUMBER(10,2)
  NAME         VARCHAR2(30)
  ALTER         NUMBER(3)
)


Runden
ROUND(VALUE, [NACHKOMMASTELLEN])


Abschneiden
TRUNC(VALUE, [NACHKOMMASTELLEN])


Immer aufrunden
CEIL(VALUE)


Minimum und Maximum
MAX(VALUE)
MIN(VALUE)


Liefert einen Teil einer Zeichenkette
SUBSTR(string, START, länge)


Länge
LENGTH()


Ersetzt existing_string durch replacemant_string falls existing_string in string vorhanden
REPLACE(string, existing_string, replacemant_string)


Zeichnfolgen von links oder rechts mit n Zeichenketten (pad_string) auf
LPAD(string, n, pad_string)
RPAD(string, n, pad_string)


Leerzeichen links oder rechts abschneiden
LTRIM()
RTRIM()


Lowercase und Uppercase
LOWER()
UPPER()


Erster Buchstabe groß, Rest klein
INITCAP()


Spaltenname der immer das Systemdatum liefert
SYSDATE


Typenkonvertierung
TO_NUMBER()
TO_CHAR(VALUE, format)
TO_CHAR(100.233,9,999.99 DM‘) liefert 100.23 DM
TO_DATE


Liefert einen Standardwert, wenn NULL
NVL(spalte, wert_wenn_null)


ASCII()


DECODE(DAY, 1, ‘Mo‘, 2, ‘Di‘ )





Siehe auch
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki