= only matches text exactly. LIKE matches a pattern, with two wildcards:
% stands for any run of characters, including none.
_ stands for exactly one character.
So name LIKE 'Linen%' finds names that start with Linen, name LIKE '%Lamp' finds names that end with Lamp, and name LIKE '%Bath%' finds Bath anywhere in the name. coupon_code LIKE 'SPRING__' matches SPRING followed by exactly two characters.
LIKE is case-sensitive in PostgreSQL and in the database here, so '%bath%' won't find "Bath Mat". PostgreSQL adds ILIKE, which ignores case. MySQL and SQL Server usually ignore case with plain LIKE. In a test, match the capitals in the data and you're safe everywhere.
NOT LIKE keeps the rows that don't match. If you've used * as a wildcard in spreadsheets or Access, note that SQL uses % instead.