4. Which data types does MySQL support?
Numeric types (TINYINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE), strings (CHAR, VARCHAR, TEXT, BLOB, ENUM, SET), dates and times (DATE, TIME, DATETIME, TIMESTAMP, YEAR), JSON, and spatial types. Choosing the smallest suitable type saves storage and memory and makes indexes faster, for example TINYINT for a status flag rather than INT.
7. Why should you use utf8mb4?
In MySQL, the old utf8 (utf8mb3) charset stores at most three bytes per character, so it cannot store emojis and some rare characters. utf8mb4 is real UTF-8 with four bytes, supporting every character, and is the default in MySQL 8 with the utf8mb4_0900_ai_ci collation. Using it everywhere avoids broken text and errors when users enter emojis.
9. How do you see a table's structure and indexes?
DESCRIBE table or SHOW COLUMNS FROM table lists columns and types, SHOW CREATE TABLE table shows the full definition including indexes, keys, engine and charset, and SHOW INDEX FROM table lists indexes with their cardinality. information_schema tables give the same data for queries across many tables.
10. Does MySQL support FULL OUTER JOIN?
No. MySQL supports INNER, LEFT, RIGHT and CROSS joins, but not FULL OUTER JOIN. You can emulate it by combining a LEFT JOIN and a RIGHT JOIN with UNION, which removes duplicate matched rows, or by using a LEFT JOIN plus a RIGHT JOIN filtered to unmatched rows with UNION ALL for better performance.