[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
Wie kann man nur die ersten x Datensätze sehen?
select * from products order by productId desc limit 5
26
Was macht folgender SQL Query? select * from products order by productId desc limit 5 offset 2
- 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
Sollte man in SQL Double oder Single Quotes nutzen?
-Single Quotes
28
Wie macht man einen Comment in SQL?
-- Kommentar mit zwei Dashes
29
Wie updated man den Namen und Preis eines Produktes mit SQL?
update products | set Productname = 'Jack' 'O Lantern', price = 59.99
30
Wie kann man die Wildcard LIKE in SQL benutzen?
-% kann man überall im String einbauen | DELETE From Products WHERE ProductName LIKE '%Gula%Ma%'
31
Kann Knex.js mehrere Datenbanken ansprechen?
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
Wie bringt man knex.js und sqlite3 in ein Project?
npm i knex sqlite3
33
Was ist sqlite3?
-Ein Module um
34
Was macht knex.js mit where() ?
-Liefert einen Array aus allen Ergebnissen zurück, auch wenn nur eines vorhanden ist
35
Was macht knex.js mit first() ?
-Liefert nur das erste Ergebnis direkt zurück ohne Array