,---------------------------------------. | Merkblatt MySQL | `---------------------------------------' meillo 2006-09-09 Namen in Backticks (`) Strings in Singlequotes (') SELECT [distinct] as , ... FROM as WHERE ... group by ... having ... order by ... limit ... ; where ... between and where ... in ('foo', 'bar') where ... [not] like 'M_ier%' where ... is [not] null select A.artikel, preis as nettopreis, (preis * mwst) as mehrwertsteuer, (preis + mehrwertsteuer) as bruttopreis from Artikel as A ; SELECT A.s1, B.s3 from TabelleA as A inner join TabelleB as B on A.s1 = B.s1 ; SELECT A.s1, B.s3 from TabelleA as A left join TabelleB as B on A.s1 = B.s1 ; insert into ( , , ... } values ( , , ... ) ; INSERT into ( , ... ) SELECT , ... from where ... ; SELECT ... from ... into outfile 'foo.txt' ; UPDATE set = '', ... where ... ; DELETE from where ... ; --------- group by: nur Spalten abfragen, die auch gruppiert wurden, sonst nur aggregatsfkten ( count(), max(), min(), avg(), sum() ) where --> group by --> having where: Daten auswaehlen group by: gruppieren having: gruppen auswaehlen Indizes fuer: - haeufige Werte - order by Spalten - group by Spalten - Fremdschluessel Unterabfragen: - exists - in - match - any - all - unique Fkten: abs() ceiling() floor() round( , 2) len() instr() substring() trim() lower() upper() now() dayofmonth() month() year() Operatoren: + - * / mod 'string1' + 'string2' 1.NF: Nur einfache Feldwerte (keine interne Struktur) 2.NF: Jedes Nichtschluessel-Attribut vom Schluessel abhaengig 3.NF: Nichtschluessel-Attribute untereinander unabhaengig Achtung: Ziel ist nicht Redundanzfreiheit, sondern Beseitigung von _unkontrollierter_ Redundanz! TinyText < 256 chars Text < 65.000 chars (vgl. VarChar) MediumText < 16 Mio chars