A "negative" test is a test for which you expect to see a failure. If an error does not occur, that itself indicates a problem.
DO NOT FORGET "NEGATIVE" TESTS where we expect to see fine error messages from the server.
This section contains just a few examples of what to test. Please be creative and imagine what could go wrong in rough reality.
Column with numeric data type:
NULL, 0
Minimum - 1, Minimum, Minimum + 1
Maximum - 1, Maximum, Maximum + 1
Negative values if data type is unsigned
Garbage like 'abc', '1a', 'a1'
Column with string data type:
Null, <empty string>, "exotic" characters like 'ä', single quotes, ...
String longer than column
Limited number of tables, columns, variables, ...
Maximum - 1, Maximum, Maximum + 1
Assume an SQL operation that affects the filesystem (LOAD DATA, CREATE SCHEMA or TABLE, backup/restore, ...). What will happen if the following conditions occur for a file or directory to be read, written, or implicitly created or deleted?
Exists/does not exist
Is writable/not writable(missing permission)
Is empty/not empty
Contains the expected content (Example: text)/unexpected content like maybe a JPG)
Is a regular file/a directory/a softlink pointing to .../a pipe
Is assigned via an extremely long path
Becomes victim of file system full