Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SQL Tutorial neue Schreibweise ?! (https://www.delphipraxis.net/170658-sql-tutorial-neue-schreibweise.html)

Davidlocke13 27. Sep 2012 13:59

SQL Tutorial neue Schreibweise ?!
 
Kennt wer gute SQL einsteiger Tutorials mit der neuen Schreibweise ?

Arbeite mit Oracle ! :coder2:

Gruß

mkinzler 27. Sep 2012 15:00

AW: SQL Tutorial neue Schreibweise ?!
 
Was verstehst du unter "neuer Schreibweise"?

p80286 27. Sep 2012 15:04

AW: SQL Tutorial neue Schreibweise ?!
 
:glaskugel: left outer join:glaskugel:
"Ansi Joins" ??

Gruß
K-H

Lemmy 27. Sep 2012 15:05

AW: SQL Tutorial neue Schreibweise ?!
 
vermutlich die neue deutsche Rechtschreibung ;-)

Davidlocke13 27. Sep 2012 15:31

AW: SQL Tutorial neue Schreibweise ?!
 
Meine so was !

Alt:
Code:
SELECT c.*,m.*
FROM Mitarbeiter m, cities c
WHERE 1=1
 and m.ort = c.full_name_nd(+)
ORDER BY Name
Neu:
Code:
SELECT c.*,m.*
FROM Mitarbeiter m
left join cities c
  on m.ort = c.full_name_nd and c.cc_fips = 'GM'
WHERE 1=1
ORDER BY Name

mkinzler 27. Sep 2012 15:34

AW: SQL Tutorial neue Schreibweise ?!
 
Na ob man SQL92 als neu bezeichnen kann

Davidlocke13 27. Sep 2012 15:39

AW: SQL Tutorial neue Schreibweise ?!
 
Naja habe gehört das es beide Schreibweisen gibt und wenn ich SQL lerne dann auch gleich die richtige Schreibweise und so weit ich weis ist ein halt neuer !

p80286 27. Sep 2012 15:45

AW: SQL Tutorial neue Schreibweise ?!
 
vielleicht hilft Dir das schon weiter.

Ansonsten, Fragen stellen.

Gruß
K-H

shmia 27. Sep 2012 16:06

AW: SQL Tutorial neue Schreibweise ?!
 
Also die Ansi Joins aus SQL/92 sind deutlich besser lesbar als die Oracle Joins,
weil die Verknüpfungen zwischen den Tabellen getrennt von den Filterbedingungen sind.

Wenn man 4 und mehr Tabellen verknüpfen muss, dann kann man bei der alten Syntax leicht mal einen Teilausdruck vergessen.
Das führt dann dazu, dass man mehr Datensätze bekommt als man eigentlich wollte.
Häufig fällt das erst dann auf wenn die Datenbank mit echten Daten gefüllt ist. :(

jobo 27. Sep 2012 16:07

AW: SQL Tutorial neue Schreibweise ?!
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1184702)
Arbeite mit Oracle !

Ich arbeite fast ausschließlich mit Oracle und hier ist die Verwendung von ANSI Join offenbar irgendwie unpopulär.
Ich weiß nicht genau, könnte mir aber vorstellen, dass Oracle damit relativ spät um die Ecke gekommen ist (vielleicht weiß dazu irgendjemand was)
Persönlich finde ich die "alte" Schreibweise intuitiver und auch übersichtlicher. *1 Spätestens, wenn Du ein Dutzend oder mehr joins hast, ist das allerdings schwer zu begründen, also tatsächlich nur Gewohnheit.
Größter Knackpunkt an der alten Oracle (+) Notation ist vielleicht die fehlende Darstellungsmöglichkeit für Full Outer Joins, die man dann über ein Union in 2 Schritten darstellen müsste und natürlich die Inkompatibilität zu vielen anderen RDBMS.

Manchmal begegnet man Vermutungen, dass sich das gewählte Verfahren auch auf die Ausführungsgeschwindigkeit auswirkt. Ich halte das für Humbug.

Der größte Vorteil ist m.E. die klare und offensichtliche Unterscheidung zwischen Join und Filterkriterien.

*1 auch wenn shmia das anders sieht :)

Davidlocke13 27. Sep 2012 16:11

AW: SQL Tutorial neue Schreibweise ?!
 
Ok das ist doch schon mal ne Erklärung ich ich verstehe !

THX

mkinzler 27. Sep 2012 16:32

AW: SQL Tutorial neue Schreibweise ?!
 
Zitat:

Ich weiß nicht genau, könnte mir aber vorstellen, dass Oracle damit relativ spät um die Ecke gekommen ist (vielleicht weiß dazu irgendjemand was)
Andersherum bei SQL87 gab es keine expliziten Joins und so hat Oracle die eigene Notation eingeführt.
Als die expliziten joins dann in SQL92 eingeführt wurden, hielten die Oracle-Jünger an "ihrem" Standard fest.
Zitat:

Persönlich finde ich die "alte" Schreibweise intuitiver und auch übersichtlicher. *1 Spätestens, wenn Du ein Dutzend oder mehr joins hast, ist das allerdings schwer zu begründen, also tatsächlich nur Gewohnheit.
Sehe ich anders. Explizite Joins finde ich besser lesbar, zudem die Join-Bedingungen hier strikt von den Filterbedingungen getrennt werden können.
Zitat:

Größter Knackpunkt an der alten Oracle (+) Notation ist vielleicht die fehlende Darstellungsmöglichkeit für Full Outer Joins, die man dann über ein Union in 2 Schritten darstellen müsste und natürlich die Inkompatibilität zu vielen anderen RDBMS.
Wobei es auch Versuche/Lösungen für andere DBMS gab ( z.B. FyRacle: FireBird Oracle Modus; hierbei ga es einen Dienst, der die Oracle Syntax in Standard-SQL gewandelt hat)

p80286 27. Sep 2012 16:39

AW: SQL Tutorial neue Schreibweise ?!
 
Dann frag ich mal in die Runde:
Code:
select irgendwas
from tab1,tab2,tab3
where tab1.Reference like 'Test%'
  and tab1.id=tab2.id(+)
  and tab3.myid(+)=tab2.myid
  and tab3.Name(+) like 'Rüsselm%'
wie macht man da ein vernünftiges "Neues Join" draus.

@Jobo
Zitat:

Seit Oracle9i können sie die Ansi-SQL-Standardsyntax für Outer Joins verwenden.
Und alle Beispiele nutzen dann die "alte" Oracle syntax

Gruß
K-H

mkinzler 27. Sep 2012 16:48

AW: SQL Tutorial neue Schreibweise ?!
 
SQL-Code:
select
    irgendwas
from
    tab1
        right join tab2 on tab2.id = tab1.id
             left join tab3 on tab3.myid = tab2.myid and tab3.Name like 'Rüsselm%'
where
    tab1.Reference like 'Test%';

p80286 27. Sep 2012 16:54

AW: SQL Tutorial neue Schreibweise ?!
 
@Mkinzler
Danke, ich wäre nie auf die Idee gekommen das in die/den Join zu packen.

Gruß
K-H

jobo 27. Sep 2012 16:58

AW: SQL Tutorial neue Schreibweise ?!
 
Zitat:

Zitat von p80286 (Beitrag 1184735)
Zitat:

Seit Oracle9i können sie die Ansi-SQL-Standardsyntax für Outer Joins verwenden.
Und alle Beispiele nutzen dann die "alte" Oracle syntax

Bingo, das wollte ich doch eigentlich dem TE schreiben, bin aber irgendwie ins Plaudern gekommen.
Davidlocke13 muss sich halt drauf einstellen, dass ANSI Join Futter für Oracle aus dem Netz mager ist.

@mkinzler:
Danke für die Info zu der Historie!
Und sonst: Ich habe ja "zugegeben", dass es zumindest bei mir total subjektiv ist und mich argumentativ selbst widerlegt. Außer durch Gewohnheit ist meine Vorliebe wohl nicht zu erklären.

Furtbichler 27. Sep 2012 18:11

AW: SQL Tutorial neue Schreibweise ?!
 
Na ja, die 'alte' und 'neue' Schreibweise ist ja nicht gerade Oracle-Spezifisch. Den Quark findet man auch zuhauf für MSSQL.

mkinzler 27. Sep 2012 19:11

AW: SQL Tutorial neue Schreibweise ?!
 
Die "alte" schon, die "neue" ist der Standard

jobo 28. Sep 2012 08:50

AW: SQL Tutorial neue Schreibweise ?!
 
Zitat:

Zitat von Furtbichler (Beitrag 1184747)
Na ja, die 'alte' und 'neue' Schreibweise ist ja nicht gerade Oracle-Spezifisch. Den Quark findet man auch zuhauf für MSSQL.

Bei MS ist es doch ein * statt ein + oder?
An der Stelle würde ich jedenfalls behaupten, das man es bei MS immer den Druck gibt, Oracle Funktionen auch zu können. Man will sich ja schließlich Kunden abjagen.

p80286 28. Sep 2012 10:29

AW: SQL Tutorial neue Schreibweise ?!
 
Naja bei MS weißt du eigentlich nie woran Du bist, weil die Jet-Engine auch noch mal ein eigenes Verständnis von Wildcards und Syntax/Funktionen hat aber alles natürlich voll kompatibel ist.

Ich hab mich gestern nochmal umgeschaut, ein paar Infos kann man auch vielleicht auch hier abgreifen:http://www.orafaq.com/wiki/SQL_FAQ
Heute morgen ist der Server allerdings nicht zu erreichen.

Gruß
K-H

Und hier noch etwas direkt aus der Quelle:
http://docs.oracle.com/cd/B19306_01/...queries006.htm
http://docs.oracle.com/cd/B19306_01/...2.htm#i2066611
http://docs.oracle.com/cd/B19306_01/...2.htm#i2080416


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz