C:数据表中需要有配送人名name,消费金额price,配送订单编号number,,配送时间goods time:
D:由于业务需求,需要在配送订单编号和配送时间创建联合索引
下面是 MySQL 代码,用于完成您的问题:
创建数据表:
CREATE TABLE orders (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price FLOAT NOT NULL,
number VARCHAR(50) NOT NULL,
goods_time DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建联合索引:
ALTER TABLE orders ADD INDEX idx_number_time(number, goods_time);
解释一下代码的含义:
首先创建了一个名为 orders 的数据表,其中包含 4 个字段:id、name、price、number 和 goods_time,它们分别对应了配送人名、消费金额、配送订单编号和配送时间。其中 id 字段是自增主键,作为表的唯一标识。
接着,通过 ALTER TABLE 语句创建了一个名为 idx_number_time 的联合索引,它包含 number 和 goods_time 两个字段。这个索引可以加速查询、排序和分组等操作。
A: 创建数据表
CREATE TABLE delivery (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
price DECIMAL(10,2),
number VARCHAR(20),
goods_time DATETIME);
B: 插入数据
INSERT INTO delivery (name, price, number, goods_time) VALUES('张三', 50.00, '20210101001', '2021-01-01 10:00:00'),
('李四', 80.00, '20210101002', '2021-01-01 11:00:00'),
('王五', 120.00, '20210101003', '2021-01-01 12:00:00');
C: 查询数据
SELECT name, price, number, goods_time FROM delivery;
D: 创建联合索引
ALTER TABLE delivery ADD INDEX idx_number_goods_time (number, goods_time);
Regenerate