SQL SELECT- und Datenauswahlabfragen. Strukturierte Abfragesprache – SQL: Geschichte, Standards, grundlegende Sprachoperatoren

Structure Query Language (SQL) entstand als Ergebnis der Entwicklung des relationalen Datenmodells und ist derzeit die De-facto-Standardsprache für relationale DBMS. Die SQL-Sprache wird heute von einer Vielzahl von DBMS unterschiedlicher Art unterstützt.

Der Name der SQL-Sprache wird üblicherweise „es-qu-el“ ausgesprochen. Manchmal wird der mnemonische Name „See-Quel“ verwendet.

Die SQL-Sprache bietet dem Benutzer (mit minimalem Aufwand seinerseits) die folgenden Möglichkeiten:

Erstellen Sie Datenbanken und Tabellen mit Gesamte Beschreibung ihre Strukturen

Führen Sie grundlegende Datenmanipulationsvorgänge durch: Einfügen, Ändern und Löschen von Daten

Führen Sie sowohl einfache als auch komplexe Abfragen aus.

Die SQL-Sprache ist relational vollständig.

Die Struktur und Syntax seiner Befehle ist recht einfach und die Sprache selbst ist universell, d. h. die Syntax und Struktur seiner Befehle ändert sich nicht, wenn man von einem DBMS zu einem anderen wechselt.

Die SQL-Sprache besteht aus zwei Hauptkomponenten:

DDL (Data Definition Language) zur Definition von Datenbankstrukturen und zur Steuerung des Zugriffs auf Daten

DML-Sprache (Data Manipulation Language) zum Abrufen und Aktualisieren von Daten.

SQL ist eine nicht-prozedurale Sprache, das heißt, wenn Sie sie verwenden, müssen Sie angeben, welche Informationen abgerufen werden sollen, und nicht, wie diese abgerufen werden können. SQL-Befehle sind nur Wörter auf Englisch(AUSWÄHLEN, EINFÜGEN usw.). Schauen wir uns zunächst die SQL-DML-Anweisungen an:

SELECT – Daten aus der Datenbank auswählen

INSERT – Daten in eine Tabelle einfügen

UPDATE – Daten in einer Tabelle aktualisieren

DELETE – Daten aus einer Tabelle löschen

SELECT-Anweisung

Der SELECT-Operator führt Aktionen aus, die den folgenden relationalen Algebra-Operationen entsprechen: Auswahl, Projektion und Verknüpfung.

Die einfachste SQL-Abfrage, die es verwendet, sieht so aus:

SELECT col_name FROM tbl

Auf das Schlüsselwort „select“ folgt eine durch Kommas getrennte Liste von Spalten, deren Daten von der Abfrage zurückgegeben werden. Das Schlüsselwort from gibt an, aus welcher Tabelle (oder Ansicht) die Daten abgerufen werden.

Das Ergebnis einer Auswahlabfrage ist immer eine Tabelle, die als Ergebnistabelle bezeichnet wird. Darüber hinaus können die Ergebnisse einer mit der Select-Anweisung ausgeführten Abfrage zum Erstellen einer neuen Tabelle verwendet werden. Wenn die Ergebnisse zweier Abfragen für verschiedene Tabellen dasselbe Format haben, können Sie sie in einer Tabelle zusammenfassen. Außerdem kann die als Ergebnis einer Abfrage erhaltene Tabelle Gegenstand weiterer Abfragen sein.

Um alle Spalten und alle Zeilen einer Tabelle auszuwählen, geben Sie einfach ein SELECT * FROM tbl;

Betrachten Sie die Produkttabelle, die Informationen zum Preis von enthält Verschiedene Arten Produkte:

Ergebnis anfordern

WÄHLEN SIE * AUS DEM Produkt;

wird die gesamte Produkttabelle sein.

Mithilfe einer Abfrage können Sie bestimmte Tabellenspalten auswählen

SELECT col1, col2, … , coln FROM tbl;

Also das Ergebnis der Anfrage

WÄHLEN Sie Typ, Preis AUS Produkt;

Es wird einen Tisch geben

Die Spaltenliste in der Select-Anweisung wird auch verwendet, wenn die Reihenfolge der Spalten in der resultierenden Tabelle geändert werden muss:

Um nur die Tabellenzeilen auszuwählen, die bestimmten Einschränkungen genügen, gibt es eine Besonderheit Stichwort wo folgt eine logische Bedingung. Wenn ein Datensatz diese Bedingung erfüllt, wird er in das Ergebnis einbezogen. Andernfalls wird die Eingabe verworfen.

Wählen Sie beispielsweise die Produkte aus der Produkttabelle aus, deren Preis die Preisbedingung erfüllt<3200, можно осуществить, используя запрос

WÄHLEN Sie * AUS Produkt, wo Preis<3200;

Sein Ergebnis:

Die Bedingung kann mit den logischen Operatoren NOT, AND, OR, XOR zusammengesetzt und kombiniert werden, zum Beispiel: wobei id_ Preis>500 UND Preis<3500. Допускается также использование выражений в условии: where Price>(1+1) und String-Konstanten: wobei name= „autoweights“.

Mit dem Konstrukt BETWEEN var1 AND var2 können Sie überprüfen, ob die Werte eines Ausdrucks in den Bereich von var1 bis var2 fallen (einschließlich dieser Werte):

WÄHLEN SIE * AUS EINEM Produkt, dessen Preis ZWISCHEN 3000 UND 3500 liegt;

Ähnlich wie beim NOT BETWEEN-Operator gibt es den NOT IN-Operator.

In der SELECT-Klausel angegebene Spaltennamen können umbenannt werden. Hierzu wird das Schlüsselwort AS verwendet, das jedoch weggelassen werden kann, da es implizit impliziert ist. Zum Beispiel Anfrage

SELECT Type AS-Modell, Type_id AS num FROM Product, wobei Type_id =3

wird zurückkommen (Aliasnamen sollten ohne Anführungszeichen geschrieben werden):

Der LIKE-Operator dient zum Vergleich einer Zeichenfolge mit einem Muster:

SELECT * FROM tbl where col_name LIKE „abc“

Diese Abfrage gibt nur die Datensätze zurück, die den Zeichenfolgenwert abc in der Spalte „col_name“ enthalten.

Das Beispiel darf zwei Platzhalterzeichen verwenden: „_“ und „%“. Der erste von ihnen ersetzt ein beliebiges Zeichen in der Vorlage und der zweite ersetzt eine Folge beliebiger Zeichen. „abc%“ entspricht also jeder Zeichenfolge, die mit abc beginnt, „abc_“ entspricht einer 4-stelligen Zeichenfolge, die mit abc beginnt, „%z“ entspricht jeder Zeichenfolge, die mit z endet, und schließlich „%z%“ – Zeichenfolgen, die Folgendes enthalten: z.

Sie können alle Datensätze der Produkttabelle, in denen der Typwert mit dem Buchstaben „a“ beginnt, wie folgt finden:

SELECT * FROM Product wobei Typ LIKE „a%“;

LKW-Waagen

Wenn die Suchzeichenfolge ein Platzhalterzeichen enthält, müssen Sie das Escape-Zeichen in der ESCAPE-Klausel angeben. Dieses Steuerzeichen muss im Muster vor dem Platzhalterzeichen verwendet werden, was angibt, dass das Platzhalterzeichen wie ein reguläres Zeichen behandelt werden soll. Wenn Sie beispielsweise nach allen Werten in einem Feld suchen würden, das das Zeichen „_“ enthält, dann würde das Muster „%_%“ dazu führen, dass alle Datensätze aus der Tabelle zurückgegeben werden. In diesem Fall sollte die Vorlage wie folgt geschrieben werden:

„%|_%“ ESCAPE „|“

Um den Wert auf Übereinstimmung mit der Zeichenfolge „20 %“ zu überprüfen, können Sie den folgenden Operator verwenden:

LIKE „20#%“ ESCAPE „#“

Mit dem IS NULL-Operator können Sie die Abwesenheit (Anwesenheit) eines NULL-Werts in den Feldern einer Tabelle überprüfen. Die Verwendung regulärer Vergleichsoperatoren kann in diesen Fällen zu falschen Ergebnissen führen, da der Vergleich mit NULL zu UNBEKANNTEN Ergebnissen führt. Die Auswahlbedingung sollte also wie folgt aussehen:

wobei col_name NULL ist, statt where col_name=NULL.

Das Standardauswahlergebnis gibt Datensätze in derselben Reihenfolge zurück, in der sie in der Datenbank gespeichert sind. Wenn Sie Datensätze nach einer der Spalten sortieren möchten, müssen Sie die ORDER BY-Klausel gefolgt vom Namen dieser Spalte verwenden:

SELECT * FROM tbl ORDER BY col_name;

Diese Abfrage gibt Datensätze in aufsteigender Reihenfolge des Attributwerts „col_name“ zurück.

Sie können Datensätze auch nach mehreren Spalten sortieren. Dazu müssen ihre Namen hinter ORDER BY durch Kommata getrennt angegeben werden:

SELECT * FROM tbl ORDER BY col_name1, col_name2.

Datensätze werden nach dem Feld col_name1 sortiert; Wenn in der Spalte „col_name1“ mehrere Datensätze mit einem übereinstimmenden Wert vorhanden sind, werden diese nach dem Feld „col_name2“ sortiert.

Wenn Sie die Datensätze in umgekehrter Reihenfolge sortieren möchten (z. B. absteigend nach Datum), müssen Sie ORDER BY col_name DESC angeben.

Für die direkte Sortierung gibt es das Schlüsselwort ASC, das als Standardwert akzeptiert wird.

Enthält das Stichprobenergebnis Hunderte oder Tausende Datensätze, nimmt deren Ausgabe und Verarbeitung viel Zeit in Anspruch.

Daher werden Informationen häufig in Seiten unterteilt und dem Benutzer portionsweise präsentiert. Die Paginierung wird mit dem Schlüsselwort limit gefolgt von der Anzahl der anzuzeigenden Einträge verwendet. Die folgende Abfrage ruft die ersten 10 Datensätze ab und sortiert gleichzeitig rückwärts im Feld col_name1:

SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10

Um die nächsten 10 Datensätze abzurufen, verwenden Sie das Schlüsselwort limit mit zwei Werten: Der erste gibt die Position an, ab der das Ergebnis gedruckt werden soll, und der zweite gibt die Anzahl der abzurufenden Datensätze an:

SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10,10

Um die nächsten 10 Datensätze abzurufen, müssen Sie das Konstrukt LIMIT 20, 10 verwenden.

Frage Nr. 1. SQL und seine Geschichte. 1

Frage Nr. 2. Beschreibung grundlegender SQL-Anweisungen. 1

Arithmetische Funktionen. 4

String-Verarbeitungsfunktionen. 5

Spezialfunktionen. 6

Funktionen zur Datumsverarbeitung... 7

Verwendung von Aggregatfunktionen in Abfragen. 7

Frage Nr. 1. SQL und seine Geschichte

Das einzige Kommunikationsmittel zwischen Datenbankadministratoren, Designern, Entwicklern und Benutzern einer relationalen Datenbank ist die strukturierte Abfragesprache SQL (Structured Query Language). SQL ist eine voll funktionsfähige Sprache zur Bearbeitung von Daten in relationalen Datenbanken. Derzeit handelt es sich um eine allgemein akzeptierte Standardschnittstelle für relationale Datenbanken wie Oracle, Informix, Sybase, DB/2, MS SQL Server und mehrere andere (ANSI- und ISO-Standards). SQL ist eine nicht-prozedurale Sprache, die für die Verarbeitung von Sätzen konzipiert ist, die aus Zeilen und Spalten relationaler Datenbanktabellen bestehen. Zwar gibt es Erweiterungen davon, die eine prozedurale Verarbeitung ermöglichen. Datenbankdesigner verwenden SQL, um alle physischen Objekte einer relationalen Datenbank zu erstellen.

Die theoretischen Grundlagen von SQL wurden in dem berühmten Artikel von Codd gelegt, der den Grundstein für die Entwicklung der Theorie relationaler Datenbanken legte. Die erste praktische Umsetzung erfolgte in den Forschungslaboren von IBM Chamberlin D.D. und Royce R.F. Der industrielle Einsatz von SQL wurde erstmals im Ingres DBMS implementiert. Eines der ersten industriellen relationalen DBMS ist Oracle. Im Wesentlichen ist ein relationales DBMS eine Software, die den Betrieb einer relationalen Datenbank verwaltet.

Der erste internationale Standard für die SQL-Sprache wurde 1989 verabschiedet (SQL-89). Ende 1992 wurde ein neuer internationaler Standard, SQL-92, verabschiedet. Derzeit verwenden die meisten relationalen DBMS-Hersteller es als Basis. Die Arbeiten zur Standardisierung der SQL-Sprache sind jedoch noch lange nicht abgeschlossen und es wurde bereits ein Entwurf des SQL-99-Standards entwickelt, der das Konzept eines Objekts in die Sprache einführt und die Referenzierung in SQL-Anweisungen ermöglicht: In der Originalversion von SQL Es gab keine Befehle zur Datenflusskontrolle, sie erschienen im kürzlich verabschiedeten ISO/IEC 9075-5: 1996 Supplementary Part SQL.

Jedes spezifische DBMS verfügt über eine eigene SQL-Implementierung, die im Allgemeinen einen bestimmten Standard unterstützt, aber ihre eigenen Merkmale aufweist. Diese Implementierungen werden Dialekte genannt. Daher stellt der 1SO/IEC 9075-5-Standard Objekte bereit, die als persistent gespeicherte Module oder PSM-Module (Persistent Stored Modules) bezeichnet werden. Im Oracle DBMS ist die PL/SQL-Erweiterung ein Analogon der oben genannten Standarderweiterung.“

Frage Nr. 2. Beschreibung grundlegender SQL-Anweisungen

SQL besteht aus einer Reihe von Befehlen zum Bearbeiten von Daten in einer relationalen Datenbank, die es Ihnen ermöglichen, relationale Datenbankobjekte zu erstellen, Daten in Tabellen zu ändern (einfügen, löschen, korrigieren), Datenbankbeziehungsschemata zu ändern, Berechnungen an Daten durchzuführen und Auswahlen aus den Tabellen zu treffen Datenbank, Wahrung der Sicherheit und Datenintegrität.

Der gesamte Satz von SQL-Befehlen lässt sich in folgende Gruppen einteilen:

· Datendefinitionsbefehle (DDL – Data Definition Language);

· Datenmanipulationsbefehle (DML – Data Manipulation Language);

· Befehle zur Datenerfassung (DQL – Data Query Language);

· Befehle zur Transaktionsverwaltung;

· Datenverwaltungsbefehle.

Bei der Ausführung durchläuft jeder SQL-Befehl vier Verarbeitungsphasen:

· die Parsing-Phase, die die Überprüfung der Befehlssyntax, die Überprüfung der Namen von Tabellen und Spalten in der Datenbank und die Vorbereitung der Eingabedaten für den Optimierer umfasst;

· Optimierungsphase, die das Ersetzen tatsächlicher Namen von Tabellen und Datenbankspalten in der Ansicht, das Identifizieren möglicher Optionen zum Ausführen eines Befehls, das Bestimmen der Kosten für das Ausführen jeder Option und das Auswählen der besten Option auf der Grundlage interner Statistiken umfasst;

· die Phase der Generierung des ausführbaren Codes, die die Erstellung des ausführbaren Befehlscodes umfasst;

· die Befehlsausführungsphase, die die Ausführung des Befehlscodes beinhaltet.

Derzeit Optimierer ist ein integraler Bestandteil jeder industriellen SQL-Implementierung. Der Optimierer sammelt Statistiken über die von ihm ausgeführten Befehle und führt entsprechende algebraische Transformationen für Datenbankbeziehungen durch. Diese Statistiken werden im Systemdatenbankverzeichnis gespeichert. Systemkatalog ist ein Datenwörterbuch für jede Datenbank und enthält Informationen über Tabellen, Ansichten, Indizes, Spalten, Benutzer und deren Zugriffsrechte. Jede Datenbank verfügt über einen eigenen Systemkatalog, der eine Sammlung vordefinierter Datenbanktabellen darstellt.

Tabelle 8.1 enthält eine Liste von SQL-Befehlen gemäß dem akzeptierten Standard, mit Ausnahme einiger Befehle, die in Dialekten praktisch nicht verwendet werden.

Tabelle 8.1. Typische Liste von SQL-Befehlen

Team Beschreibung
Befehle zum Definieren von Objektdaten
TABELLE ÄNDERN Ändert die Tabellenbeschreibung (Beziehungsschema)
VERANSTALTUNG ERSTELLEN Erstellt ein Timer-Ereignis in der Datenbank
INDEX ERSTELLEN Erstellt einen Index für die Tabelle
SEQUENZ ERSTELLEN Erstellt eine Sequenz
TABELLE ERSTELLEN Definiert eine Tabelle
TISCHFLÄCHE ERSTELLEN Erstellt einen Tablespace
TRIGGER ERSTELLEN Erstellt einen Trigger in der Datenbank
ANSICHT ERSTELLEN Definiert eine Ansicht auf Tabellen
DROP-INDEX Entfernt einen Index physisch aus der Datenbank
DROP-SEQUENZ Löscht eine Sequenz
DROP-TISCH Entfernt eine Tabelle physisch aus der Datenbank
DROP TABLESPACE Löscht einen Tablespace
TROPFENANSICHT Löscht eine Ansicht
Befehle zur Datenmanipulation
LÖSCHEN Entfernt eine oder mehrere Zeilen aus einer Datenbanktabelle
EINFÜGEN Fügt eine oder mehrere Zeilen in eine Datenbanktabelle ein
AKTUALISIEREN Aktualisiert Spaltenwerte in einer Datenbanktabelle
Befehle zum Datenabruf
WÄHLEN Führt eine Abfrage aus, um Daten aus Tabellen und Ansichten abzurufen
UNION Kombiniert die Ergebnisse von zwei oder mehr SELECT-Befehlen zu einer Auswahl
Befehle zur Transaktionssteuerung
BEGEHEN Schließt eine Transaktion ab und aktualisiert physisch den aktuellen Status der Datenbank
ROLLBACK Beendet eine Transaktion und gibt den aktuellen Status der Datenbank zum Zeitpunkt der letzten abgeschlossenen Transaktion und des letzten Prüfpunkts zurück
SPEICHERPUNKT Weist einen Prüfpunkt innerhalb einer Transaktion zu
Datenverwaltungsbefehle
DATENBANK ÄNDERN Ändert Speichergruppen oder Transaktionsprotokolle
ALTER DBAREA Ändert die Größe der Datenbankspeicherbereiche
PASSWORT ÄNDERN Ändert das Passwort für den Zugriff auf die Datenbank
STOGROUP ÄNDERN Ändert die Zusammensetzung von Lagerbereichen in einer Lagergruppe
DATENBANK PRÜFEN Überprüft die Datenbankintegrität
INDEX PRÜFEN Überprüft die Indexintegrität
ÜBERPRÜFEN SIE DIE TABELLE Überprüft die Tabellen- und Indexintegrität
DATENBANK ERSTELLEN Erstellt die Datenbank physisch
DBAREA ERSTELLEN Erstellt einen Datenbankspeicherbereich
STOGROUP ERSTELLEN Erstellt eine Speichergruppe
SYSNONYM ERSTELLEN Erstellt ein Synonym für eine Tabelle oder Ansicht
DATENBANK DEINSTALLIEREN Macht die Datenbank für Netzwerkbenutzer unzugänglich
Drop-Datenbank Löscht Datenbanken physisch
DROP DBAREA Löscht physisch einen Datenbankspeicherbereich
STOGROUP TROPFEN Löscht eine Speichergruppe
GEWÄHREN Definiert Benutzerrechte und Zugriffskontrolle auf die Datenbank
Datenbank installieren Stellt die Datenbank Netzwerkbenutzern zur Verfügung
Datenbank sperren Sperrt die aktuell aktive Datenbank
WIDERRUFEN Widerruft Benutzerrechte und Datenbankzugriffsbeschränkungen
STANDARD-STOGROUP FESTLEGEN Definiert die Standardspeichergruppe
DATENBANK ENTSPERREN Gibt die aktuell aktive Datenbank frei
STATISTIK AKTUALISIEREN Aktualisiert Statistiken für eine Datenbank
Andere Befehle
KOMMENTIEREN Platziert Kommentare zur Beschreibung von Datenbankobjekten im Systemkatalog
SYNONYM ERSTELLEN Definiert alternative Namen für Datenbanktabellen und Ansichten im Systemkatalog
SYNONYM TROPFEN Entfernt alternative Namen für Datenbanktabellen und -ansichten aus dem Systemkatalog
ETIKETT Ändert Systembeschreibungsbezeichnungen
REIHENANZAHL Berechnet die Anzahl der Zeilen in einer Datenbanktabelle

Der in der Tabelle aufgeführte Satz an SQL-Befehlen ist nicht vollständig. Diese Liste soll Ihnen eine Vorstellung davon geben, was SQL im Allgemeinen leisten kann. Eine vollständige Liste der Befehle finden Sie im entsprechenden Handbuch für Ihr spezifisches DBMS. Es sollte daran erinnert werden, dass SQL das einzige Kommunikationsmittel für alle Benutzerkategorien mit relationalen Datenbanken ist.

Arithmetische Funktionen

SQL unterstützt einen vollständigen Satz arithmetischer Operationen und mathematischer Funktionen zum Erstellen arithmetischer Ausdrücke über Datenbankspalten (+, -, *, /, ABS, LN, SQRT usw.).

Eine Liste der wichtigsten integrierten mathematischen Funktionen finden Sie unten in Tabelle 8.2.

Mathematische Funktion Beschreibung
ABS(X) Gibt den absoluten Wert einer Zahl X zurück
ACOS(X) Gibt den Arkuskosinus einer Zahl X zurück
ASIN(X) Gibt den Arkussinus einer Zahl X zurück
ATAN(X) Gibt den Arkustangens von X zurück
COS(X) Gibt den Kosinus einer Zahl X zurück
EXP(X) Gibt den Exponenten einer Zahl X zurück
ZEICHEN(X) Gibt -] zurück, wenn X< 0, 0, если X = 0, + 1, если X > 0
LN(X) Gibt den natürlichen Logarithmus einer Zahl X zurück
MOD(X,Y) Gibt den Rest zurück, wenn X durch Y geteilt wird
DECKE(X) Gibt die kleinste Ganzzahl zurück, die größer oder gleich X ist
RUNDE(X,n) Rundet die Zahl X auf eine Zahl mit n Nachkommastellen
SÜNDE(X) Gibt den Sinus von X zurück
SQRT(X) Gibt die Quadratwurzel einer Zahl X zurück
TAN(X) Gibt den Tangens von X zurück
BODEN(X) Gibt die größte Ganzzahl zurück, die kleiner oder gleich X ist
LOG(a,X) Gibt den Logarithmus einer Zahl X zur Basis A zurück
SINH(X) Gibt den hyperbolischen Sinus von X zurück
COSH(X) Gibt den hyperbolischen Kosinus einer Zahl X zurück
TANH(X) Gibt den hyperbolischen Tangens von X zurück
TRANC(X.n) Schneidet die Zahl X auf eine Zahl mit n Dezimalstellen ab
LEISTUNG(A,X) Gibt den Wert von A hoch mit X zurück

Der Satz integrierter Funktionen kann je nach Version des DBMS eines Herstellers und auch in DBMS verschiedener Hersteller variieren . Zum Beispiel im SQLBase DBMS von Century Inc. Es gibt eine Funktion @ATAN2(X,Y), die den Arkustangens von Y/X zurückgibt, aber es gibt keine Funktion SIGN(X).

Arithmetische Ausdrücke werden benötigt, um Daten zu erhalten, die nicht direkt in den Spalten von Datenbanktabellen gespeichert sind, deren Werte aber vom Benutzer benötigt werden. Nehmen wir an, Sie benötigen eine Liste der Mitarbeiter, aus der hervorgeht, welche Gehälter jeder Mitarbeiter erhalten hat, einschließlich Boni und Strafen.

Wählen Sie ENAME, SAL, COMM. FEIN, SAL + COMM – FEIN

Der arithmetische Ausdruck SAL + COMM - FINE wird als neue Spalte in der Ergebnistabelle ausgegeben, die als Ergebnis der Abfrage berechnet wird. Solche Spalten werden auch genannt abgeleitete (berechnete) Attribute oder Felder.

String-Verarbeitungsfunktionen

SQL stellt Ihnen vielfältige Funktionen zur Manipulation von String-Daten zur Verfügung (String-Verkettung, CHR, LENGTH, INSTR und andere). Eine Liste der Hauptfunktionen zur Verarbeitung von String-Daten finden Sie in Tabelle 8.3.

Tabelle 8.3. SQL-Funktionen für die String-Verarbeitung

Funktion Beschreibung
CHR(N) Gibt das ASCII-Codezeichen für den Dezimalcode N zurück
ASCII(S) Gibt den dezimalen ASCII-Code des ersten Zeichens einer Zeichenfolge zurück
INSTR(S2,SI,pos|,N|) Gibt die Position des SI-Strings im S2-String größer oder gleich pos zurück. N – Anzahl der Vorkommen
LÄNGE(N) Gibt die Länge einer Zeichenfolge zurück
UNTERE(S) Ersetzt alle Zeichen in einer Zeichenfolge durch Großbuchstaben
INITCAP(S) Setzt das erste Zeichen jedes Wortes in einer Zeichenfolge auf Großbuchstaben und die übrigen Zeichen jedes Worts auf Großbuchstaben
SUBSTR(S,pos,[,len|) Wählt einen Teilstring der Länge zehn im String S aus, beginnend an Position pos
OBERTEIL(E) Wandelt Großbuchstaben in einer Zeichenfolge in Großbuchstaben um
LPAD(S,N |,A|) Gibt die Zeichenfolge S zurück, die mit A auf maximal N Zeichen aufgefüllt ist. Das Standardfüllzeichen ist ein Leerzeichen.
RPAD(S,N |,A]) Gibt die Zeichenfolge S zurück, die rechts mit A auf maximal N Zeichen aufgefüllt ist. Das Standardfüllzeichen ist ein Leerzeichen.
LTRIM(S,|,Sll) Gibt die links abgeschnittene Zeichenfolge S zurück. Zeichen werden entfernt, solange das zu entfernende Zeichen in der Zeichenfolge enthalten ist – Muster SI (Standard ist Leerzeichen)
RTRIM(S,|,SI |) Gibt die nach rechts abgeschnittene Zeichenfolge S zurück. Zeichen werden entfernt, solange das zu entfernende Zeichen in der Zeichenfolge enthalten ist – Muster S1 (Standard ist Leerzeichen).
ÜBERSETZT,(SI,S2) Gibt die Zeichenfolge S zurück, wobei alle Vorkommen der Zeichenfolge SI durch die Zeichenfolge S2 ersetzt werden. Wenn S.I.<>S2, dann werden nicht übereinstimmende Zeichen aus der resultierenden Zeichenfolge ausgeschlossen
ERSETZT(SI,|,S2|) Gibt die Zeichenfolge S zurück, für die alle Vorkommen der Teilzeichenfolge SI durch die Teilzeichenfolge S2 ersetzt werden. Wenn S2 nicht angegeben ist, werden alle Vorkommen der Teilzeichenfolge SI aus der resultierenden Zeichenfolge S entfernt
NVL(X,Y) Wenn X NULL ist, gibt Y abhängig vom ursprünglichen Typ von Y entweder eine Zeichenfolge, eine Zahl oder ein Datum zurück

Die Namen derselben Funktionen können in verschiedenen DBMS unterschiedlich sein. Beispielsweise heißt die Oracle-DBMS-Funktion SUBSTR(S, pos, |, len|) im SQLBase-DBMS @SUBSTRING(S, pos, Ien). Das SQLBase-DBMS verfügt über Funktionen, die im Oracle-DBMS nicht verfügbar sind (eine Liste dieser Funktionen finden Sie in der folgenden Tabelle).

Tabelle 8.4. SQLBase-DBMS-Zeichenfolgenfunktionen, die sich von den Oracle-DBMS-Zeichenfolgenfunktionen unterscheiden

Funktion Beschreibung
@EXACT(SI,S2) Gibt das Ergebnis des Vergleichs zweier Zeichenfolgen zurück
@LEFT(S,lcn) Gibt den linken Teilstring der Länge len zurück
@LÄNGE(S) Gibt die Länge einer Zeichenfolge zurück
@MID(S, pos, len) Gibt einen Teilstring der angegebenen Länge zurück, beginnend an Position pos
@REPEAT(S,n) Wiederholt die Zeichenfolge S n-mal
@REPLACE(SI,pos,len,S2) Ersetzen Sie die Positionen pos len Zeichen in der Zeichenfolge S2 durch Zeichen in der Zeichenfolge SI
@RIGHT(S,len) Gibt den rechten Teilstring von S mit der Länge len zurück
@SCAN(S,pat) Gibt die Position des Teilstrings pat im String S zurück
@STRING(X, Skala) Gibt eine symbolische Darstellung einer Zahl mit der angegebenen Skala zurück
@TRIM(S) Entfernt Leerzeichen rechts und links von einer Zeichenfolge
@WERTE) Konvertiert die symbolische Darstellung einer Zahl in einen numerischen Wert

Mit der Funktion INITCAP können Sie sicherstellen, dass beim Abrufen einer Liste von Mitarbeiternamen die Nachnamen immer mit einem Großbuchstaben beginnen und alle anderen Namen großgeschrieben werden.

INITCAP(ENAME) AUSWÄHLEN

Besondere Merkmale

SQL bietet eine Reihe spezieller Funktionen zum Transformieren von Spaltenwerten. Eine Liste solcher Funktionen finden Sie in Tabelle 8.5.

Tabelle 8.5. Besondere Merkmale

In der Tabelle EMPLOYEE können Sie für jeden Mitarbeiter ein Geschlechtsattribut eingeben – fügen Sie eine Spalte SEX vom Typ CHAR(l) (0 – männlich, 1 – weiblich) hinzu. Nehmen wir an, Sie benötigen eine Liste der Mitarbeiter, die nach Geschlecht unterteilt und in einem numerischen Format angegeben werden muss; Dann können Sie den folgenden Befehl ausgeben:

ENAME, LNAME, ALTER AUSWÄHLEN, " Boden:", TO_NUMBER(SEX)

Als Beispiel für die Verwendung der DECODE-Funktion stellen wir eine Abfrage vor, die eine Liste von Mitarbeitern unter Angabe ihres Vorgesetzten berechnet. Wenn der Manager unbekannt ist, wird standardmäßig „nicht vorhanden“ angezeigt.

SELECT ENAME, DEC0DE(DEPN0, 10, " Dryagin", 20,"Zhilyaeva". 30,"

Korotkow", "hat nicht")

Nehmen wir an, dass der Leiter der Organisation einen undefinierten Wert für die Spalte DEPNO hat und daher der in DECODE bereitgestellte Standardwert für ihn funktioniert .


©2015-2019 Website
Alle Rechte liegen bei ihren Autoren. Diese Seite erhebt keinen Anspruch auf Urheberschaft, stellt die Nutzung jedoch kostenfrei zur Verfügung.
Erstellungsdatum der Seite: 07.08.2016

Die strukturierte Abfragesprache SQL basiert auf der relationalen Berechnung mit variablen Tupeln. Die SQL-Sprache ist für die Ausführung von Operationen an Tabellen (Erstellen, Löschen, Ändern der Struktur) und für Tabellendaten (Auswählen, Ändern, Hinzufügen und Löschen) sowie für einige damit verbundene Operationen konzipiert. SQL ist eine nicht-prozedurale Sprache und enthält keine Steueranweisungen zum Organisieren von Routinen, Eingaben, Ausgaben usw.


Teilen Sie Ihre Arbeit in sozialen Netzwerken

Wenn Ihnen dieses Werk nicht zusagt, finden Sie unten auf der Seite eine Liste ähnlicher Werke. Sie können auch die Suchschaltfläche verwenden


Strukturierte Abfragesprache SQL: Geschichte, Standards,

Grundlegende Sprachoperatoren.

Die strukturierte Abfragesprache SQL basiert auf der relationalen Berechnung mit variablen Tupeln. Die Sprache hat mehrere Standards. Die SQL-Sprache dient dazu, Operationen an Tabellen (Erstellen, Löschen, Ändern der Struktur) und an Tabellendaten (Auswählen, Ändern, Hinzufügen und Löschen) sowie einige damit verbundene Operationen auszuführen. SQL ist eine nicht-prozedurale Sprache und enthält keine Steueranweisungen, Unterprogrammorganisation, Eingabe-Ausgabe usw. In dieser Hinsicht wird SQL nicht autonom verwendet; es ist normalerweise in die Umgebung der integrierten DBMS-Programmiersprache eingebettet (z. B. FoxPro DBMS Visual FoxPro, ObjectPAL DBMS Paradox, Visual Basic for Applications DBMS Access).

In modernen DBMS mit interaktiver Schnittstelle können Sie Abfragen mit anderen Tools wie QBE erstellen. Durch den Einsatz von SQL kann jedoch häufig die Effizienz der Datenverarbeitung in der Datenbank verbessert werden. Wenn Sie beispielsweise eine Abfrage in der Access-Umgebung vorbereiten, können Sie vom Query Builder-Fenster (Formulieren einer Beispielabfrage in der QBE-Sprache) zu einem Fenster mit der entsprechenden SQL-Anweisung wechseln. In manchen Fällen ist das Vorbereiten einer neuen Abfrage durch Bearbeiten einer vorhandenen Abfrage einfacher, indem die SQL-Anweisung geändert wird. Die Zusammensetzung von SQL-Anweisungen kann in verschiedenen DBMS leicht unterschiedlich sein. Die SQL-Sprache verfügt nicht über die Funktionen einer vollwertigen Entwicklungssprache, sondern konzentriert sich auf den Datenzugriff und ist daher in Programmentwicklungstools enthalten. In diesem Fall spricht man von eingebettetem SQL. Der SQL-Sprachstandard wird von modernen Implementierungen der folgenden Programmiersprachen unterstützt: PL/1, Ada, C, COBOL, Fortran, MUMPS und Pascal.

In spezialisierten Anwendungsentwicklungssystemen vom Client-Server-Typ wird die Programmierumgebung in der Regel zusätzlich durch Kommunikationstools (Auf- und Abbau von Verbindungen zu Datenbankservern, Erkennen und Behandeln von im Netzwerk auftretenden Fehlern usw.) und Tools für die Entwicklung ergänzt Benutzeroberflächen, Design-Tools und Debugging Es gibt zwei Hauptmethoden zur Verwendung von eingebettetem SQL: statisch und dynamisch. Beim statischen Einsatz einer Sprache (statisches SQL) enthält der Programmtext Aufrufe von SQL-Sprachfunktionen, die nach der Kompilierung fest in das ausführbare Modul eingebunden werden.

Änderungen an aufgerufenen Funktionen können mithilfe von Programmiersprachenvariablen auf der Ebene einzelner Aufrufparameter erfolgen. Bei der dynamischen Verwendung der Sprache (dynamisches SQL) wird davon ausgegangen, dass Aufrufe von SQL-Funktionen dynamisch aufgebaut werden und die Interpretation dieser Aufrufe, beispielsweise beim Zugriff auf Daten aus einer entfernten Datenbank, während der Programmausführung erfolgt. Die dynamische Methode wird üblicherweise dann verwendet, wenn die Anwendung die Art des SQL-Aufrufs nicht im Voraus kennt und diese im Dialog mit dem Benutzer erstellt wird. Der Hauptzweck der SQL-Sprache (wie auch anderer Sprachen für die Arbeit mit Datenbanken) besteht darin, Abfragen vorzubereiten und auszuführen. Das Abrufen von Daten aus einer oder mehreren Tabellen kann zu einer Reihe von Datensätzen führen, die als Ansicht bezeichnet werden. Eine Ansicht ist im Wesentlichen eine Tabelle, die als Ergebnis einer Abfrage generiert wird. Wir können sagen, dass es sich um eine Art gespeicherte Abfrage handelt. Sie können mehrere Ansichten mit denselben Tabellen erstellen. Die Ansicht selbst wird durch Angabe der Ansichtskennung und der Anforderung beschrieben, die zum Abrufen gestellt werden muss.

Um die Arbeit mit Ansichten zu vereinfachen, wurde das Konzept eines Cursors in die SQL-Sprache eingeführt. Ein Cursor ist eine Art Zeiger, mit dem Sie sich während der Verarbeitung durch Datensätze bewegen können. Die Beschreibung und Verwendung eines Cursors in SQL lautet wie folgt. Im beschreibenden Teil des Programms wird eine Variable vom Typ Cursor (CURSOR) mit einer SQL-Anweisung (normalerweise einer SELECT-Anweisung) verknüpft. Im ausführenden Teil des Programms wird der Cursor geöffnet (OPEN<имя курсора>), den Cursor durch Datensätze bewegen (FETCH<имя курсора>...), gefolgt von der entsprechenden Verarbeitung und schließlich dem Schließen des Cursors (CLOSE<имя курсора>).

Grundlegende Sprachoperatoren

Beschreiben wir eine minimale Teilmenge der SQL-Sprache, basierend auf ihrer Implementierung in der Standard-ODBC-Schnittstelle (Open Database Connectivity) von Microsoft. SQL-Sprachoperatoren können in zwei Untersprachen unterteilt werden: Data Definition Language (DDL) und Data Manipulation Language (DML). Die wichtigsten SQL-Sprachoperatoren sind in der Tabelle aufgeführt.

Betrachten wir das Format und die Grundfunktionen der wichtigsten Operatoren, mit Ausnahme bestimmter Operatoren, die in der Tabelle mit dem Symbol „*“ gekennzeichnet sind. Wir werden unwichtige Operanden und Syntaxelemente weglassen (z. B. die in vielen Programmiersystemen übernommene Regel, „;“ am Ende des Operators zu setzen).

1. Betreiber eine Tabelle erstellenhat das Format:

TABELLE ERSTELLEN<имя таблицы>

(<имя столбца> <тип данных>

[,<имя столбца> <тип данных> ]...)

Die erforderlichen Operanden des Operators sind der Name der zu erstellenden Tabelle und der Name mindestens einer Spalte (Feld), der den Typ der in dieser Spalte gespeicherten Daten angibt.

Beim Erstellen einer Tabelle können für einzelne Felder einige zusätzliche Regeln zur Steuerung der darin eingegebenen Werte festgelegt werden. Das NOT NULL-Konstrukt dient genau diesem Zweck und bedeutet für eine Tabellenspalte, dass in dieser Spalte ein Wert definiert werden muss.

SQL-Anweisungen

Sicht

Name

Zweck

TABELLE ERSTELLEN

DROP-TISCH

TABELLE ÄNDERN

INDEX ERSTELLEN

DROP-INDEX

ANSICHT ERSTELLEN

TROPFENANSICHT

GRAND*

WIDERRUFEN*

eine Tabelle erstellen

eine Tabelle löschen

Tischstruktur ändern

Indexerstellung

Löschen eines Indexes

eine Ansicht erstellen

eine Ansicht löschen

Vergabe von Privilegien

Entfernung von Privilegien

WÄHLEN

UPDAT

EINFÜGEN

LÖSCHEN

Beispielaufzeichnungen

Datensätze ändern

Einfügen neuer Datensätze

Einträge löschen

Im Allgemeinen können verschiedene DBMS unterschiedliche Datentypen verwenden. Die ODBC-Schnittstelle unterstützt ihre eigenen Standarddatentypen, zum Beispiel Zeichendatentypen (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR) usw. Bei der Arbeit mit der Datenbank eines bestimmten DBMS über die ODBC-Schnittstelle werden die von der Schnittstelle unterstützten Standarddatentypen automatisch konvertiert in Quelldatentypen und umgekehrt. Bei Bedarf kann der Datenaustausch zwischen Programm und Datenquelle ohne Konvertierung in das interne Datenformat der Quelle erfolgen.

Beispiel 1 . Eine Tabelle erstellen.

Angenommen, Sie möchten eine Warentabelle erstellen, die Waren beschreibt und die folgenden Felder enthält: Typ des Produkts, comp_id-Kennung des Herstellerunternehmens, Name des Produkts und Preis des Produkts. Die Tabellendefinitionsanweisung könnte so aussehen:

CREATE TABLE-Waren (Typ SQL_CHAR(8) NOT NULL,

comp_id SQL_CHAR(10) NICHT NULL, Name SQL_VARCHAR(20),

Preis SQL_DECIMAL(8,2)).

2. Betreiber Tabellenstrukturänderungenhat das Format:

TABELLE ÄNDERN<имя таблицы>

((HINZUFÜGEN, ÄNDERN, ENTFERNEN)<имя столбца> [<тип данных>]

[,(HINZUFÜGEN, ÄNDERN, ENTFERNEN)<имя столбца> [<тип данных>]]...)

Das Ändern der Struktur einer Tabelle kann aus dem Hinzufügen (ADD), Ändern (MODIFY) oder Entfernen (DROP) einer oder mehrerer Tabellenspalten bestehen. Die Regeln zum Schreiben der ALTER TABLE-Anweisung sind dieselben wie für die CREATE TABLE-Anweisung. Geben Sie beim Löschen einer Spalte an<тип данных>nicht nötig.

3. Betreiber eine Tabelle löschenhat das Format:

DROP-TISCH<имя таблицы>

Mit dem Operator können Sie eine vorhandene Tabelle löschen. Um beispielsweise eine Tabelle mit dem Namen „items“ zu löschen, reicht es aus, eine Anweisung wie „DROP TABLE items“ zu schreiben.

4. Betreiber einen Index erstellenhat das Format:

INDEX ERSTELLEN< имя индекса >

AN< имя таблицы >

(<имя столбца>[ASC | BESCHREIBUNG]

[,<имя столбца>[ASC | BESCHREIBUNG...)

Mit dem Operator können Sie einen Index für eine oder mehrere Spalten einer bestimmten Tabelle erstellen, um die Ausführung von Abfrage- und Suchvorgängen für die Tabelle zu beschleunigen. Sie können mehrere Indizes für eine einzelne Tabelle erstellen. Durch Angabe der optionalen Option UNIQUE können Sie sicherstellen, dass die Werte in allen in der Anweisung angegebenen Spalten eindeutig sind. Im Wesentlichen bedeutet das Erstellen eines Index mithilfe des UNIQUE-Attributs, einen Schlüssel in einer zuvor erstellten Tabelle zu definieren. Wenn Sie einen Index erstellen, können Sie festlegen, dass die Werte in den Spalten automatisch in aufsteigender Reihenfolge ASC (Standard) oder absteigender Reihenfolge DESC sortiert werden. Sie können für verschiedene Spalten unterschiedliche Sortierreihenfolgen festlegen.

5. Betreiber Löschen eines Indexeshat das Format:

DROP-INDEX<имя индекса>

Mit diesem Operator können Sie einen zuvor erstellten Index mit dem entsprechenden Namen löschen. Um beispielsweise den Index main_indx für die Tabelle emp zu zerstören, reicht es aus, die Anweisung DROP INDEX main_indx zu schreiben.

6. Betreiber eine Ansicht erstellenhat das Format:

ANSICHT ERSTELLEN<имя представления>

[(<имя столбца> [,<имя столбца> ]...)]

ALS<оператор SELECT>

Mit diesem Operator können Sie eine Ansicht erstellen. Wenn in der Ansicht keine Spaltennamen angegeben sind, werden die Spaltennamen aus der durch die entsprechende SELECT-Anweisung beschriebenen Abfrage verwendet.

7. Betreiber löschen Die Darstellung hat folgendes Format:

TROPFENANSICHT<имя представления>

Mit dem Operator können Sie eine zuvor erstellte Ansicht löschen. Beachten Sie, dass beim Löschen einer Ansicht die an der Abfrage beteiligten Tabellen nicht gelöscht werden. Das Entfernen einer Gerg-Darstellung erfolgt mit einem Operator der Form: DROP VIEW repr.

8. Datensatzauswahloperator hat das Format:

WÄHLEN

< список данных >

AUS<список таблиц>

... ]

...]

Dies ist die wichtigste Anweisung aller SQL-Anweisungen. Seine Funktionalität ist enorm. Schauen wir uns die wichtigsten an. Mit der SELECT-Anweisung können Sie Daten aus einer oder mehreren Tabellen auswählen und Berechnungen durchführen. Das Ergebnis der Anweisung ist eine Antworttabelle, die (DISTINCT) doppelte Zeilen enthalten kann oder nicht. Standardmäßig werden alle Zeilen, einschließlich doppelter Zeilen, in die Antworttabelle aufgenommen. Die Datenauswahl umfasst Datensätze aus einer oder mehreren Tabellen, die in der Liste des FROM-Operanden aufgeführt sind. Die Datenliste kann die Namen der an der Abfrage beteiligten Spalten sowie Ausdrücke über die Spalten enthalten. Im einfachsten Fall können Ausdrücke Spaltennamen, Rechenzeichen (+, , *, /), Konstanten und Klammern enthalten. Wenn ein Ausdruck in die Datenliste geschrieben wird, werden zusammen mit der Datenauswahl Berechnungen durchgeführt, deren Ergebnisse in eine neue (erstellte) Spalte der Antworttabelle fallen. Bei der Verwendung von Spaltennamen mehrerer Tabellen in Datenlisten wird eine Konstruktion der Form verwendet, um anzugeben, dass eine Spalte zu einer bestimmten Tabelle gehört:<имя таблицы>.<имя столбца>.

Der Operand WHERE gibt die Bedingungen an, die von den Datensätzen in der resultierenden Tabelle erfüllt werden müssen. Ausdruck<условие выборки>ist boolesch. Seine Elemente können Spaltennamen, Vergleichsoperationen, arithmetische Operationen, logische Verknüpfungen (AND, OR, NOT), Klammern, Sonderfunktionen LIKE, NULL, IN usw. sein. Mit dem Operanden GROUP BY können Sie Gruppen im resultierenden Satz von Datensätzen auswählen.

9. Betreiber Änderungen aufzeichnenhat das Format:

AKTUALISIEREN<имя таблицы>

SATZ<имя столбца> = {<выражение>, NULL )

[, SATZ<имя столбца> = {<выражение>, NULL)...]

Die Ausführung einer UPDATE-Anweisung besteht darin, die Werte in den durch den SET-Operanden angegebenen Tabellenspalten für diejenigen Datensätze zu ändern, die die durch den WHERE-Operanden angegebene Bedingung erfüllen. Neue Feldwerte in Datensätzen können leer (NULL) sein oder anhand eines arithmetischen Ausdrucks berechnet werden. Die Regeln zum Schreiben arithmetischer und logischer Ausdrücke ähneln den entsprechenden Regeln für die SELECT-Anweisung.

10. Betreiber Einfügen neuer Datensätzehat zwei Arten von Formaten:

EINFÜGEN IN<имя таблицы>

[(<список столбцов>)]

WERTE (<список значений>)

EINFÜGEN IN<имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

Im ersten Format wird die INSERT-Anweisung verwendet, um neue Datensätze mit angegebenen Werten in die Spalten einzugeben. Die Reihenfolge der Auflistung der Spaltennamen muss mit der Reihenfolge der in der Liste des Operanden VALUES aufgeführten Werte übereinstimmen. Wenn<список столбцов>weggelassen, dann rein<списке значений>Alle Werte müssen in der Reihenfolge der Tabellenstrukturspalten aufgelistet werden.Im zweiten Format soll die INSERT-Anweisung eingegeben werdeneine bestimmte Tabelle mit neuen Zeilen, die aus einer anderen Tabelle mit ausgewählt wurdenmit der SELECT-Klausel.

SEITE 1

Andere ähnliche Werke, die Sie interessieren könnten.vshm>

16. Lernen Sie die Grundlagen der strukturierten Abfragesprache T-SQL 34,15 KB
Um dieses Ziel zu erreichen, müssen folgende Aufgaben gelöst werden: Erstellen von Abfragen zur Auswahl aus mehreren Tabellen in SQL-Sprache unter Verwendung bestimmter Auswahlkriterien; Erstellen Sie eine Auswahlabfrage in SQL, die statische Aggregatfunktionen enthält. Erstellen Sie mit dem UNION-Befehl eine Abfrage, die die Ergebnisse von zwei oder mehr Abfragen zu einem Ergebnissatz kombiniert. Als Ergebnis der Arbeit sollten die Studierenden Folgendes kennen: Kategorien von SQL-Befehlen; grundlegende SQL-Befehle zum Erstellen einer Abfrage; Prinzipien der Erstellung von SQL-Abfragen...
6030. SPRACHE ALS ENTWICKLUNGSPHÄNOMEN. EXTERNE UND INTERNE FAKTOREN DER SPRACHENTWICKLUNG 17,38 KB
Das Problem des Ursprungs der Sprache beinhaltet zwei Fragen. Die erste Frage bezieht sich auf das Problem des Ursprungs der Sprache im Allgemeinen, wie sich die menschliche Sprache entwickelte, wie ein Mensch das Sprechen lernte, die zweite mit dem Ursprung jeder einzelnen Sprache. Es sind keine Beweise für diese Zeit erhalten, daher müssen Linguisten bei der Untersuchung des Ursprungs der Sprache im Allgemeinen nicht nur mit sprachlichen Fakten, sondern auch mit Daten aus verwandten Wissenschaften operieren. Das Interesse am Problem des Ursprungs der Sprache ist schon vor langer Zeit entstanden.
10870. Interdisziplinäre Verbindungen des Studiengangs „Berufsrussische Sprache“. Transformation und Differenzierung der professionellen russischen Sprache 10,57 KB
Transformation und Differenzierung der professionellen russischen Sprache 1. Transformation und Differenzierung der professionellen russischen Sprache. Syntaktische Normen werden durch die Struktur der Sprache bestimmt und unterliegen wie andere orthoepische, lexikalische und morphologische Normen im Laufe der Sprachentwicklung Veränderungen. Bei der Beherrschung der Syntax einer Nicht-Muttersprache treten eine Reihe von Schwierigkeiten auf, wenn es um die Wahl von Kontrollformen und die Koordinierung des Satzbaus, die Verwendung von Partizipien, die Wahl der richtigen Präposition usw. geht.
6929. Geschichte der Delphi-Sprache 13,01 KB
Delphi ist die griechische Stadt, in der das Delphische Orakel lebte. Delphi ist eine Kombination mehrerer wichtiger Technologien: Hochleistungs-Compiler für Maschinencode, objektorientiertes Modell von Komponenten, visuelle und daher schnelle Erstellung von Anwendungen aus Software-Prototypen, skalierbare Tools zum Erstellen von Datenbanken, Compiler für Maschinencode. Der in Delphi integrierte Compiler bietet die hohe Leistung notwendig für Bauanwendungen in der Architektur ...
10869. Die Begriffe „Berufssprache“, „Fachsprache“, ihre Differenzierung. Professionelle russische Sprache: Herkunft, Funktionen, Funktionsumfang (unter Berücksichtigung der Besonderheiten des Fachgebiets) 9,5 KB
Differenzierung der Sprache. Jedes Wirtschaftsfach hat neben der gemeinsamen Sprache aller Wirtschaftswissenschaftler auch seine eigene Spezial- und Fachsprache. Fachleute kommunizieren in diesen Fachsprachen mündlich und schriftlich; diese Fachsprachen werden den Studierenden beigebracht; solche Fachsprachen beschreiben Systeme von Wissen und Fähigkeiten in wissenschaftlicher pädagogischer Referenz und anderer Literatur. Im Wirtschaftssprachensystem gibt es Probleme, die allen Fachsprachen gemeinsam sind.
1335. Grundlegende Wortbildungsmodelle im modernen amerikanischen Englisch 117,01 KB
Die Hauptunterschiede zwischen amerikanischem und britischem Englisch. Das Problem der Bestimmung des Weltstatus des amerikanischen Englisch. Amerikanisches Englisch in der modernen Welt. Lexikalische Merkmale des amerikanischen Englisch.
1936. GESCHICHTE, STRUKTUR UND GRUNDKONZEPTE DER ÖKOLOGIE 495,77 KB
Der Begriff „Ökologie“ setzt sich aus den griechischen Wurzeln „oikos“ – Heimat, die unmittelbare Umgebung eines Menschen und „logos“ – Wissenschaft zusammen. Daher ist Ökologie im wahrsten Sinne des Wortes die Wissenschaft von Organismen, einschließlich des Menschen, die innerhalb der Grenzen ihres Zuhauses beobachtet werden, wobei besonderes Augenmerk auf die Art der Beziehungen zwischen Organismen und ihrer Umwelt gelegt wird.
17746. Pädagogik der visuellen Kreativität: Geschichte und wichtigste Entwicklungstrends 25,96 KB
Die Aufgabe des Tests besteht darin, das Konzept der künstlerischen Kreativität von Kindern zu berücksichtigen, die Forschung herausragender Lehrer und Psychologen sowie die Entstehungsgeschichte der künstlerischen Kreativität von Kindern zu ermitteln. Ein Ausdruck künstlerischen Schaffens können einzelne Werke sein – unabhängig oder unter Anleitung eines Erwachsenen, Zeichnungen, Modellieren, gesprochene und geschriebene Kunst, Melodien, Dramatisierungen, Tanz sowie Chorgesang, Theateraufführungen, Kunsthandwerk, Schnitzen, Puppentheater, Zeichen- und Spielfilme und...
6285. Kontrollanweisungen 103,51 KB
Schleifenoperatoren Schleifenoperatoren werden zum Organisieren wiederholter Berechnungen verwendet. Um eine Schleife zu organisieren, benötigen Sie eine Variable, die als Schleifenparameter oder Schleifensteuerungsvariable bezeichnet wird. Jeder Zyklus besteht aus: Anfangseinstellungen oder einem Zyklusparameter-Initialisierungsblock; Schleifenkörper, also jene Anweisungen, die mehrmals ausgeführt werden; Zyklusparameter-Änderungsblock; Überprüfung der Bedingung zum Verlassen der Schleife, die entweder vor dem Schleifenkörper platziert werden kann, dann spricht man von einer Schleife mit einer Vorbedingung oder nach dem Schleifenkörper...
2784. Bedingungs- und Auswahlanweisungen 16 KB
Bedingungsoperator If. Daher können Sie bereits die folgenden Zuweisungsoperatoren schreiben: Koren:=Sqrtxy; Modul:=bsxy. Um solche bedingten Sprünge in der Pascal-Sprache zu implementieren, werden die Operatoren If und Else sowie der bedingungslose Sprungoperator Goto verwendet. Schauen wir uns die If-Anweisung an.

Die SQL SELECT-Anweisung ist für Abfragen zur Auswahl von Daten aus einer Datenbank gedacht. Es kann entweder ohne Bedingungen (Auswahl aller Zeilen in allen Spalten oder aller Zeilen in bestimmten Spalten) oder mit mehreren Bedingungen (Auswahl bestimmter Zeilen) verwendet werden, die in der WHERE-Klausel angegeben werden. Machen wir uns mit SQL-Tools vertraut, mit denen Sie diese Bedingungen für die Datenauswahl festlegen können, und lernen Sie auch, wie Sie die SELECT-Anweisung in Unterabfragen verwenden.

SELECT, um Tabellenspalten auszuwählen

Eine Abfrage mit einer SELECT-Anweisung zur Auswahl aller Spalten einer Tabelle hat die folgende Syntax:

SELECT * AUS TABLE_NAME

Das heißt, um alle Spalten einer Tabelle auszuwählen, müssen Sie nach dem Wort SELECT ein Sternchen einfügen.

Beispiel 1. Es gibt eine Firmendatenbank - Firma. Es enthält eine Tabelle Org (Unternehmensstruktur) und Staff (Mitarbeiter). Sie müssen alle Spalten aus Tabellen auswählen. Die entsprechende Abfrage zum Auswählen aller Spalten aus der Org-Tabelle lautet wie folgt:

* AUS ORG AUSWÄHLEN

Diese Abfrage gibt Folgendes zurück (um das Bild zu vergrößern, klicken Sie mit der linken Maustaste darauf):

Die Abfrage zur Auswahl aller Spalten aus der Staff-Tabelle sieht folgendermaßen aus:

WÄHLEN SIE * VOM MITARBEITER AUS

Diese Abfrage gibt Folgendes zurück:


Um bestimmte Tabellenspalten auszuwählen, müssen wir anstelle eines Sternchens die Namen aller Spalten, die ausgewählt werden müssen, durch Kommas getrennt auflisten:

WÄHLEN SIE SELECTABLE_COLUMNS AUS TABLE_NAME

Beispiel 2. Angenommen, Sie möchten die Spalten Depnumb und Deptname aus der Org-Tabelle auswählen, die Daten zu den Nummern der Abteilungen des Unternehmens bzw. deren Namen enthalten. Die Abfrage zum Erhalten einer solchen Probe würde wie folgt lauten:

WÄHLEN SIE DEPNUMB, DEPTNAME VON ORG

Und aus der Personaltabelle müssen Sie die Spalten DEPT, NAME, JOB auswählen, die jeweils Daten über die Nummer der Abteilung, in der der Mitarbeiter arbeitet, seinen Namen und seine Position enthalten:

SELECT und ORDER BY – Sortieren (Ordnen) von Zeilen

Die bisher besprochenen SQL-SELECT-Abfragen gaben Zeilen zurück, die in beliebiger Reihenfolge vorliegen konnten. Allerdings müssen Sie Zeilen häufig nach numerischer Reihenfolge, Alphabet und anderen Kriterien sortieren. Dies geschieht mit dem Schlüsselwort ORDER BY. Solche Anfragen haben die folgende Syntax:

Beispiel 15. Die Anforderung besteht darin, aus der Personaltabelle Mitarbeiter auszuwählen, die in der Abteilung Nr. 84 arbeiten, und die Datensätze nach der Anzahl der geleisteten Arbeitsjahre in aufsteigender Reihenfolge zu sortieren (zu ordnen):

Das Wort ASC gibt an, dass die Sortierreihenfolge aufsteigend ist. Dieses Wort ist optional, da die aufsteigende Sortierreihenfolge die Standardeinstellung ist. Ergebnis der Anfrage:


Beispiel 16. Die Anforderung besteht darin, die gleichen Daten wie im vorherigen Beispiel auszuwählen, die Datensätze jedoch nach der Anzahl der geleisteten Arbeitsjahre in absteigender Reihenfolge zu sortieren (anzuordnen).

Die Syntax der SELECT-Anweisung lautet wie folgt:

WÄHLEN<список атрибутов>/* AUS<список таблиц>

Eckige Klammern weisen auf Elemente hin, die in der Anfrage möglicherweise nicht vorhanden sind.

Listen Sie alle Schüler auf.

WÄHLEN Sie * VON Studenten aus

SELECT id_st, Nachname FROM Student

Beachten Sie, dass die Liste nach Nachnamen sortiert wird, wenn Sie dieser Abfrage die Klausel ORDER BY Nachname hinzufügen. Standardmäßig wird davon ausgegangen, dass die Sortierung in aufsteigender Reihenfolge erfolgt. Wenn eine absteigende Reihenfolge gewünscht ist, wird das Wort DESC nach dem Attributnamen hinzugefügt.

Zeigen Sie eine Liste der Noten an, die ein Schüler mit dem Code „1“ erhalten hat..

Geben Sie eine Liste mit Codes für Studierende an, die in den Prüfungen mindestens ein D oder C erhalten haben.

In der WHERE-Klausel können Sie einen Ausdruck schreiben mit Rechenzeichen Vergleiche (<, >usw.) und logische Operatoren (UND, ODER, NICHT) wie in herkömmlichen Programmiersprachen.

Neben Vergleichsoperatoren und logischen Operatoren zum Erstellen von Bedingungen in der SQL-Sprache gibt es (aufgrund des spezifischen Anwendungsbereichs) eine Reihe spezieller Operatoren, die in der Regel keine Entsprechungen in anderen Sprachen haben. Dies sind die Operatoren:

  • IN – Eintritt in eine bestimmte Wertemenge;
  • ZWISCHEN – Eintritt in einen bestimmten Wertebereich;
  • LIKE – Mustervergleichstest;
  • IS NULL – auf einen undefinierten Wert prüfen.

Mit dem IN-Operator wird überprüft, ob ein Wert in einer Menge enthalten ist. Ja, Anfrage

liefert das gleiche Ergebnis wie die obige Abfrage (es werden die Kennungen aller Bewerber angezeigt, die in den Prüfungen mindestens ein D oder C erhalten haben).

Das gleiche Ergebnis kann mit dem BETWEEN-Operator erzielt werden:

Listen Sie alle Schüler auf, deren Nachnamen mit dem Buchstaben A beginnen.

In diesem Fall ist es praktisch, den LIKE-Operator zu verwenden.

Der LIKE-Operator gilt ausschließlich für Zeichenfelder und ermöglicht es Ihnen zu bestimmen, ob der Wert eines Feldes mit einem Muster übereinstimmt. Das Muster kann Sonderzeichen enthalten:

_ (Unterstrich) – ersetzt jedes einzelne Zeichen;

% (Prozentzeichen) – ersetzt eine Folge beliebig vieler Zeichen.

Sehr oft besteht die Notwendigkeit, die Minimal-, Maximal- oder Durchschnittswerte in Spalten zu berechnen. Beispielsweise müssen Sie möglicherweise Ihren Notendurchschnitt berechnen. Um solche Berechnungen durchzuführen, bietet SQL spezielle Funktionen Aggregatfunktionen:

  • MIN – Minimalwert in der Spalte;
  • MAX – Maximalwert in der Spalte;
  • SUM – die Summe der Werte in der Spalte;
  • AVG – Durchschnittswert in der Spalte;
  • COUNT – die Anzahl der Nicht-NULL-Werte in der Spalte.

Die folgende Abfrage berechnet den Durchschnitt aller von Studenten in Prüfungen erzielten Ergebnisse.

SELECT AVG(mark) FROM mark_st

Natürlich können Sie verwenden Aggregatfunktionen zusammen mit der WHERE-Klausel:

Diese Abfrage berechnet die durchschnittliche Punktzahl eines Studenten mit einem Code von 100 basierend auf den Ergebnissen aller von ihm abgelegten Prüfungen.

Diese Abfrage berechnet die durchschnittliche Punktzahl der Schüler basierend auf den Ergebnissen der bestandenen Prüfung mit Code 10. Zusätzlich zu den besprochenen Mechanismen