Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m290_guko:learningunits:lu05:theorie:a_ddl [2026/09/13 21:47] – gkochde:modul:m290_guko:learningunits:lu05:theorie:a_ddl [2026/09/14 09:31] (aktuell) – gkoch
Zeile 34: Zeile 34:
  
 ==== Zahlen ==== ==== Zahlen ====
-{{:de:modul:m290_guko:learningunits:lu05:theorie:number.png?nolink&80 }} +{{:de:modul:m290_guko:learningunits:lu03:theorie:number.png?nolink&80 }} 
 +<WRAP center round box 80%>
 ^ Typ ^ Wofür ^ Beispiel in der Tabelle buch ^ ^ Typ ^ Wofür ^ Beispiel in der Tabelle buch ^
 | **INT** | Ganze Zahlen ohne Nachkommastellen | //seiten// (350), //buch_id// (1, 2, 3 …) | | **INT** | Ganze Zahlen ohne Nachkommastellen | //seiten// (350), //buch_id// (1, 2, 3 …) |
 | **DECIMAL(M,D)** | Kommazahlen mit **exakter** Genauigkeit. M = Stellen gesamt, D = Nachkommastellen | //preis// als DECIMAL(6,2) → bis 9999.99 | | **DECIMAL(M,D)** | Kommazahlen mit **exakter** Genauigkeit. M = Stellen gesamt, D = Nachkommastellen | //preis// als DECIMAL(6,2) → bis 9999.99 |
 | **FLOAT** / **DOUBLE** | Kommazahlen mit **ungefährer** Genauigkeit | Messwerte, Sensordaten – bei uns selten | | **FLOAT** / **DOUBLE** | Kommazahlen mit **ungefährer** Genauigkeit | Messwerte, Sensordaten – bei uns selten |
 +</WRAP>
  
 <WRAP center round important 80%> <WRAP center round important 80%>
Zeile 47: Zeile 48:
  
 ==== Text ==== ==== Text ====
-{{:de:modul:m290_guko:learningunits:lu05:theorie:string.png?nolink&80 }}+{{:de:modul:m290_guko:learningunits:lu03:theorie:string.png?nolink&80 }}
  
 +<WRAP center round box 80%>
 ^ Typ ^ Wofür ^ Beispiel in der Tabelle buch ^ ^ Typ ^ Wofür ^ Beispiel in der Tabelle buch ^
 | **VARCHAR(n)** | Text mit **variabler** Länge, bis n Zeichen. Der Normalfall für Text. | //titel// als VARCHAR(100) | | **VARCHAR(n)** | Text mit **variabler** Länge, bis n Zeichen. Der Normalfall für Text. | //titel// als VARCHAR(100) |
 | **CHAR(n)** | Text mit **immer gleicher** Länge | //isbn// als CHAR(13), Ländercodes wie CH oder FR | | **CHAR(n)** | Text mit **immer gleicher** Länge | //isbn// als CHAR(13), Ländercodes wie CH oder FR |
 | **TEXT** | Sehr lange Texte ohne feste Obergrenze | Inhaltsangabe, Rezension | | **TEXT** | Sehr lange Texte ohne feste Obergrenze | Inhaltsangabe, Rezension |
 +</WRAP>
  
 Faustregel: **VARCHAR ist die Standardwahl.** CHAR nur, wenn die Länge wirklich immer gleich ist. TEXT nur für lange Fliesstexte. Faustregel: **VARCHAR ist die Standardwahl.** CHAR nur, wenn die Länge wirklich immer gleich ist. TEXT nur für lange Fliesstexte.
  
 ==== Datum und Zeit ==== ==== Datum und Zeit ====
-{{:de:modul:m290_guko:learningunits:lu05:theorie:date_time.png?nolink&80 }} +{{:de:modul:m290_guko:learningunits:lu03:theorie:date_time.png?nolink&80 }} 
 +<WRAP center round box 80%>
 ^ Typ ^ Wofür ^ Format ^ ^ Typ ^ Wofür ^ Format ^
-| **DATE** | Nur ein Datum | 2026-09-07 |+| **DATE** | Nur ein Datum | 2026-09-07 (YYYY-MM-DD) | 
 +| **TIME** | Nur eine Zeit | 14:30:00 (hh:mm:ss) |
 | **DATETIME** | Datum **und** Uhrzeit | 2026-09-07 14:30:00 | | **DATETIME** | Datum **und** Uhrzeit | 2026-09-07 14:30:00 |
 | **TIMESTAMP** | Wie DATETIME, kann sich beim Ändern eines Datensatzes automatisch aktualisieren | 2026-09-07 14:30:00 | | **TIMESTAMP** | Wie DATETIME, kann sich beim Ändern eines Datensatzes automatisch aktualisieren | 2026-09-07 14:30:00 |
 +| **YEAR** | Ein Jahr | 1965 | 
 +</WRAP>
 Die Frage lautet immer: **Brauche ich die Uhrzeit?** Bei einem Erscheinungsdatum nicht (DATE), bei einer Ausleihe schon (DATETIME). Die Frage lautet immer: **Brauche ich die Uhrzeit?** Bei einem Erscheinungsdatum nicht (DATE), bei einer Ausleihe schon (DATETIME).
  
 ==== Ja oder Nein ==== ==== Ja oder Nein ====
-{{:de:modul:m290_guko:learningunits:lu05:theorie:boolean.png?nolink&80 }}+{{:de:modul:m290_guko:learningunits:lu03:theorie:boolean.png?nolink&80 }}
  
 +<WRAP center round box 80%>
 ^ Typ ^ Wofür ^ Werte ^ ^ Typ ^ Wofür ^ Werte ^
 | **BOOLEAN** | Genau zwei Zustände | true/false bzw. 1/0 | | **BOOLEAN** | Genau zwei Zustände | true/false bzw. 1/0 |
 +</WRAP>
 +
  
 Beispiel: //ausgeliehen// – ein Buch ist ausgeliehen oder nicht. MySQL speichert BOOLEAN intern als TINYINT, deshalb sehen Sie in der Tabelle 0 und 1. Beispiel: //ausgeliehen// – ein Buch ist ausgeliehen oder nicht. MySQL speichert BOOLEAN intern als TINYINT, deshalb sehen Sie in der Tabelle 0 und 1.
  
  
-===== Die Tabelle buch im Überblick =====+===== Beispiel Buch ===== 
 + 
 +{{:de:modul:m290_guko:learningunits:lu05:theorie:datentypen_book_small.png?direct&700|Buch mit Datentypen}}
  
 <WRAP center box round 80%> <WRAP center box round 80%>
Zeile 94: Zeile 104:
   * **Preis als FLOAT** → Rundungsfehler. Nehmen Sie DECIMAL.   * **Preis als FLOAT** → Rundungsfehler. Nehmen Sie DECIMAL.
   * **Telefonnummer als INT** → führende Nullen verschwinden (aus 0791234567 wird 791234567). Telefonnummern sind Text, nicht Zahlen – man rechnet nie damit.   * **Telefonnummer als INT** → führende Nullen verschwinden (aus 0791234567 wird 791234567). Telefonnummern sind Text, nicht Zahlen – man rechnet nie damit.
-  * **Alles als VARCHAR(255)** → die Datenbank kann nichts mehr prüfen und sortiert falsch. Genau das haben wir oben bei //Meta_score// gesehen. 
   * **Datum als VARCHAR** → man kann weder sortieren noch Zeiträume berechnen.   * **Datum als VARCHAR** → man kann weder sortieren noch Zeiträume berechnen.
 </WRAP> </WRAP>
Zeile 103: Zeile 112:
 ===== Hinweis ===== ===== Hinweis =====
 Jedes DBMS (MySQL, PostgreSQL, Oracle …) bietet leicht unterschiedliche Datentypen. In diesem Modul arbeiten wir mit **MySQL** und beschränken uns auf die hier vorgestellten Typen. Jedes DBMS (MySQL, PostgreSQL, Oracle …) bietet leicht unterschiedliche Datentypen. In diesem Modul arbeiten wir mit **MySQL** und beschränken uns auf die hier vorgestellten Typen.
 +Eine detaillierte Übersicht über alle MySQL-Datentypen finden Sie auf der offiziellen Dokumentation: [[https://dev.mysql.com/doc/refman/9.7/en/data-types.html|MySQL Docs Datentypen]]
  
 ---- ----
  • de/modul/m290_guko/learningunits/lu05/theorie/a_ddl.1789328859.txt.gz
  • Zuletzt geändert: 2026/09/13 21:47
  • von gkoch