sophief
Goto Top

Fragen zu Primary Key und id int NOT NULL bei SQL

Hallo zusammen,

könnte mir bitte jemand bei ein paar Fragen helfen?

1.
Bezeichnung varchar (30)

Das heisst, dass ein Wort 30 Zeichen haben kann, oder?

2.
Preis decimal (9,2)
Was heissen denn die 9 und die 2 in der Klammer?

3.
Bei der Lösung steht "id int NOT NULL" bzw. bei der Aufgabe Id (PK)

- Für was steht das PK bei Id (PK)

- Warum schreibt man hin NOT NULL?

4.
Ganz unten in der Lösung steht noch PRIMARY KEY (id)
Ich glaube Primary Key sagt, dass etwas nur einmal vorkommen darf - schreibt man das so immer rein?
Warum steht noch (id) dabei?

Danke Euch und viele Grüße

Sophie
bildschirmfoto 2022-01-30 um 18.18.15
bildschirmfoto 2022-01-30 um 18.18.50

Content-Key: 1778266672

Url: https://administrator.de/contentid/1778266672

Printed on: April 27, 2024 at 17:04 o'clock

Member: wiesi200
wiesi200 Jan 30, 2022 updated at 17:59:30 (UTC)
Goto Top
Mensch,
das rauszusuchen währ doch ned schwer.
1.
https://docs.microsoft.com/de-de/sql/t-sql/data-types/char-and-varchar-t ...

2.
https://docs.microsoft.com/de-de/sql/t-sql/data-types/decimal-and-numeri ...

3.
PK steht für Primary Key wie du schon vermutet hast. NOT NULL es währ dann auch toll wenn ein Wert angegeben wird.

4. ID ist der Name der Spalte. Du könntest auch [Kuschelmaus] oder [Bierindex] verwenden und trotzdem als Primärschlüssel verwenden.
Member: SeaStorm
Solution SeaStorm Jan 30, 2022 updated at 19:44:32 (UTC)
Goto Top
Zitat von @SophieF:

Hallo zusammen,
Hi
könnte mir bitte jemand bei ein paar Fragen helfen?

1.
Bezeichnung varchar (30)

Das heisst, dass ein Wort 30 Zeichen haben kann, oder?
Ja.
2.
Preis decimal (9,2)
Was heissen denn die 9 und die 2 in der Klammer?
das die Zahl 9 Ziffern lang sein kann und die Präzision von 2 hat, also Nachkommastellen hat. die Zahl kann also maximal 7 Vorkommastellen haben: 1234567,89
3.
Bei der Lösung steht "id int NOT NULL" bzw. bei der Aufgabe Id (PK)

- Für was steht das PK bei Id (PK)
PK ist der "Primary Key"
- Warum schreibt man hin NOT NULL?
Das bedeutet das dieser INT Wert nicht NULL sein kann. NULL ist "NICHTS", "Nicht existent","Gibt's nicht". Er hat also immer einen "Zustand". Die Zahl kann damit zwar "0" sein, aber niemals " ".
4.
Ganz unten in der Lösung steht noch PRIMARY KEY (id)
Ich glaube Primary Key sagt, dass etwas nur einmal vorkommen darf - schreibt man das so immer rein?
Jain. Der PK ist immer UNIQUE aber auch der Clustered Index.
UNIQUE bedeutet eben das es den Wert in diesem Feld nur ein mal geben kann. Typischerweise die ID, aber nicht unbedingt.
Der Clustered Index bestimmt die tatsächliche Reihenfolge der physischen Speicherung auf der Festplatte.
Hast du also einen PK auf der ID und erstellst nacheinander die Datensätze 1 bis 10.000 landen diese so auf der Platte. Nacheinander. Suchst du jetzt nach der ID 5542 fängt der SQL an in dem Bereich z.B 5000-6000 an zu suchen.
Das hat in der späteren SQL Datenbank Erstellung zT massive Auswirkungen, wenn man eine sehr dynamische Tabelle hat in der permanent Datensätze geändert, gelöscht und eingefügt werden.
Hast du z.B die Daten 1,2,3,5,6,7... und erstellst jetzt den Datensatz mit der 4, dann muss der Server die Daten ab 3, also 5,6,7... wegkopieren, die 4 anlegen und dann die Daten 5,6,7... wieder hinten dran kopieren. Das ist also eine recht IO Intensive Operation für die Festplatte.

Warum steht noch (id) dabei?
Das ist die definition was der PK ist. Hier besteht er aus der Spalte "ID", könnte aber auch aus mehreren Spalten bestehen:
PRIMARY KEY ( id, Jahr )
damit könnte man dann für jedes Jahr eine eindeutige ID erstellen
Member: SophieF
SophieF Jan 30, 2022 at 19:52:18 (UTC)
Goto Top
Super, vielen herzlichen Dank face-smile
Mitglied: 148656
148656 Jan 30, 2022 at 20:03:57 (UTC)
Goto Top
Da es sich bei dir um eine Art Prüfungsvorbereitung handelt, empfehle ich dir, dich über das Thema "relationale Datenbanken" sowie ihren Grad der Normalisierung schlau zu machen. Youtube hat hierzu unzählige Tutoren
Member: ukulele-7
ukulele-7 Jan 31, 2022 at 07:57:52 (UTC)
Goto Top
Das sind echt simeplste Fragen, wer die stellt hat vermutlich noch nicht mal Google verwendet.

Bitte auch als gelöst markieren oder besser gleich löschen, wir bringen ja hier auch keinem das ABC bei.