Delphi-PRAXiS
Seite 2 von 2     12   

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 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:16 Uhr.
Seite 2 von 2     12   

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