CREATE TABLE names a table and lists its columns, each with a type:
CREATE TABLE stores (
store_id INTEGER PRIMARY KEY,
city VARCHAR NOT NULL,
opened_on DATE
);
The common types: INTEGER for whole numbers, DECIMAL(p, s) for money (DECIMAL(8,2) holds up to 999999.99), VARCHAR for text, DATE, TIMESTAMP for a date and time, and BOOLEAN. MySQL and SQL Server want a length on text, as in VARCHAR(100); PostgreSQL and the database here accept it either way.
NOT NULL makes a column required. PRIMARY KEY marks the column that identifies each row: it must be unique and is never NULL.
CREATE TABLE new_table AS SELECT ... builds a table from a query's result. DROP TABLE IF EXISTS name removes a table, and does nothing if it isn't there. On this site, every run starts from the exercise's starting tables, so you can run your script as often as you like.