Was ist SQL? Was macht ein SQL-Server

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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

Woher ich das weiß:eigene Erfahrung
Benutzer0809985  15.12.2021, 20:25

-- 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;

0
Benutzer0809985  15.12.2021, 20:27

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

0