← Back
LESSON 16
SQL (Core) - Creating tables
Prereq: None | Progress: 0%
Course Syllabus
Lesson 0 📖 What is SQL? Lesson 1 📖 SELECT queries 101 Lesson 2 📖 Queries with constraints (Pt. 1) Lesson 3 📖 Queries with constraints (Pt. 2) Lesson 4 📖 Filtering & sorting results Review 1 📖 Simple SELECT Queries Lesson 6 📖 Multi-table queries with JOINs Lesson 7 📖 OUTER JOINs Lesson 8 📖 A short note on NULLs Lesson 9 📖 Queries with expressions Lesson 10 📖 Queries with aggregates (Pt. 1) Lesson 11 📖 Queries with aggregates (Pt. 2) Lesson 12 📖 Order of execution of a Query Lesson 13 📖 Inserting rows Lesson 14 📖 Updating rows Lesson 15 📖 Deleting rows Lesson 16 📖 Creating tables Lesson 17 📖 Altering tables Lesson 18 📖 Dropping tables Lesson 19 📖 Subqueries & Nested Queries Lesson 20 📖 Set Operations Summary 🎓 Course Completion
SQL Lesson 16: Creating tables
Before inserting data, you must establish relational table schemas using the CREATE TABLE Data Definition Language (DDL) query.
1. CREATE TABLE Syntax & Constraints
Every column requires a name, data type (INTEGER, TEXT, REAL, BOOLEAN, DATETIME), and optional schema enforcement constraints:
CREATE TABLE IF NOT EXISTS database_courses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL UNIQUE,
category TEXT DEFAULT 'General',
rating REAL CHECK (rating >= 0 AND rating <= 5),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
2. Schema Constraint Breakdown
- PRIMARY KEY: Guarantees row uniqueness and speeds up table lookups.
- NOT NULL: Rejects insertions missing this required attribute.
- UNIQUE: Prevents duplicate emails, usernames, or titles.
- DEFAULT: Automatically populates timestamps or fallbacks if omitted.
- CHECK: Validates value boundaries before writing to disk.
🗄️ Schema Explorer SELECTABLE
› movies
|
🎯 Exercises Checklist:
☐ 1. Create a new table named Database with columns: Name (TEXT), Version (FLOAT), Download_count (INTEGER)
☐ 2. Create a new table named Users with columns: id (INTEGER PRIMARY KEY), username (TEXT NOT NULL), email (TEXT UNIQUE)
⚡ Practice Console
💡 Hint:
Loading hint...
🔑 Solution SQL:
SELECT * FROM movies; Data Output
No results. Run query to fetch data.