Create Table
Design a table schema and create it in SQLite.
Problem to Solve
Bạn sẽ học cách thiết kế và tạo bảng trong SQLite. Đây là kỹ năng nền tảng quan trọng nhất trong việc làm việc với cơ sở dữ liệu.
Background
Trong SQL, bảng (table) là cấu trúc cơ bản để lưu trữ dữ liệu. Mỗi bảng gồm:
- Columns (cột): Định nghĩa loại dữ liệu được lưu
- Rows (hàng): Chứa dữ liệu thực tế
- Constraints: Quy tắc đảm bảo tính toàn vẹn dữ liệu
Specification
Tạo file students.sql chứa các lệnh SQL để:
1. Tạo bảng students
- id: INTEGER, PRIMARY KEY, tự động tăng
- name: TEXT, bắt buộc (NOT NULL)
- email: TEXT, duy nhất (UNIQUE)
- age: INTEGER, phải >= 18
- gpa: REAL, trong khoảng 0.0 đến 4.0
- enrollment_date: DATE, mặc định là ngày hiện tại
2. Thêm ít nhất 5 sinh viên mẫu
3. Viết các queries
- Liệt kê tất cả sinh viên
- Tìm sinh viên có GPA > 3.5
- Đếm số sinh viên theo độ tuổi
Examples
-- Tạo bảng
CREATE TABLE students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
age INTEGER CHECK(age >= 18),
gpa REAL CHECK(gpa >= 0.0 AND gpa <= 4.0),
enrollment_date DATE DEFAULT CURRENT_DATE
);
-- Thêm dữ liệu
INSERT INTO students (name, email, age, gpa)
VALUES ('Nguyen Van A', 'a@uet.edu.vn', 20, 3.5);
-- Query
SELECT * FROM students WHERE gpa > 3.5;
Hints
- Sử dụng
AUTOINCREMENTđể id tự động tăng CHECKconstraint giúp validate dữ liệuDEFAULTthiết lập giá trị mặc định- Chạy file SQL bằng:
sqlite3 database.db < students.sql
Getting Started
Log into cs50.dev using your GitHub account and click Authorize cs50, then close the tab.
How to check / Cách kiểm tra
Chạy:
check50 --local uet36/problems/2025/database/create_table
How to submit / Cách nộp
Chạy:
submit50 --local uet36/problems/2025/database/create_table