=====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}}