- MySQL – WHERE
Filtering rows. Comparison operators, AND / OR / NOT and the precedence rule that makes parentheses worth typing, IN and NOT IN, filtering on a boolean column, and the trap that silently returns nothing: comparing to NULL with `=` instead of IS NULL. Also why wrapping a column in a function in the WHERE clause quietly disables the index on it.
- MySQL – SELECT
The statement you will write more than all the others combined. Choosing columns instead of SELECT *, and why the star is a habit worth losing, column and table aliases, DISTINCT, expressions and arithmetic in the select list, the order MySQL actually evaluates a query in — which is not the order you type it — and why that explains half the errors beginners hit.
- MySQL – Normalization and Schema Design
Why the pizza schema looks the way it does. First, second and third normal form explained on tables you can see rather than on students and courses, why price lives in `product_size` and not in `product`, the one place the schema deliberately denormalizes — `order_item` snapshots the product name and price so editing the menu cannot rewrite what someone already bought — and why `cart` does the opposite and stores no prices at all.
- AWS – EC2: Instances, Storage and What They Cost
Reading an instance type instead of guessing — what m7g.large tells you before you look it up — and the four purchase options ranked by how much they actually save. Security groups are stateful and NACLs are not, which explains most 'why can I not connect' questions. EBS volume types, why gp3 replaced gp2, user data for first-boot setup, and SSM Session Manager so you can close port 22 for good.
- MySQL – CREATE TABLE, Constraints and ALTER
Writing the schema. CREATE TABLE column by column, PRIMARY KEY and why the pizza tables use a surrogate BIGINT, NOT NULL and DEFAULT, UNIQUE constraints and what they buy that application code cannot, FOREIGN KEY with ON DELETE CASCADE versus SET NULL — a choice the order tables make both ways on purpose — CHECK constraints, AUTO_INCREMENT, and ALTER TABLE on a table that already has rows in it.