Dlaczego tak
Ograniczenie CHECK (ocena BETWEEN 1 AND 6) jest w MySQL od wersji 8.0.16 egzekwowane, a BETWEEN obejmuje oba końce przedziału, więc przechodzą 1 i 6, a 0 zostaje odrzucone. Tekst '3' MySQL zamienia na liczbę 3, która spełnia warunek. Typowy błąd to przekonanie, że BETWEEN wyklucza wartości graniczne i odrzuci 6.