MySQL代码完成下面问题

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