在自己的空白练习数据库中执行。每项示例都基于初始数据独立验证;事务课程会改变数据,再次练习时请使用新的空白数据库。金额采用 DECIMAL,表使用 InnoDB。
建表与示例数据
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(40) NOT NULL,
nickname VARCHAR(40) NULL
) ENGINE=InnoDB;
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT NOT NULL,
amount DECIMAL(10,2) NOT NULL,
status VARCHAR(20) NOT NULL,
ordered_at DATE NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers(id)
) ENGINE=InnoDB;
INSERT INTO customers VALUES
(1, 'Ada', 'ada'), (2, 'Linus', NULL),
(3, 'Grace', 'grace'), (4, 'Guido', NULL);
INSERT INTO orders VALUES
(1, 1, 120.00, 'paid', '2026-01-02'),
(2, 1, 80.00, 'paid', '2026-01-05'),
(3, 2, 200.00, 'pending', '2026-01-06'),
(4, 2, 50.00, 'paid', '2026-01-07'),
(5, 3, 150.00, 'paid', '2026-01-09');
下载 dataset.sql ↓