Wie erstellt man:
eine Datenbank?
ein Schema?
Create Database “Name“
Create Schema “Name“
Wofür verwendet man den Befehl use?
Damit der SQL Server weiß für welche Datenbank die folgenden SQL befehle ausführen soll
Wie kann die solgende Tabelle erstellt werden?
CREATE TABLE if not exists locations (
id INT AUTO_INCREMENT,
street VARCHAR(255) NOT NULL,
postal_code VARCHAR(10) NOT NULL,
city VARCHAR(255) NOT NULL,
CONSTRAINT pk_locations PRIMARY KEY (id)
);
Wie kann die folgende Tabelle erstellt werden?
CREATE TABLE if not exists employees (
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
position ENUM('Student', 'Developer', 'Manager') NOT NULL,
department ENUM('Development', 'Marketing') NOT NULL,
superior_id INT,
location_id INT NOT NULL,
CONSTRAINT pk_employees PRIMARY KEY (id),
CONSTRAINT fk_employees_locations FOREIGN KEY (location_id) REFERENCES locations (id),
CONSTRAINT fk_employees_superior FOREIGN KEY (superior_id) REFERENCES employees (id)
Was ist eine Spalte(Datensatz) vom Typ Enum?
Der Datentyp ENUM ist ein String-Objekt mit einem Wert, der aus einer Liste zulässiger Werte ausgewählt wird, die beim Erstellen der Tabelle explizit in der Spaltendefinition aufgelistet werden.
Wie könnte ein Insert-Befehl in die folgende Tabelle aussehen?
INSERT INTO locations (street, postal_code, city)
VALUES ('Ludwig-Guttmann', '69123', 'Heidelberg'),
('Speyerer Str.', '69115', 'Heidelberg'),
('Potsdamerstr.', '10115', 'Berlin');
Update:
Schreibe einen Update Befehl, der die Tabelle employees benutzt und die superior_id der id auf 2 setzt
UPDATE employees SET superior_id = 2 WHERE id = 1;
DELETE
Schreibe einen Delete befehl der alle einträge in employees löscht
DELETE FROM employees
Schreibe einen Insert, der alle Arbeiter von der Entwicklung in Project a setzt
-- Assign all employees of the development department to Project A
INSERT INTO project_employees (employee_id, project_id)
-- instead of specifying the values, you specify a query (columns must match)
SELECT
id AS employee_id,
1 AS project_id
FROM employees
WHERE department = 'Development';
Count
Schreibe einen Select, der dir die Anzahl aller Mitarbeiter einer Abteilung anzeigt.
SELECT department, COUNT(*) employee_count
GROUP BY department
ORDER BY employee_count ASC;
Max
Select der die größte ID jeder Abteilung anzeigt.
SELECT MAX(id)
WHERE department IN ('Development', 'Marketing');
Zeige alle Arbeiter an die in Project a arbeiten
SELECT employees.*
INNER JOIN project_employees ON (employees.id = project_employees.employee_id)
INNER JOIN projects ON (project_employees.project_id = projects.id)
WHERE description = 'Project A';
Zeige alle Mitarbeiter an und Ihre Vorgesetzten
employee.first_name,
employee.last_name,
-- Joins values together
CONCAT(superior.first_name, ' ', superior.last_name) AS superior_name
FROM
-- employees AS employee LEFT JOIN employees AS superior
employees AS superior RIGHT JOIN employees AS employee
ON (superior.id = employee.superior_id);
Zeige alle Projekte an, die im Januar gestartet sind
SELECT *
FROM projects
-- WHERE start_date BETWEEN '2022-01-01' AND '2022-01-31';
WHERE start_date >= '2022-01-01' AND start_date <= '2022-01-31';
Select
Zeige die Anzahl von Locations an gruppoert nach PLZ und Name
SELECT postal_code, city, COUNT(*) number_of_locations
FROM locations
GROUP BY postal_code, city;
- 6. Show number of locations by city order by (city with **most locations**) and (**city alphabetically**)
SELECT city, COUNT(*) number_of_locations
GROUP BY city
ORDER BY number_of_locations DESC, city ASC;
SQL Datentypen:
integer
float
char($n$)
varchar($n$)
date
time
datetime
text
blob
enum('value', ...)
set('value', ...)
ganze Zahlen (32 Bit)
Gleitkommazahlen
Zeichenkette mit der festen Länge n <= 255
Zeichenkette mit der maximalen Länge n <= 255
Datum in dem Format 'YYYY-MM-DD'
Uhrzeit im Format 'HH:MM:SS'
Zeitstempel im Format 'YYYY-MM-DD HH:MM:SS'
Text mit der maximalen Länge von 65535 Zeichen
Binäre Zeichenfolge mit der maximalen Länge von 65535 Zeichen
Zeichenkette, die nur einer der angegebenen Werte (einschließlich null) annehmen kann.
Menge aus den angegebenen Werten.
Unterschied char und varchar
Welche verschiedenen Join typen gibt es?
Zuletzt geändertvor 2 Jahren