Die SQL SELECT-Anweisung

Abrufen von Daten mit der SQL Select-Anweisung

SQL ist eine umfassende Datenbanksprache. SQL, ausgesprochen Sequel oder einfach SQL, ist eine Computerprogrammiersprache, die zum Abfragen relationaler Datenbanken nach einem nicht prozeduralen Ansatz verwendet wird. Wenn Sie mit SQL Informationen aus einer Datenbank extrahieren, wird dies als Abfragen der Datenbank bezeichnet.

Eine relationale Datenbank wird mithilfe eines relationalen Datenbankverwaltungssystems (RDBMS) implementiert. Ein RDBMS führt alle Grundfunktionen der oben genannten DBMS-Software zusammen mit einer Vielzahl anderer Funktionen aus, die das Verständnis und die Implementierung des relationalen Modells erleichtern. RDBMS-Benutzer bearbeiten Daten mithilfe einer speziellen Datenbearbeitungssprache. Datenbankstrukturen werden mithilfe einer Datendefinitionssprache definiert. Die Befehle, die Systembenutzer ausführen, um Daten zu speichern und abzurufen, können an einem Terminal mit einer RDBMS-Schnittstelle durch Eingabe der Befehle oder über eine grafische Schnittstelle eingegeben werden. Das DBMS verarbeitet dann die Befehle.

Funktionen der SELECT-Anweisung

Das Abrufen von Daten aus der Datenbank erfolgt durch angemessene und effiziente Verwendung von SQL. Drei Konzepte aus der relationalen Theorie umfassen die Fähigkeit der SELECT-Anweisung: Projektion, Auswahl und Verknüpfung.

  • Projektion: Eine Projektoperation wählt nur bestimmte Spalten (Felder) aus einer Tabelle aus. Die Ergebnistabelle enthält eine Teilmenge der verfügbaren Spalten und kann von einer einzelnen Spalte bis zu allen verfügbaren Spalten alles enthalten.

  • Auswahl: Eine Auswahloperation wählt eine Teilmenge von Zeilen (Datensätzen) in einer Tabelle (Beziehung) aus, die eine Auswahlbedingung erfüllen. Die Möglichkeit, Zeilen aus einer vollständigen Ergebnismenge auszuwählen, wird als Auswahl bezeichnet. Es beinhaltet bedingte Filterung und Datenbereitstellung. Die Teilmenge kann von keinen Zeilen bis zu allen Zeilen in einer Tabelle reichen, wenn keine der Zeilen die Auswahlbedingung erfüllt.

  • Verknüpfung: Eine Verknüpfungsoperation kombiniert Daten aus zwei oder mehr Tabellen basierend auf einem oder mehreren allgemeinen Spaltenwerten. Eine Verknüpfungsoperation ermöglicht es einem Benutzer des Informationssystems, die zwischen Tabellen bestehenden Beziehungen zu verarbeiten. Die Verknüpfungsoperation ist sehr leistungsfähig, da Systembenutzer Beziehungen zwischen Datenelementen untersuchen können, die zum Zeitpunkt des Entwurfs einer Datenbank möglicherweise nicht zu erwarten sind.

Betrachten Sie die obigen Tabellenstrukturen. Das Abrufen von Vorname, Abteilungs-ID und Gehalt für einen einzelnen Mitarbeiter aus der Tabelle EMPLOYEES lautet Projektion. Das Abrufen von Mitarbeiterdaten, deren Gehalt weniger als 5000 beträgt, aus der Tabelle MITARBEITER ist Auswahl. Das Abrufen des Vornamens des Mitarbeiters und des Abteilungsnamens durch Beitritt zu MITARBEITERN und ABTEILUNGEN ist Beitritt.

Grundlegende SELECT-Anweisung

Die grundlegende Syntax für eine SELECT-Anweisung wird unten dargestellt.

SELECT  [DISTINCT | ALL] {* | select_list}
FROM {table_name [alias] | view_name} 
    [{table_name [alias]  | view_name}]...  
[WHERE  condition]
[GROUP BY  condition_list]
[HAVING  condition]
[ORDER BY  {column_name | column_#  [ ASC | DESC ] } ...

Die SELECT-Klausel ist obligatorisch und führt die relationale Projektoperation aus.

Die FROM-Klausel ist ebenfalls obligatorisch. Es identifiziert eine oder mehrere Tabellen und / oder Ansichten, aus denen die in einer Ergebnistabelle angezeigten Spaltendaten abgerufen werden sollen.

Die WHERE-Klausel ist optional und führt die relationale Auswahloperation aus. Es gibt an, welche Zeilen ausgewählt werden sollen.

Die GROUP BY-Klausel ist optional. Es organisiert Daten in Gruppen nach einem oder mehreren Spaltennamen, die in der SELECT-Klausel aufgeführt sind.

Die optionale HAVING-Klausel legt Bedingungen fest, welche Gruppen in eine Ergebnistabelle aufgenommen werden sollen. Die Gruppen werden durch die GROUP BY-Klausel angegeben.

Die ORDER BY-Klausel ist optional. Die Abfrageergebnisse werden nach einer oder mehreren Spalten in aufsteigender oder absteigender Reihenfolge sortiert.

Arithmetische Ausdrücke und NULL-Werte in der SELECT-Anweisung

Ein arithmetischer Ausdruck kann mithilfe der Spaltennamen, Operatoren und konstanten Werte erstellt werden, um einen Ausdruck in eine SELECT-Anweisung einzubetten. Der für eine Spalte geltende Operator hängt vom Datentyp der Spalte ab. Beispielsweise passen arithmetische Operatoren nicht für Zeichenliteralwerte. Zum Beispiel,

SELECT employee_id, sal * 12 ANNUAL_SAL
FROM employees;

Die obige Abfrage enthält den arithmetischen Ausdruck (sal * 12) zur Berechnung des Jahresgehalts jedes Mitarbeiters.

Rechenzeichen

Operatoren wirken auf die Spalten (sogenannte Operanden), um ein anderes Ergebnis zu erzielen. Bei mehreren Operatoren in einem Ausdruck wird die Reihenfolge der Auswertung durch die Priorität des Operators festgelegt. Hier sind die elementaren Vorrangregeln -

  • Multiplikation und Division erfolgen vor Addition und Subtraktion.

  • Operatoren mit derselben Priorität werden von links nach rechts ausgewertet.

  • Verwenden Sie Parethesen, um das Standardverhalten der Operatoren zu überschreiben.

Die folgende Tabelle zeigt die Priorität der Operatoren in solchen Fällen. Bediener-Symbol für Vorrangstufe

Description   Operator	Precedence	   
Addition	+	Lowest	   
Subtraction	-	Lowest	   
Multiplication	*	Medium	   
Division	/	Medium	   
Brackets	( )	Highest

Untersuchen Sie die folgenden Fragen (a), (b) und (c).

  • SQL> SELECT 2*35 FROM DUAL;
  • SQL> SELECT salary + 1500 FROM employees;
  • SQL> SELECT first_name, salary, salary + (commission_pct* salary) FROM employees;

Abfrage (a) multipliziert zwei Zahlen, während (b) die Addition von 1500 USD zu den Gehältern aller Mitarbeiter anzeigt. Abfrage (c) zeigt die Hinzufügung einer Provisionskomponente zum Gehalt des Mitarbeiters. Gemäß der Rangfolge wird die erste Provision auf das Gehalt berechnet und dann zum Gehalt addiert.

Spaltenalias

Ein Alias ​​wird verwendet, um eine Spalte oder einen Ausdruck während der Anzeige umzubenennen. Der Alias ​​für eine Spalte oder einen Ausdruck wird als Überschrift in der Ausgabe einer Abfrage angezeigt. Es ist nützlich, um eine sinnvolle Überschrift für lange Ausdrücke in der SELECT-Abfrage bereitzustellen. Standardmäßig wird der Alias ​​in der Abfrageausgabe ohne Leerzeichen in Großbuchstaben angezeigt. Um dieses Verhalten zu überschreiben, muss der Alias ​​in doppelte Anführungszeichen gesetzt werden, um die Groß- und Kleinschreibung und die Leerzeichen im Aliasnamen beizubehalten.

SELECT price * 2 as DOUBLE_PRICE, price * 10 "Double Price"
FROM products;

DOUBLE_PRICE	Double Price
------------	------------
39.9			39.9
60			60
51.98			51.98

Verkettungsoperatoren

Der Verkettungsoperator kann verwendet werden, um zwei Zeichenfolgenwerte oder Ausdrücke in einer SELECT-Abfrage zu verknüpfen. Das doppelte vertikale Balkensymbol wird als Zeichenfolgenverkettungsoperator verwendet. Sie gilt nur für Zeichen- und Zeichenfolgenspaltenwerte, die zu einem neuen Zeichenausdruck führen. Beispiel

SQL> SELECT 'ORACLE'||' CERTIFICATION' FROM dual;

Die obige Abfrage zeigt die Verkettung von zwei Zeichenliteralwerten.

Literale

Jeder fest codierte Wert, der in der SELECT-Klausel nicht in der Datenbank gespeichert ist, ist als Literal bekannt. Dies kann ein Zahlen-, Zeichen- oder Datumswert sein. Zeichen- und Datumswerte müssen in Anführungszeichen gesetzt werden. Betrachten Sie die folgenden SQL-Abfragen. Beispiele für die Verwendung von Literalen verschiedener Datentypen in SQL-Abfragen.

In der folgenden Abfrage werden zwei Zeichenliterale verwendet, um sie miteinander zu verbinden.

SQL> SELECT 'ORACLE'||' CERTIFICATION' FROM DUAL

In der folgenden Abfrage werden Zeichenliterale verwendet, um das Gehalt des Mitarbeiters hübsch auszudrucken.

SQL> SELECT first_name ||'earns'|| salary||' as of '|||sysdate
FROM employees

Zitat Operator

Der Anführungszeichenoperator wird verwendet, um das eigene Anführungszeichen anzugeben. Sie können ein geeignetes Trennzeichen auswählen, das von den Daten abhängt.

SELECT 	department_name|| ' Department' ||q'['s Manager Id: ]'|| manager_id
FROM departments;

NULL

Wenn eine Spalte keinen bestimmten Wert hat, wird sie als NULL betrachtet. NULL-Wert bedeutet unbekannt oder nicht verfügbar. Es ist nicht Null für numerische Werte, kein Leerzeichen für Zeichenwerte.

Spalten mit dem Wert NULL können in einer SELECT-Abfrage ausgewählt werden und Teil eines arithmetischen Ausdrucks sein. Jeder arithmetische Ausdruck, der NULL-Werte verwendet, führt zu NULL. Aus diesem Grund müssen Spalten mit dem Wert NULL anders behandelt werden, indem ihre alternativen Werte mithilfe von von Oracle bereitgestellten Funktionen wie NVL oder NULLIF angegeben werden.

SQL> SELECT NULL + 1000 NUM 
FROM DUAL;

NUM
--------

DISTINCT-Schlüsselwort

Wenn erwartet wird, dass die Daten doppelte Ergebnisse enthalten, verwenden Sie das Schlüsselwort DISTINCT, um doppelte Ergebnisse zu entfernen und nur die eindeutigen Ergebnisse in der Abfrageausgabe anzuzeigen. Nur die ausgewählten Spalten werden auf Duplizierung überprüft und die Zeilen werden logisch aus der Abfrageausgabe entfernt. Zu beachten ist, dass das Schlüsselwort DISTINCT direkt nach der SELECT-Klausel stehen muss.

Die folgende einfache Abfrage zeigt die Verwendung von DISTINCT zum Anzeigen eindeutiger Abteilungs-IDs aus der Tabelle EMPLOYEES.

SQL> SELECT DISTINCT DEPARTMENT_ID 
FROM employees;

DEPARTMENT_ID
---------------
10
20
30
40

Befehl DESCRIBE

Die strukturellen Metadaten einer Tabelle können durch Abfragen der Datenbank nach der Liste der Spalten, aus denen sie besteht, mit dem Befehl DESCRIBE abgerufen werden. Es werden die verwendeten Spaltennamen, ihre Null-Eigenschaft und ihr Datentyp aufgelistet.

Syntax:

DESC[RIBE] [SCHEMA].object name

Zum Beispiel,

DESC EMPLOYEE

zeigt die EMPLOYEE-Tabellenstruktur an, dh Spalten, deren Datentypen, Genauigkeit und nullfähige Eigenschaft.