So speichern und laden Sie eine RDS-Datei in R
Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.
Als Programmierer oder Datenanalyst arbeiten Sie oft mit großen Datenmengen. Eines der leistungsfähigsten Tools, die Ihnen zur Verfügung stehen, ist SQL (Structured Query Language).
Dieser SQL-Spickzettel stellt Ihnen die gängigsten SQL-Objekte und -Befehle vor, darunter Datentypen, DML- und DDL-Anweisungen, Aggregatfunktionen, Zeichenfolgen- und Datumsfunktionen sowie Unterabfragen.
Es ist als schnelle und praktische Referenz konzipiert, auf die Sie jederzeit zugreifen können, wenn Sie mit einer relationalen Datenbank interagieren.
Wenn Sie wie wir den Spickzettel herunterladen und ausdrucken oder auf Ihrem Computer speichern möchten, können Sie ihn unten herunterladen.
Inhaltsverzeichnis
SQL-Datentypen
Die Datentypen für bestimmte Datenbankverwaltungssysteme (DBMS) können variieren (z. B. Microsoft SQL Server vs. MySQL ). Es gibt jedoch mehrere, die auf den meisten Systemen zu finden sind. Sie können diese in drei Kategorien einteilen:
Numerisch
Datum (und Uhrzeit
Zeichenfolge
1. Numerische Typen
Dies sind die häufigsten numerischen Typen:
INTEGER : Eine ganze Zahl ohne Dezimalpunkt.
SMALLINT : Ein kleinerer Bereich ganzer Zahlen
BIGINT : Ein größerer Bereich ganzer Zahlen.
DECIMAL(p, s) oder NUMERIC(p, s) : Beispielsweise würde eine Dezimalzahl(5,2) zu 123,45 passen.
REAL : Eine Gleitkommazahl mit einer Genauigkeit von mindestens 6 Dezimalstellen.
FLOAT(n) : Eine Gleitkommazahl mit einer Genauigkeit von mindestens n Stellen.
2. Datums- und Uhrzeittypen
DATUM : Ein Datumswert, normalerweise im Format „JJJJ-MM-TT“.
ZEIT : Ein Zeitwert, normalerweise im Format „HH:MM:SS“.
DATETIME oder TIMESTAMP : Eine Kombination aus Datums- und Uhrzeitwerten.
3. String-Typen
CHAR(n) : Eine Zeichenfolge fester Länge mit n Zeichen.
VARCHAR(n) oder CHARACTER VARYING(n) : Eine Zeichenfolge variabler Länge.
TEXT : Eine Zeichenfolge variabler Länge mit einer vom DBMS festgelegten maximalen Länge.
SELECT-Anweisung
Die SELECT-Anweisung wird verwendet, um Daten aus einer oder mehreren Tabellen abzurufen. Sie können angeben, welche Spalten Sie abrufen möchten und aus welcher Tabelle. Eine einfache SELECT-Anweisung sieht folgendermaßen aus:
SELECT column1, column2
FROM table;
Um alle Datensätze aus den Spalten „Name“ und „Landes-ID“ aus der Tabelle „Stadt“ abzurufen, sieht Ihre SQL-Abfrage folgendermaßen aus:
SELECT name, country_id
FROM city;
WHERE-Klausel
Mit der WHERE-Klausel können Sie die Ergebnisse einer SELECT-Anweisung basierend auf bestimmten Bedingungen filtern.
SELECT column1, column2
FROM table
WHERE condition;
Um Datensätze aus der Tabelle „Stadt“ abzurufen, bei denen die „Bevölkerung“ mehr als 1.000.000 beträgt, sieht Ihre Abfrage folgendermaßen aus:
SELECT name, population
FROM city
WHERE population > 1000000;
ORDER BY-Klausel
Mit der ORDER BY-Klausel können Sie die Ergebnisse einer SELECT-Anweisung nach einer oder mehreren Spalten sortieren. Sie können die Ergebnisse in aufsteigender (ASC) oder absteigender (DESC) Reihenfolge sortieren:
SELECT column1, column2
FROM table
ORDER BY column1 ASC, column2 DESC;
Um beispielsweise Datensätze aus der Tabelle „Stadt“ abzurufen, sortiert nach „Bevölkerung“ in absteigender Reihenfolge, sieht Ihre Abfrage folgendermaßen aus:
SELECT name, population
FROM city
ORDER BY population DESC;
Mehrere Tabellen in SQL verbinden
Es gibt vier häufig verwendete Joins in SQL:
INNER JOIN
LINKS BEITRETEN
RICHTIG BEITRETEN
Vollständiger Beitritt
1. INNER JOIN
Ein INNER JOIN ruft Datensätze ab, die in beiden Tabellen übereinstimmende Werte haben.
Nehmen wir als Beispiel eine Datenbank mit Künstlern und Alben. Sie möchten alle Künstler- und Albumkombinationen finden. Dies ist der INNER JOIN:
SELECT *
FROM artists AS a
INNER JOIN albums AS b
ON a.artist_id = b.artist_id;
Bei einem INNER JOIN werden in den Ergebnissen nur die Zeilen mit übereinstimmenden Werten in den angegebenen Feldern zurückgegeben.
2. LINKS BEITRETEN
Ein LEFT JOIN wird auch als LEFT OUTER JOIN bezeichnet. Es gibt alle Datensätze aus der linken Tabelle und die übereinstimmenden Datensätze aus der rechten Tabelle zurück. Wenn in der rechten Tabelle keine Übereinstimmung vorhanden ist, enthält das Ergebnis NULL-Werte.
Um beispielsweise eine Liste aller Künstler und ihrer jeweiligen Alben (falls vorhanden) zu erhalten, können Sie einen LEFT JOIN verwenden:
SELECT *
FROM artists AS a
LEFT JOIN albums AS b
ON a.artist_id = b.artist_id;
Diese Abfrage gibt alle Künstler zurück, auch wenn ihnen in der Albumtabelle keine Alben zugeordnet sind.
3. RECHTS BEITRETEN
Ein RIGHT JOIN wird auch als RIGHT OUTER JOIN bezeichnet. Es werden alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurückgegeben. Wenn in der linken Tabelle keine Übereinstimmung vorhanden ist, enthält das Ergebnis NULL-Werte.
Um beispielsweise Informationen über alle Alben und die zugehörigen Künstler (falls vorhanden) zu erhalten, würden Sie einen RIGHT JOIN verwenden:
SELECT *
FROM artists AS a
RIGHT JOIN albums AS b
ON a.artist_id = b.artist_id;
Diese Abfrage gibt alle Alben zurück, auch wenn in der Künstlertabelle keine zugehörigen Künstler vorhanden sind.
4. Vollständiger Beitritt
Ein FULL JOIN wird auch als FULL OUTER JOIN bezeichnet. Es kombiniert die Ergebnisse der Links- und Rechts-Joins. Mit anderen Worten: Es werden alle Zeilen der linken und rechten Tabelle zurückgegeben und die fehlenden Werte mit NULL-Werten aufgefüllt, wenn keine Übereinstimmung vorliegt.
Hier ist ein Beispiel mit den Tabellen „Künstler“ und „Alben“:
SELECT *
FROM artists AS a
FULL JOIN albums AS b
ON a.artist_id = b.artist_id;
Diese Abfrage gibt alle Zeilen aus beiden Tabellen zurück und füllt NULL-Werte aus, wenn es in keiner der Tabellen eine Übereinstimmung gibt.
SQL-Aggregatfunktionen
Aggregatfunktionen werden verwendet, um ein einzelnes Ergebnis aus einer Reihe von Eingabewerten zu berechnen. Sie werden „Aggregate“ genannt, weil sie mehrere Eingaben entgegennehmen und eine einzige Ausgabe zurückgeben. Die häufigsten sind:
ZÄHLEN
SUMME
Durchschnittlich
MAX
MINDEST
1. COUNT-Funktion
Mit der Funktion COUNT können Sie die Anzahl der Zeilen in einem Abfrageergebnis zählen. Mit dieser Aggregatfunktion können Sie die Gesamtzahl der Datensätze in einer Tabelle oder die Anzahl der Datensätze ermitteln, die bestimmten Kriterien entsprechen.
Hier ist ein Beispiel:
SELECT COUNT(*) FROM employees;
Diese Abfrage gibt die Gesamtzahl der Mitarbeiter in der Tabelle „Mitarbeiter“ zurück. Bedenken Sie, dass das Hinzufügen einer WHERE-Klausel Ihre Ergebnisse verfeinern kann:
SELECT COUNT(*) FROM employees WHERE department = 'HR';
2. SUM-Funktion
The SUM function calculates the total sum of a numeric column. It’s useful when you need to calculate the total value of a particular numeric field. For example, this query returns the total sum of all employee salaries:
SELECT SUM(salary) FROM employees;
3. AVG Function
The AVG function computes the average value of a numeric column. This function is helpful when you want to find the average of a particular numeric field. For instance, this query returns the average salary of all employees:
SELECT AVG(salary) FROM employees;
4. MAX Function
The MAX function finds the maximum value of a column. This is often used to find the highest value in a numeric field or the most recent date in a datetime field. For example, this query returns the highest salary:
SELECT MAX(salary) FROM employees;
5. MIN Function
Lastly, the MIN function helps you find the minimum value of a column. For example, this query returns the lowest salary:
SELECT MIN(salary) FROM employees;
Remember, you can use WHERE clauses in these queries and JOIN with multiple tables.
Common String Functions
Here are the most common string functions that are found in most SQL dialects (the exact syntax can vary):
LEN or LENGTH(string): Returns the length of a string.
UPPER(string): Converts a string to upper case.
LOWER(string): Converts a string to lower case.
SUBSTR or SUBSTRING(string, start, length): Extracts a portion from a string.
TRIM(string): Removes leading and trailing spaces from a string.
LTRIM(string): Removes leading spaces from a string.
RTRIM(string): Removes trailing spaces from a string.
Common Numeric Functions
Here are the most common numeric functions that are found in most SQL dialects (the exact syntax can vary):
ABS(number): Returns the absolute value of a number.
ROUND(number, decimal_places): Rounds a number to a certain number of decimal places.
FLOOR(number): Rounds down the number to the nearest integer.
CEIL or CEILING(number): Rounds up the number to the nearest integer.
RAND(): Returns a random float value from 0 to 1.
MOD(n, m): Returns the remainder of n divided by m.
POWER(base, exponent): Raises a number to the power of another number.
LOG(number): Returns the natural logarithm of a number.
Common Date Functions
Here are the most common date functions that are found in most SQL dialects (the exact syntax can vary):
NOW(): Returns the current date and time.
DATE(datetime): Extracts the date part of a date or datetime expression.
TIME(datetime): Extracts the time part of a date or datetime expression.
YEAR(date): Returns the year part.
MONTH(date): Returns the month part.
DAY(date): Returns the day of the month part.
HOUR(time): Returns the hour part from a time.
MINUTE(time): Returns the minute part from a time.
SECOND(time): Returns the second part from a time.
GROUP BY And HAVING
When working with SQL queries, you may want to further summarize and filter your aggregated data. The GROUP BY and HAVING clauses provide this functionality.
1. Group By Clause
The GROUP BY clause allows you to group rows that share the same values in specified columns. It is commonly used with aggregate functions. This is the syntax:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;
For example, if you want to calculate the total sales amount for each product category, this is the query:
SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category;
TIP: Combining GROUP BY and COUNT is a good way of finding duplicate values.
2. Having Clause
If you want to filter the aggregated results further, you can use the HAVING clause. The syntax is:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition;
If you want to find product categories with total sales of more than $1,000,000, you would write:
SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category
HAVING SUM(sales_amount) > 1000000;
Quick Tips
Always use the GROUP BY clause before the HAVING clause.
The SELECT statement can only contain specified column names, aggregate functions, constants, and expressions.
When using the HAVING clause, filter conditions should be applied to the aggregate functions rather than directly to the grouped columns.
By understanding and properly applying the GROUP BY and HAVING clauses, you can better organize and analyze your data using SQL.
Subqueries
A subquery is also known as an inner or nested query. This is a query embedded within another SQL statement (such as a SELECT statement) or even inside another subquery.
Subqueries allow you to retrieve data based on the output of another query. The most common operators used with subqueries are:
IN
EXISTS
ANY
ALL
1. IN Operator
The IN operator tests if a value is within a set of values generated by the inner query. The syntax for using the IN operator with a subquery is as follows:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name FROM other_table);
This returns rows from the outer query where the specified column value matches any of the values provided by the subquery.
Suppose you have an employee table and a departments table. You want to find employees who work in departments based at the head office. Here is a sample query
SELECT first_name, last_name
FROM employee
WHERE department IN (SELECT department FROM departments
WHERE location = "HQ");
For a more in-depth look, check out our article on the SQL WHERE IN syntax.
2. EXISTS Operator
The EXISTS operator checks if there is at least one row resulting from the subquery. You can use the EXISTS operator to filter rows based on the existence of related data in another table. This is the syntax:
SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name FROM other_table WHERE condition);
When the subquery returns at least one row, the EXISTS operator returns true, and the relevant rows from the outer query are included in the result.
3. ANY Operator
The ANY operator is used to compare a value to any value in a set of values provided by a subquery. It’s commonly used with comparison operators like =, <, >, <=, or >=.
This is the syntax:
SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (SELECT column_name FROM other_table WHERE condition);
This will return rows from the outer query where the specified column value meets the condition against any value from the subquery.
4. ALL Operator
The ALL operator compares a value to all values within a set of values provided by a subquery. The conditions must be true for every value in the subquery’s result. This is the syntax:
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (SELECT column_name FROM other_table WHERE condition);
This returns rows from the outer query only if the specified column value satisfies the condition against all values in the subquery’s output.
Data Manipulation (DML)
Data Manipulation Language (DML) is a sub-language within SQL for managing and updating data. The most common statements are:
INSERT
UPDATE
DELETE
1. INSERT Statement
The INSERT statement allows you to insert rows into a table. Here’s the basic syntax:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
For example, if you want to insert a new row into a ‘users’ table with columns ‘id’, ‘name’, and ’email’, you would use the following query:
INSERT INTO users (id, name, email)
VALUES (1, 'John Doe', '[email protected]');
2. UPDATE Statement
The UPDATE statement allows you to modify existing row data in a table. This is the syntax:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
For example, if you want to update the email address of a user with the id ‘1’ in the ‘users’ table, your query would look like this:
UPDATE users
SET email = '[email protected]'
WHERE id = 1;
TIP: remember to include a WHERE clause to avoid updating all rows in the table by mistake.
3. DELETE Statement
The DELETE statement allows you to remove rows from a table. Here’s the syntax:
DELETE FROM table_name
WHERE condition;
Wenn Sie beispielsweise einen Benutzer mit der ID „1“ aus der Tabelle „Benutzer“ löschen möchten, würde Ihre Abfrage wie folgt aussehen:
DELETE FROM users
WHERE id = 1;
TIPP : Fügen Sie immer eine WHERE-Klausel ein, um anzugeben, welche Zeilen gelöscht werden sollen, und um zu vermeiden, dass alle Zeilen in der Tabelle gelöscht werden.
Datenbankverwaltung mit DDL
Data Definition Language (DDL) ist die SQL-Subsprache, die zum Erstellen und Ändern von Tabellen und der Datenbank selbst verwendet wird. Die häufigsten DDL-Anweisungen sind:
ERSTELLEN
ÄNDERN
TROPFEN
1. CREATE-Anweisung
Mit der CREATE-Anweisung können Sie neue Datenbankobjekte erstellen, beispielsweise neue Tabellen, Ansichten oder Indizes. Beim Erstellen einer neuen Tabelle müssen Sie die Spalten, ihre Datentypen und etwaige Einschränkungen definieren.
Hier ist ein Beispiel für die Erstellung einer Auftragstabelle:
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
product VARCHAR(255) NOT NULL,
customer_id INT NOT NULL
);
TIPP: Wählen Sie geeignete Datentypen und Einschränkungen, um die Datenintegrität in Ihren Tabellen sicherzustellen.
Weitere Informationen finden Sie in unserem Artikel über grundlegende SQL-Tabellenoperationen .
2. ALTER-Anweisung
Mit der ALTER-Anweisung können Sie vorhandene Datenbankobjekte ändern. Zu den häufigen Verwendungszwecken gehören:
Hinzufügen, Ändern oder Löschen von Spalten.
Hinzufügen oder Entfernen von Einschränkungen zu einer vorhandenen Tabelle.
Hinzufügen von Primär- und Fremdschlüsseln.
EINE NEUE SPALTE HINZUFÜGEN
ALTER TABLE users ADD COLUMN age INTEGER;
Ändern Sie den Datentyp einer Spalte
ALTER TABLE users ALTER COLUMN age TYPE FLOAT;
Lassen Sie eine Spalte fallen
ALTER TABLE users DROP COLUMN age;
Fügen Sie eine eindeutige Einschränkung hinzu
ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE(email);
Fügen Sie einen Fremdschlüssel zwischen Tabellen hinzu
ALTER TABLE users ADD FOREIGN KEY (country_id) REFERENCES Country(country_id);
3. DROP-Anweisung
Mit der DROP-Anweisung können Sie Datenbankobjekte wie Tabellen, Ansichten oder Indizes entfernen. Seien Sie vorsichtig, da dadurch das angegebene Objekt und alle seine Daten dauerhaft gelöscht werden.
Hier ist ein Beispiel:
DROP TABLE users;
TIPP : Stellen Sie sicher, dass Sie über ordnungsgemäße Backups verfügen, bevor Sie eine DROP-Anweisung ausführen.
Wenn Sie mehr über Datenmodellierung erfahren möchten, schauen Sie sich dieses Video an:
Transaktionen
Transaktionen spielen eine entscheidende Rolle bei der Aufrechterhaltung der Datenbankintegrität , insbesondere wenn mehrere verwandte Vorgänge gleichzeitig ausgeführt werden. Bei der Abwicklung von Transaktionen gibt es drei grundlegende Vorgänge:
START
BEGEHEN
ROLLBACK
1. ANFANGEN
Die BEGIN-Anweisung bezeichnet den Beginn einer Transaktion. Durch die Ausführung dieses Befehls legen Sie einen Ausgangspunkt für Ihre SQL-Anweisungen fest.
BEGIN;
2. VERPFLICHTEN
Um Ihre Änderungen abzuschließen und in der Datenbank beizubehalten, verwenden Sie die COMMIT-Anweisung. Dadurch wird sichergestellt, dass alle Vorgänge innerhalb der Transaktion erfolgreich und dauerhaft ausgeführt werden.
COMMIT;
Hier ist ein Beispiel einer vollständigen Transaktion anhand des klassischen Beispiels der Überweisung von Geldern zwischen Konten:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
3. ROLLBACK
Bei der Arbeit mit Transaktionen ist es außerdem wichtig zu wissen, wie man Änderungen rückgängig macht, wenn ein Fehler auftritt. Die ROLLBACK-Anweisung macht alle seit dem Start der Transaktion vorgenommenen Änderungen rückgängig:
ROLLBACK;
Hier ist ein Beispiel für eine Transaktion mit Fehlerbehandlung mittels ROLLBACK:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
IF @@ERROR <> 0
ROLLBACK;
ELSE
COMMIT;
Abschließende Gedanken
Wie Sie in diesem SQL-Spickzettel gesehen haben, bietet SQL eine Vielzahl von Befehlen und Funktionen, mit denen Sie Daten in einer relationalen Datenbank erstellen, bearbeiten und abfragen können.
Von den grundlegenden Befehlen wie SELECT, INSERT, UPDATE und DELETE über komplexere Konstrukte wie JOINs und Unterabfragen bis hin zu den von uns behandelten Aggregatfunktionen bietet SQL die Flexibilität, eine Vielzahl von Datenaufgaben zu bewältigen.
Kehren Sie immer wieder zu diesem Spickzettel zurück, um Ihren Weg zum Erlernen von SQL zu beschleunigen !
Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.
Was ist Self in Python: Beispiele aus der Praxis
In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.
In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.
In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.
Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.
Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.
In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.
Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.
Was ist LuckyTemplates Gateway? Alles was du wissen musst