Wiki source for SqlInstrunctions
=====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
%%(sql)select * from TEST%%
Alle Records der Tabelle TEST anzeigen, jedoch nur die Spalten VORNAME und NACHNAME
%%(sql)select VORNAME, NACHNAME from TEST %%
Records mit bestimmten Wertebereich auswählen
%%(sql)
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
%%(sql)select * from TEST where NUMMER between 10 and 20%%
Alle Namen ab M anzeigen
%%(sql)select * from TEST where NAME >= ‘M‘%%
Keine doppelten Vornamen
%%(sql)select distinct VORNAME from TEST%%
Anzahl der Datensätze
%%(sql)select count(*) from TEST%%
Anzahl der verschiedenen Vornamen
%%(sql)select count(distinct VORNAME) from TEST%%
Mit mehreren Recordsets arbeiten
%%(sql)select rsa.KUNDENNR from TEST_1 rsa, TEST_2 rsb where rsa.NAME=rsb.NAME %%
Rechnen
%%(sql)select (BRUTTO / 1.16) as NETTO from TEST%%
Liefert alle NUMMERN nach einem bestimmten Muster z.B. 101, 102, 1023, ...
%%(sql)select NUMMER from TEST where NUMMER like ‘10%‘%%
Sortieren zuerst VORNAME dann NACHANME
%%(sql)select * from TEST order by VORNAME, NACHNAME%%
Sortieren umgekehrte Reihenfolge
%%(sql)select * from TEST order by NUMMER desc%%
===Ändern (update)===
Ändern der Felder NUMMER und VORNAME des Records mit der ID 735
%%(sql)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
%%(sql)insert into TEST NUMMER, NAME values 10, ‘Andreas‘%%
===Löschen (delete)===
Löschen eines Records mit bestimmter ID
%%(sql)delete from TEST where ID=56%%
===Sonstiges (speziell Oracle 8)===
Feldnamen und Feldtypen einer Tabelle
%%(oracle8)desc TEST%%
Öffnen und Schließen einer Sitzung
%%(oracle8)commit%%
Alle Änderungen innerhalb einer Sitzung rückgängig machen
%%(oracle8)rollback%%
Felder einer Tabelle hinzufügen
%%(oracle8)
alter table TEST add
( WERT NUMBER(10,2)
NAME VARCHAR2(30)
ALTER NUMBER(3)
)
%%
Runden
%%(oracle8)ROUND(VALUE, [NACHKOMMASTELLEN])%%
Abschneiden
%%(oracle8)TRUNC(VALUE, [NACHKOMMASTELLEN])%%
Immer aufrunden
%%(oracle8)CEIL(VALUE)%%
Minimum und Maximum
%%(oracle8)
MAX(VALUE)
MIN(VALUE)
%%
Liefert einen Teil einer Zeichenkette
%%(oracle8)substr(string, start, länge)%%
Länge
%%(oracle8)length()%%
Ersetzt existing_string durch replacemant_string falls existing_string in string vorhanden
%%(oracle8)replace(string, existing_string, replacemant_string)%%
Zeichnfolgen von links oder rechts mit n Zeichenketten (pad_string) auf
%%(oracle8)
lpad(string, n, pad_string)
rpad(string, n, pad_string)
%%
Leerzeichen links oder rechts abschneiden
%%(oracle8)
ltrim()
rtrim()
%%
Lowercase und Uppercase
%%(oracle8)
lower()
upper()
%%
Erster Buchstabe groß, Rest klein
%%(oracle8)initcap()%%
Spaltenname der immer das Systemdatum liefert
%%(oracle8)sysdate%%
Typenkonvertierung
%%(oracle8)
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
%%(oracle8)nvl(spalte, wert_wenn_null)%%
%%(oracle8)
ascii()
decode(Day, 1, ‘Mo‘, 2, ‘Di‘ )
%%
----
Siehe auch {{backlinks}}
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
%%(sql)select * from TEST%%
Alle Records der Tabelle TEST anzeigen, jedoch nur die Spalten VORNAME und NACHNAME
%%(sql)select VORNAME, NACHNAME from TEST %%
Records mit bestimmten Wertebereich auswählen
%%(sql)
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
%%(sql)select * from TEST where NUMMER between 10 and 20%%
Alle Namen ab M anzeigen
%%(sql)select * from TEST where NAME >= ‘M‘%%
Keine doppelten Vornamen
%%(sql)select distinct VORNAME from TEST%%
Anzahl der Datensätze
%%(sql)select count(*) from TEST%%
Anzahl der verschiedenen Vornamen
%%(sql)select count(distinct VORNAME) from TEST%%
Mit mehreren Recordsets arbeiten
%%(sql)select rsa.KUNDENNR from TEST_1 rsa, TEST_2 rsb where rsa.NAME=rsb.NAME %%
Rechnen
%%(sql)select (BRUTTO / 1.16) as NETTO from TEST%%
Liefert alle NUMMERN nach einem bestimmten Muster z.B. 101, 102, 1023, ...
%%(sql)select NUMMER from TEST where NUMMER like ‘10%‘%%
Sortieren zuerst VORNAME dann NACHANME
%%(sql)select * from TEST order by VORNAME, NACHNAME%%
Sortieren umgekehrte Reihenfolge
%%(sql)select * from TEST order by NUMMER desc%%
===Ändern (update)===
Ändern der Felder NUMMER und VORNAME des Records mit der ID 735
%%(sql)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
%%(sql)insert into TEST NUMMER, NAME values 10, ‘Andreas‘%%
===Löschen (delete)===
Löschen eines Records mit bestimmter ID
%%(sql)delete from TEST where ID=56%%
===Sonstiges (speziell Oracle 8)===
Feldnamen und Feldtypen einer Tabelle
%%(oracle8)desc TEST%%
Öffnen und Schließen einer Sitzung
%%(oracle8)commit%%
Alle Änderungen innerhalb einer Sitzung rückgängig machen
%%(oracle8)rollback%%
Felder einer Tabelle hinzufügen
%%(oracle8)
alter table TEST add
( WERT NUMBER(10,2)
NAME VARCHAR2(30)
ALTER NUMBER(3)
)
%%
Runden
%%(oracle8)ROUND(VALUE, [NACHKOMMASTELLEN])%%
Abschneiden
%%(oracle8)TRUNC(VALUE, [NACHKOMMASTELLEN])%%
Immer aufrunden
%%(oracle8)CEIL(VALUE)%%
Minimum und Maximum
%%(oracle8)
MAX(VALUE)
MIN(VALUE)
%%
Liefert einen Teil einer Zeichenkette
%%(oracle8)substr(string, start, länge)%%
Länge
%%(oracle8)length()%%
Ersetzt existing_string durch replacemant_string falls existing_string in string vorhanden
%%(oracle8)replace(string, existing_string, replacemant_string)%%
Zeichnfolgen von links oder rechts mit n Zeichenketten (pad_string) auf
%%(oracle8)
lpad(string, n, pad_string)
rpad(string, n, pad_string)
%%
Leerzeichen links oder rechts abschneiden
%%(oracle8)
ltrim()
rtrim()
%%
Lowercase und Uppercase
%%(oracle8)
lower()
upper()
%%
Erster Buchstabe groß, Rest klein
%%(oracle8)initcap()%%
Spaltenname der immer das Systemdatum liefert
%%(oracle8)sysdate%%
Typenkonvertierung
%%(oracle8)
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
%%(oracle8)nvl(spalte, wert_wenn_null)%%
%%(oracle8)
ascii()
decode(Day, 1, ‘Mo‘, 2, ‘Di‘ )
%%
----
Siehe auch {{backlinks}}