Die Subtraktion in SQL (Die Subtraktion in SQL), Lektion, Seite 722939
https://www.purl.org/stefan_ram/pub/subtraktion_sql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Die Subtraktion in SQL

Vorbereitung

Zum Nachvollziehen der folgenden Beispiele kann das folgende Skript in einen MySQL-Klienten kopiert werden. Der Inhalt dieses Skripts kann aber ansonsten ignoriert werden. Dieses Skript muß zum jetzigen Zeipunkt also nicht verstanden werden. Bei Kopieren ist darauf zu achten nur genau den Text von »DROP« bis zum letzten »;« zu kopieren und dann die Eingabetaste zu drücken.

Skript (MySQL )

WARNINGS; SET sql_mode = 'ANSI,TRADITIONAL';
SET div_precision_increment = 4;
DROP SCHEMA IF EXISTS D; CREATE SCHEMA D; USE D;

CREATE TABLE UMSATZ( JAHR INTEGER, OST INTEGER, WEST INTEGER );
INSERT INTO UMSATZ( JAHR, OST, WEST )VALUES( 2025, 1424, 4228 );
INSERT INTO UMSATZ( JAHR, OST, WEST )VALUES( 2026, 733, 2891 );
INSERT INTO UMSATZ( JAHR, OST, WEST )VALUES( 2027, 126, 561 );
INSERT INTO UMSATZ( JAHR, OST, WEST )VALUES( 2028, 78, 121 );

CREATE TABLE ZEICHEN ( ZEICHEN INTEGER AUTO_INCREMENT, NAME VARCHAR( 32 ), PRIMARY KEY( ZEICHEN ));
INSERT INTO ZEICHEN ( ZEICHEN, NAME ) VALUES ( 1, 'Alpha' );
INSERT INTO ZEICHEN ( ZEICHEN, NAME ) VALUES ( 2, 'Gamma' );
INSERT INTO ZEICHEN ( ZEICHEN, NAME ) VALUES ( 3, 'Delta' );

CREATE TABLE ONE ( COL INTEGER );
INSERT INTO ONE ( COL ) VALUES ( 1 );

SELECT * FROM UMSATZ;
SELECT * FROM ZEICHEN;
SELECT * FROM ONE;

»-« – Die Subtraktion in SQL 

Subtraktion mit Spaltenwerten

SELECT JAHR, OST, WEST, WEST - OST FROM UMSATZ;

+------+------+------+-------------+
| JAHR | OST | WEST | WEST - OST |
+------+------+------+-------------+
| 2025 | 1424 | 4228 | 2804 |
| 2026 | 733 | 2891 | 2158 |
| 2027 | 126 | 561 | 435 |
| 2028 | 78 | 121 | 43 |
+------+------+------+-------------+

Subtraktion mit Literalwerten

SELECT 2 - 2;

+-------+
| 2 - 2 |
+-------+
| 0 |
+-------+

SELECT 2 - 2;

+-------+
| 2 - 2 |
+-------+
| 0 |
+-------+

SELECT 3 - 2;

+-------+
| 3 - 2 |
+-------+
| 1 |
+-------+

SELECT 2 - 3;

+-------+
| 2 - 3 |
+-------+
| -1 |
+-------+

SELECT 2.0 - 1.999999999999999999999999999999999999999999999999999999999999999999999;

+-------------------------------------------------------------------------------+
| 2.0 - 1.999999999999999999999999999999999999999999999999999999999999999999999 |
+-------------------------------------------------------------------------------+
| 0.000000000000000000000000000000000000000000000000000000000000000000001 |
+-------------------------------------------------------------------------------+

SELECT 2.0 - 1.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999;

+-------------------------------------------------------------------------------------------------+
| 2.0 - 1.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 |
+-------------------------------------------------------------------------------------------------+
| 0.000000000000000000000000000000000000000000000000000000000000000000000001 |
+-------------------------------------------------------------------------------------------------+

SELECT 0.1 + 0.1 + 0.1 - 0.1;

+-----------------------+
| 0.1 + 0.1 + 0.1 - 0.1 |
+-----------------------+
| 0.2 |
+-----------------------+

SELECT 0.1e0 + 0.1e0 + 0.1e0 - 0.1e0;

+-------------------------------+
| 0.1e0 + 0.1e0 + 0.1e0 - 0.1e0 |
+-------------------------------+
| 0.20000000000000004 |
+-------------------------------+

SELECT 100000000000000000000000000000000000. + 1. - 100000000000000000000000000000000000.;

+------------------------------------------------------------------------------------+
| 100000000000000000000000000000000000. + 1. - 100000000000000000000000000000000000. |
+------------------------------------------------------------------------------------+
| 1 |
+------------------------------------------------------------------------------------+

SELECT 100000000000000000000000000000000000.e0 + 1. - 100000000000000000000000000000000000.e0 ;
+----------------------------------------------------------------------------------------+
| 100000000000000000000000000000000000.e0 + 1. - 100000000000000000000000000000000000.e0 |
+----------------------------------------------------------------------------------------+
| 0 |
+----------------------------------------------------------------------------------------+

SELECT 100000000000000000000000000000000000000000000000000000000000000000000000000000. + 1. - 100000000000000000000000000000000000000000000000000000000000000000000000000000.;

+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 100000000000000000000000000000000000000000000000000000000000000000000000000000. + 1. - 100000000000000000000000000000000000000000000000000000000000000000000000000000. |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Subtraktion mit Spaltenwerten und Literalwerten

SELECT Zeichen, Name FROM Zeichen;

+---------+-------+
| Zeichen | Name |
+---------+-------+
| 1 | Alpha |
| 2 | Gamma |
| 3 | Delta |
+---------+-------+

SELECT Zeichen - 1, Name FROM Zeichen;

+-------------+-------+
| Zeichen - 1 | Name |
+-------------+-------+
| 0 | Alpha |
| 1 | Gamma |
| 2 | Delta |
+-------------+-------+

Assoziativität

Die Subtraktion ist linksassoziativ.

Priorität

Die Priorität des Subtraktionsoperators ist genauso hoch wie die des Additionsoperators.

In der folgenden Liste von Operatoren stehen Operatoren höherer  Priorität weiter oben.

Prioritäten von Operatoren
»-«, »+« (Vorzeichen)
»/«, »DIV«
»-«, »+« (binäre Operatoren)

/   Mindestbestand

Schreiben Sie eine Abfrage, welche die Differenz zwischen Bestand und Mindestbestand so ausgibt, daß sich ein negativer Wert ergibt, wenn der Bestand den Mindestbestand unterschreitet.

CREATE TABLE ARTIKEL ( BEZEICHNUNG VARCHAR ( 255 ), BESTAND INTEGER, MINDESTBESTAND INTEGER );
INSERT INTO ARTIKEL ( BEZEICHNUNG, BESTAND, MINDESTBESTAND ) VALUES ( 'Schraube', 81, 72 );
INSERT INTO ARTIKEL ( BEZEICHNUNG, BESTAND, MINDESTBESTAND ) VALUES ( 'Unterlegscheibe', 84, 60 );
INSERT INTO ARTIKEL ( BEZEICHNUNG, BESTAND, MINDESTBESTAND ) VALUES ( 'Tisch', 77, 84 );
INSERT INTO ARTIKEL ( BEZEICHNUNG, BESTAND, MINDESTBESTAND ) VALUES ( 'Lineal', 33, 41 );
INSERT INTO ARTIKEL ( BEZEICHNUNG, BESTAND, MINDESTBESTAND ) VALUES ( 'Feder', 34, 54 );
SELECT * FROM ARTIKEL;
+-----------------+---------+----------------+
| BEZEICHNUNG | BESTAND | MINDESTBESTAND |
+-----------------+---------+----------------+
| Schraube | 81 | 72 |
| Unterlegscheibe | 84 | 60 |
| Tisch | 77 | 84 |
| Lineal | 33 | 41 |
| Feder | 34 | 54 |
+-----------------+---------+----------------+

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722939 stefan_ram:722939 Die Subtraktion in SQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722939, slrprddef722939, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/subtraktion_sql