[S12L1] Intro Relational DB Flashcards

1
Q

Was ist eine Data Persistence?

A
  • Persistente Daten sind Daten, welche unregelmäßig abgefragt werden und nicht oft modifiziert werden
  • Man kann also Vertrauen, dass die Daten vorhanden sind solange man sie nicht explizit entfernt oder modifiziert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sind JavaScript Objects persistent oder Local Storage Key-Value Pairs?

A
  • JavaScript Objects sind nicht persistent, da sie resetten wenn die Application geschlossen wird
  • Local Storage ist Semi-Persistent, kann durch Cookies löschen gelöscht werden von Nutzer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist eine Datenbank?

A

-Ein Platz um Daten persistent zu speichern

-

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Datenbankarten gibt es?

A
  • Relationale Datenbanken (ProgresSQL, Lernen wir)
  • Dokumentenbasierte Datenbanken (MongoDB)
  • Graphbasierte Datenbanken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind Vor- und Nachteile von dokumentenbasierten Datenbanken?

A
  • Sehr leicht zu bootstrapen
  • Für kleinere, nicht komplexe Applikationen nützlich
  • Leiten zu Fehlern, wenig Übersicht und Komplexität
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind Vor- und Nachteile von graphenbasierten Datenbanken?

A

-Sind sehr gut für sehr spezielle Anforderungen an eine Datenbank

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Warum sollte eine Datenbank relational sein?

A
  • Wenn sie oft genutzt wird
  • Wenn Daten effizient gemanaged werden sollen
  • Forciert best Practise
  • Lindy/Haben sich bewährt
  • Wird als guter Skill von Personalern gesehen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind die Grundprinzipien einer relationalen Datenbank?

A
  • Tables, welche aus Rows und Columns bestehen
  • Columns sind Schema der Datenbank (Wie die Daten aussehen sollen)
  • Rows ist ein Entry eines Datensatzes
  • Manche Datensätze sind miteinander verknüpft/related
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie spricht man mit (relationalen) Datenbanken?

A
  • Durch eine Sprache namens SQL (Structued Query Language)

- Über Javascript durch einen Wrapper für SQL wie knex.js

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Warum sollte man SQL lernen?

A
  • Das Leben wird einfacher, besonders beim Debuggen
  • Ist ein wichtiger Skill
  • Tieferes Verständnis von Knex.js und Datenbank Libraries
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Ist SQL eine Programming Language?

A
  • Nein, es ist eine Query Language
  • Es gibt keine Conditionals. Schleifen oder Variablen
  • Ist skalierbar und liefert nur query Data zurück
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie sucht man in SQL nach einem speziellen Customer?

A

select * from Customers where customerid = 6;

select * from Customers where name= “Sascha”;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie inserted man Daten via SQL?

A

Insert into Categories (CategoryName, Description) VALUES (‘Spices, ‘Tasty Stuff’);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie Updated man Daten via SQL?

A

UPDATE Categories SET Description=’Herbs and spices’ WHERE CategoryID = 9;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie löscht man Daten via SQL?

A

DELETE FROM products WHERE ProductId=8;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist Knex.js?

A

-Ein SQL Wrapper, welcher es erlaubt Helper Functions in JavaScript zu schreiben, welche die SQL Queries übernehmen

17
Q

Welche Dateien braucht data/Knex.js?

A
  • db-config.js (Connections Setup)
  • db-helpers.js (Helfer Methoden für Queries)
  • users.db3 (Leere Datei, welche eine DB Datei wird)
18
Q

Ist SQL case-sensitive?

A

-Nein, lower und upper Case macht keinen Unterschied für die SQL Anweisungen

19
Q

Wie kann man mit SQL mehrere Columndaten aus einer SQL Table bekommen?

A

Select productId, productName from products

Select firstname, lastname from customers

20
Q

Kann man mit SQL Select mehrer Columns in der Reihenfolge die man haben möchte anfragen?

A

Ja, mit
-Select CustomerName, ContactName, Country, City from Customers

Liefert die Columns in der gleichen Reihe wie angefragt

21
Q

Wie kann man neben den Columndaten auch einen Filter auf spezielle Datensätze filtern?

A

-Mit WHERE

Select ContactName, CustomerName, Country
From Customers
Where City=’Berlin’;

22
Q

Wie kann man nach mehreren WHERE Row Datensätzen Filtern?

A

-Mit OR / AND

Select ContactName, CustomerName, Country
From Customers
Where City=’Berlin’ or Country = ‘Brazil’:

Select ContactName, CustomerName, Country
From Customers
Where Country = ‘Brazil and CustomerID > 30’:

23
Q

Wie kann man Datensätze sortieren/ in Order anzeigen?

A

Select ContactName, CustomerName, Country
From Customers
Where City=’Berlin’ or Country = ‘Brazil’
order by contactName desc;

24
Q

Wie kann man mehrere Sortierungen ausführen? (Country ascending, City descending)

A

-Default is ascending

Select Country, City, CustomerID, COntactName, CustomerName
From Customers
order by country, city desc

Select Country, City, CustomerID, COntactName, CustomerName
From Customers
order by 1, 2 desc

// 1 und 2 bezieht sich auf die Reihenfolge der in SELECT bezug genommenen Daten, aber ist keine Best Practise

25
Q

Wie kann man nur die ersten x Datensätze sehen?

A

select * from products
order by productId desc
limit 5

26
Q

Was macht folgender SQL Query?

select * from products
order by productId desc
limit 5
offset 2

A
  • Zeigt die ersten 5 Datensätze aus Products sortiert bei productID desc an, aber zeigt die ersten 2 Elemente nicht an
  • Limit picked to Records/Datensätze
  • Offset discarded die Records/Datensätze
27
Q

Sollte man in SQL Double oder Single Quotes nutzen?

A

-Single Quotes

28
Q

Wie macht man einen Comment in SQL?

A

– Kommentar mit zwei Dashes

29
Q

Wie updated man den Namen und Preis eines Produktes mit SQL?

A

update products

set Productname = ‘Jack’ ‘O Lantern’, price = 59.99

30
Q

Wie kann man die Wildcard LIKE in SQL benutzen?

A

-% kann man überall im String einbauen

DELETE From Products WHERE ProductName LIKE ‘%Gula%Ma%’

31
Q

Kann Knex.js mehrere Datenbanken ansprechen?

A

Ja, es kann Mysql, MariaDB, PostgreSQL, SQLite3, Oracle
-Alle Datenbanken nutzen SQL ein klein wenig Unterschied, aber mit KNEX macht es keinen Unterschied wenn man die DB mal wechseln sollte

32
Q

Wie bringt man knex.js und sqlite3 in ein Project?

A

npm i knex sqlite3

33
Q

Was ist sqlite3?

A

-Ein Module um

34
Q

Was macht knex.js mit where() ?

A

-Liefert einen Array aus allen Ergebnissen zurück, auch wenn nur eines vorhanden ist

35
Q

Was macht knex.js mit first() ?

A

-Liefert nur das erste Ergebnis direkt zurück ohne Array