Structured Query Language/Digicomp-Kurs 2008.12.10-11: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) |
||
Zeile 67: | Zeile 67: | ||
== Weblinks == | == Weblinks == | ||
* [http://dev.mysql.com/doc/refman/5.1/de/ MySQL 5.1 Referenzhandbuch] | * [http://www.mysql.com/ Mysql] (Mysql.com) - offizielle Homepage | ||
** [http://dev.mysql.com/doc/refman/5.1/de/ MySQL 5.1 Referenzhandbuch] | |||
** [http://dev.mysql.com/downloads/ Mysql Downloads] | |||
* [http://troels.arvin.dk/db/rdbms/ Comparison of different SQL implementations] (Troels.Arvin.dk) | * [http://troels.arvin.dk/db/rdbms/ Comparison of different SQL implementations] (Troels.Arvin.dk) | ||
Zeile 76: | Zeile 78: | ||
* [http://www.inf.fh-flensburg.de/lang/db/operationen.htm Datenbankoperationen] (H. W. Lang) | * [http://www.inf.fh-flensburg.de/lang/db/operationen.htm Datenbankoperationen] (H. W. Lang) | ||
* [http://www.strassenprogrammierer.de/mysql-komplexe-abfragen-mit-joins-meistern_tipp_429.html MySQL: Komplexe Abfragen mit Joins meistern] | * [http://www.strassenprogrammierer.de/mysql-komplexe-abfragen-mit-joins-meistern_tipp_429.html MySQL: Komplexe Abfragen mit Joins meistern] | ||
Version vom 7. Februar 2009, 20:59 Uhr
FAQ
Implementierung von "top"
Microsoft SQL Server
select pflanzenname,hoehe top 5 from pflanze order by hoehe desc
select pflanzenname,hoehe top 5 with ties from pflanze order by hoehe desc
Mysql
select pflanzenname,hoehe from pflanze order by hoehe desc limit 5
select pflanzenname,hoehe from pflanze where hoehe >= (select hoehe from pflanze order by hoehe desc limit 5,1) order by hoehe desc
Siehe auch: http://troels.arvin.dk/db/rdbms/#select-limit
Implementierung regulärer Ausdrücke
Microsoft SQL Server
select pflanzenname from pflanze where pflanzenname like '[abcm]%'
Mysql
pflanzenname from pflanze where pflanzenname regexp '^[abcm].*' order by pflanzenname
Siehe auch: http://dev.mysql.com/doc/refman/5.0/en/regexp.html
Beispiel für einen regulären Ausdruck zur Plausibilitätsprüfung einer E-Mail-Adresse unter PHP:
^[_a-zA-Z0-9-]+\.([_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]\.)+([a-zA-Z]{2,4})$
Implementierung von "select into"
Microsoft SQL Server
select * into pflanze_kopie from pflanze
Mysql
create table pflanze_kopie like pflanze insert into pflanze_kopie select * from pflanze
Siehe auch: http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-select-into-table.html
Implementierung von Unterabfragen
Es folgen zwei weitere Beispiele für Unterabfragen, die mit einem Join nicht zu realisieren ist, da für eine der Tabellen eine Zusammenfassung erfolgt. Gefunden werden hier alle Datensätze in der Tabelle "pflanze", die einen Wert enthalten, der in einer gegebenen Spalte (hier "hoehe") zweimal auftritt:
select * from pflanze as p where 2 = (select count(*) from pflanze where pflanze.hoehe = p.hoehe) order by hoehe
Im folgenden Beispiel wird für jede Pflanzenfarbe diejenige Pflanze mit dem niedrigsten Preis gefunden.
select farbe, pflanzenname, preis as 'Niedrigster Preis' from pflanze as p where preis = (select min(preis) from pflanze where farbe = p.farbe) order by farbe
Weblinks
- Mysql (Mysql.com) - offizielle Homepage
- Comparison of different SQL implementations (Troels.Arvin.dk)
Join
- Relationale Datenbanken (Andreas Kelz)
- Datenbankoperationen (H. W. Lang)
- MySQL: Komplexe Abfragen mit Joins meistern