echo $begrüßung;
Hat es einen Sinn, dass MySQL beim zählen mit 1 anfängt und nicht mit Null (bei USIGNED)?
Null ist etwas anderes als 0. Während 0 eine Integer-Zahl ist, ist NULL ein eigener Wert mit Sonderbehandlung und steht für "nicht definiert", "nicht vorhanden". Auch NULL und ein Leerstring "" sind zwei verschiedene Dinge.
Wenn man rechnet oder vergleicht, und einer der Operanden ist NULL, so ergibt das Ergebnis immer NULL.
5 + NULL => NULL
5 + 0 => 5
0 = NULL => NULL
NULL = NULL => NULL
NULL IS NULL => 1 (quasi true)
In manchen Anwendungsfällen spielt der Unterschied keine Rolle. Da kann man das Spaltenattribut NOT NULL setzen und die Default-Werte 0 oder Leerstring stehen dann für nicht vorhanden.
Oder kann ich die Null wie jede andere Zahl verwenden?
0 nimmt man gern, um in einer Frendschlüsselspalte anzuzeigen, dass es in der Haupt-Tabelle keinen Datensatz gibt. Man könnte dazu auch NULL nehmen. Man kann auch in beiden Werten eine unterschiedliche Bedeutung sehen: 0 = es existiert definitiv kein entsprechender Datensatz in der Haupt-Tabelle. NULL = es ist (noch) nicht definiert, ob ein Datensatz vorhanden ist, beispielsweise dann, wenn noch nicht alle Daten verarbeitet sind, die Beziehung zwischen den Datensätzen der Tabellen erst in einem zweiten Schritt ermittelt und dann nachgepflegt werden.
echo "$verabschiedung $name";