Fallstricke Kapitel 2 und 6 (u.A. Datumsfunktionen und Typen)

Veröffentlicht: von & gespeichert unter 2. DDL Statements, 6. Single-Row Functions

CONSTRAINTS Es gibt unter Oracle mehrere Namensräume, und zwar einen für Tabellen, View, Sequenzen, Private Synonyme, benutzerdefinierte Datentypen je user, eine  Namensraum für alle  Indizes je user, einem Namensraum für alle CONSTRAINTS je user und einen generellen Namensraum mit Usernamen, Rollen und öffentlichen Synonymen. CONSTRAINT ohne Namen bekommen  einen solchem vom System verpasst: SYS_scn; Ein…

Besonderheiten Kapitel 16

Veröffentlicht: von & gespeichert unter 16. Hierarchical Retrieval

Hier geht es um hierarchische Abfragen mit CONNECT BY, werden auch als rekursive Abfragen bezeichnet. Rekursive Abfragen beziehen sich immer nur auf eine Tabelle und sind damit eine Art von SELFJOIN. Es steht schon einiges im Datenbank-Wiki : CONNECT-BY. Jede rekursive Abfrage mit CONNECT BY muss mindestens ein PRIOR enthalten. Neue Funktion: SYS_CONNECT_BY_PATH kann genutzt…

Besonderheiten Kapitel 15

Veröffentlicht: von & gespeichert unter 15. Large Data Sets

Multitable INSERT Neben den bekannten Möglichkeiten, per SUBQUERY in einem CREATE TABLE-Befehl, einem INSERT , UPDATE oder DELETE große Datenmengen in einem Befehl zu ändern, gibt es noch den MULTITABLE INSERT (Oracle spezifisch) und den MERGE-Befehl (SQL-Standard). Mit dem Multi Tabler INSERT können verschiedene Tabellen gleichzeitig mit dem Ergebnis einer Unterabfrage unter einer WHEN-Bedingung gefüllt…

Fallstricke Kapitel 14

Veröffentlicht: von & gespeichert unter 14. Data Dictionary

Die V$Views können nur für einfache Abfragen genutzt werden, Oracle garantiert keine Lesekonsistenz bei komplexen Abfragen, z.B. über Joins. Man kann Kommentare  zu Tabellen oder Spalten einer Tabelle schreiben. Die View Dictionary ist der Einstiegspunkt in das Data Dictionary. USER_CATALOG enthält Infos über Tabellen, Views, Synonyme und Sequences, USER_OBJECTS zusätzlich über alle anderen Objekte mit…

Fallstricke Kapitel 12

Veröffentlicht: von & gespeichert unter 12. Set Operators

Zu den Mengenoperatoren UNION, UNION ALL , INTERSECT und MINUS findet sich einiges im Datenbank-Wiki. z.B. in UNION , UNION ALL und Vereinigungskonform. UNION ALL eliminiert keine doppelten Einträge und ist daher schneller als UNION. Alle Mengenoperatoren  UNION, UNION ALL , INTERSECT und MINUS haben die gleiche Priorität und werden daher nacheinander abgearbeitet. Ein SELECT…

Fallstricke Kapitel 5

Veröffentlicht: von & gespeichert unter 5. Restricting and Sorting

Hier habe ich wenig gefunden, stimmt ziemlich genau mit der DBS1-Vorlesung überein. Prioritätsreihenfolge Boolescher, logischer Operatoren: siehe Logischer Operator ORDER BY Name oder Spaltennummer (position) Verwendung IS NULL oder IS NOT NULL Sortierung von alphanumerischen Spalten: Alphabetisch… Sortierung von Datumsfeldern: in der Zeitachse

Besonderheiten bei Unterabfragen

Veröffentlicht: von & gespeichert unter 9. Subqueries

siehe auch: Unterabfrage in Unterabfrage, skalare Unterabfrage und last not least korrelierte Unterabfrage. Korrelierte Unterabfragen können nicht ohne äußere SELECT-Abfrage ausgeführt werden. Skalare Unterabfragen geben genau eine Zeile und einen Spalte zurück und können nicht in einem GROUP-BY-Ausdruck benutzt werden. Unterabfragen können auch zum Kopieren von Daten in einem CREATE TABLE verwendet werden, daneben auch…

Besonderheiten bei Aggregatfunktionen

Veröffentlicht: von & gespeichert unter 7. Group Functions

COUNT(Spalte) zählt die von NULL verschiedenen Werte in einer Spalte, COUNT(*) auch die Zeilen, die komplett NULL sind. Alle Gruppenfunktionen ignorieren NULL-Werte im Gegensatz zu den Operatoren +, – * und  /: 9 + NULL= NULL Aggregatfunktionen (Synonym: Gruppenfunktionen) können mit Single-Rowfunktionen geschachtelt werden. SELECT TRUNC(AVG(gehalt)) FROM angestellte, Tiefe der Schachtelung ist beliebig Zwei Gruppenfunktionen…

Besonderheiten beim einfachen SELECT

Veröffentlicht: von & gespeichert unter 4. Retrieving Data

Oracle hat die Pseudocolumns ROWNUM und ROWID, die immer vorhanden sind und auch abgefragt werden können. Anstelle von DISTINCT kann auch UNIQUE in einer Abfrage genutzt werden, also z.B. SELECT UNIQUE Nachname FROM angestellte; DISTINCT und können allerdings in einer SELECT-Abfrage nur einmal verwendet werden: SELECT DISTINCT Nachname, DISTINCT vorname  from angestellte; ist nicht zulässig. Die…