Was ist SQL? Was macht ein SQL-Server
Hi, ich kann den Artikel zu SQL und SQL Server nicht genau verstehen, wegen der vielen Begriffe? Kann mir jemand daher kurz und in einfachen Wörtern erklären was SQL ist und was ein SQL Server macht? Und wo/ wofür das verwendet wird? Bitte keine Lustig Kommentare und bitte diese Frage nicht löschen gutefrage.net Community denn ich finde in Internet keine einfache Erklärung. Danke
4 Antworten
Ganz einfach gesagt ist ein SQL-Server eine Software die eine Datenbank verwaltet.
Mit Hilfe der Datenbanksprache SQL (Structured Query Language) schickt man Befehle (Einfügen, Verändern, Löschen, ...) an den SQL-Server und dieser führt dann die entsprechenden Aktionen aus und liefert die Ergebnisse zurück.
Zum Beispiel wurde deine Frage hier und meine Antwort mittels SQL-Befehle in der SQL-Datenbank von GF gespeichert.
Genaueres findest du hier: http://de.wikipedia.org/wiki/SQL
SQL ist eine Sprache die einem hilft mit einer Datenbank zu kommunizieren. Wenn man etwas in eine Datenbank speichern (oder etwas daraus auslesen) möchte, dann kann man ihr das Sagen, in dem man dem Datenbank-System bestimmte Anweisungen sendet. Diese Anweisung müssen natürlich eine bestimmte Struktur und bestimmte Befehle enthalten, damit das System diese auch versteht. Und diese Sprache nennt man SQL.
Ein SQL-Server ist ein Server, auf dem so ein Datenbank-System installiert ist und dem man dann über ein Netzwerk diese SQL-Anweisungen senden kann, damit genau das mit der Datenbank passiert was man möchte.
Ich hoffe das war halbwegs verständlich und hat dir etwas weitergeholfen.
CSS
* {
margin: 0;
padding: 0;
box-sizing:border-box;
}
body {
background-color: #60D6A9;
margin: auto;
}
header {
background-color: #007046;
width: 900px;
height: 150px;
font-family: Papyrus;
color: white;
margin:auto;
}
h1 {
font-size: 35px;
text-align:center;
font-weight: bold;
background-color: #007046;
font-family: Papyrus;
color: white;
}
p {
font-size: 25px;
font-weight: bold;
text-align: center;
background-color: #007046;
font-family: Papyrus;
color: white;
}
ul {
list-style-type: none;
overflow: hidden;
background-color: #20815D;
width: 900px;
height: 20px;
padding-left: 20px;
text-align: center;
margin:auto;
}
li {
float: left;
background-color: #60D6A9;
height: 20px;
}
li a {
color: white;
text-align: center;
padding-right: 20px;
padding-left: 20px;
text-decoration: none;
height: 20px;
font-family:Arial;
font-size:15px;
}
/* Change the link color to #111 (black) on hover */
li a:hover {
background-color: white;
color: #60D6A9;
}
.Content{
width:900px;
height:550px;
background-color:#35D699;
margin:auto;
padding:30px;
}
Hier paar beispiele die dir helfen können
1. Welche Artikel haben einen Preis zwischen 30 und 100 €?
SELECT * FROM t_products WHERE price BETWEEN 30 AND 100
2. Welcher Artikel ist der teuerste?
SELECT p_product_nr, description, price
FROM t_products
ORDER BY price DESC LIMIT 1
3. Was ist der teuerste verkaufte Artikel (Produktnummer, Bezeichnung, Preis)?
SELECT p_product_nr, description, price
FROM t_products JOIN t_sales ON p_product_nr = f_product_nr
ORDER BY price DESC LIMIT 1
4. Welche Artikel sind noch nicht verkauft worden?
SELECT p_product_nr, description
FROM t_products LEFT JOIN t_sales
ON p_product_nr = f_product_nr
WHERE f_product_nr IS NULL
5. Summe der verkauften Artikel pro Verkaufstag.
SELECT date, SUM(qty) FROM t_sales GROUP BY date
6. Die Summe der Umsätze (stück*preis) für jeden verkauften Artikel.
Ausgabe: Produktnummer, Bezeichnung, Umsatz
SELECT f_product_nr,description, SUM(qty*price)
FROM t_sales JOIN t_products ON f_product_nr=p_product_nr
GROUP BY f_product_nr, description
7. Geben Sie den Verkäufer aus, der die moisten Oberhemden verkauft hat.
SELECT name
FROM t_seller JOIN t_sales ON p_seller_nr = f_seller_nr
JOIN t_products ON p_product_nr = f_product_nr
WHERE description = 'Oberhemd'
GROUP BY p_seller_nr
ORDER BY SUM(qty) DESC LIMIT 1
8. Welche Artikel sind überdurchschnittlich teuer?
SELECT P_product_nr, description
FROM t_products
WHERE price > (SELECT AVG(price) FROM t_products)
B) Gesucht sind die UPDATE Statements.
9. Der Preis von Oberhemden soll um 10% erhöht werden.
UPDATE t_products
price = price*1.1 WHERE description = 'Oberhemd'
10. Der Preis von Produkten, welche noch nicht verkauft wurden,
sollen um 10% vermindert werden.
UPDATE t_products
LEFT JOIN t_sales ON p_product_nr = f_product_nr
SET price = price*0.9 WHERE f_product_nr IS NULL
1* SELECT: [Auswahl von Spalten und Aggregatfunktionen]
FROM: T1 [INNER|LEFT|RIGHT] JOIN T2 ON T1.pS = T2.fS -Verknüpfung von Tabellen
2* WHERE: [Auswahl von Datensätzen]
1* GROUP BY: [gleiche Spalten-Werte, Spalten nach SELECT und GB sind gleich option mit Aggregatfunktionen]
2* HAVING: [Bedinung für den den gruppierten Datensatz]
ORDER BY: [Sortierung aufsteigend (DESC – absteigend)]
LIMIT: [Anzahl der Zeilen]
*1 = Aggregatfunktionen:
SUM (Summe aller Werte)
COUNT (Anzahl der Elemente)
datediff(CURRENT_DATE, date tabelle)
AVG – Mittelwert der Werte
MAX – Maximaler Wert
MIN – Minimaler Wert
*2 = Optionen:
<, >, =, <>
BETWEEN … AND …,
LIKE '%abc%', LIKE('FS_ _')
IS NULL, IS NOT NULL
AND, OR
-- 1 Ausgeliehene Bücher
SELECT author,title,returnDate
FROM t_book
WHERE f_user IS NOT NULL; -- Alternative: returnDate IS NOT NULL
-- 2 Ausgeliehene, reservierbare Bücher
SELECT author,title,returnDate
FROM t_book
WHERE f_user_nr IS NOT NULL -- Alternative: returnDate IS NOT NULL
AND f_reserveUser_nr IS NULL;
-- 3 überfällige Bücher
SELECT title,datediff(CURRENT_DATE,returnDate)
FROM t_book
WHERE CURRENT_DATE>returnDate; -- DATEDIFF(CURRENT_DATE,returnDate) > 0;
-- 4 Nutzer mit dem höchsten Gebührenstand
SELECT name,fees
FROM t_libuser
ORDER BY fees DESC
LIMIT 1;
-- Berücksichtigung, dass mehrere Benutzer den höchsten Gebührenstand haben können.
SELECT name,fees
FROM t_libuser
WHERE fees = (SELECT MAX(fees) FROM t_libuser)
-- 5 Nutzer mit abgelaufenem Ausweis
SELECT name,date
FROM t_libuser INNER JOIN t_libcard ON f_card_nr = p_card_nr
WHERE CURRENT_DATE > date;
-- 6 Nutzer, deren Ausweis nicht abgelaufen aber gesperrt ist.
SELECT name,date
FROM t_libuser INNER JOIN t_libcard ON f_card_nr = p_card_nr
WHERE CURRENT_DATE < date AND valid = 0;
-- 7 Nutzer, die mehr als ein Buch ausgeliehen haben
SELECT name,COUNT(*) AS Anzahl
FROM t_libuser INNER JOIN t_book ON p_user_nr = f_user_nr
GROUP BY f_user_nr HAVING Anzahl > 1;
-- 8 Nutzer, die ein Buch ausgeliehen haben, dass in den nächsten 3 Tagen fällig ist.
SELECT name
FROM t_libuser JOIN t_book ON p_user_nr = f_user_nr
WHERE returndate >= CURRENT_DATE
AND DATEDIFF(returnDate, CURRENT_DATE) < 3;
-- 9 Für Nutzer mit überfällige Büchern, die Gesamtverspätung
SELECT t_libuser.name,SUM(DATEDIFF(now(),returnDate)) AS Gesamttage
FROM t_libuser JOIN t_book ON p_user_nr = f_user_nr
WHERE CURRENT_DATE>returnDate
GROUP BY f_user_nr;
-- 10 Nutzer mit den meisten Ausleihen
SELECT name,COUNT(*) AS Anzahl
FROM t_libuser JOIN t_book ON p_user_nr = f_user_nr
GROUP BY f_user_nr
ORDER BY Anzahl
DESC LIMIT 1;
-- Berücksichtigung, dass es mehrere Nutzer mit den meisten Ausleihen geben kann
SELECT name, COUNT(*) AS Anzahl
FROM t_libuser JOIN t_book ON p_user_nr = f_user_nr
GROUP BY f_user_nr
HAVING Anzahl = (SELECT COUNT(*)
FROM t_libuser JOIN t_book ON p_user_nr = f_user_nr
GROUP BY f_user_nr
ORDER BY COUNT(*)
DESC LIMIT 1)
-- 11 Anzahl der Ausleiher
SELECT COUNT(DISTINCT f_user_nr) AS Anzahl Ausleiher
FROM t_book
-- 12 Nutzer, die nichts ausgeliehen haben
SELECT name
FROM t_libuser LEFT JOIN t_book ON p_user_nr = f_user_nr
WHERE f_user_nr IS NULL;
-- 13 Anzahl der Nutzer, die nichts ausgeliehen haben
SELECT COUNT(*) AS Anzahl
FROM t_libuser LEFT JOIN t_book ON p_user_nr = f_user_nr
WHERE f_user_nr IS NULL;
-- 14 Nutzer, die nichts ausgeliehen haben und deren Ausweis gesperrt ist
SELECT name
FROM t_libuser LEFT JOIN t_book ON p_user_nr = f_user_nr
JOIN t_libcard ON f_card_nr = p_card_nr
WHERE f_user_nr IS NULL AND valid = 0;