实现“mysql for 不用存储过程”教程
整体流程
首先,让我们来看一下整个实现过程的步骤:
erDiagram
CUSTOMER ||--o| ORDERS : places
ORDERS ||--|{ ORDER_DETAILS : contains
PRODUCT ||--o| ORDER_DETAILS : includes
具体步骤
- 创建数据库和表结构:
```sql
-- 创建数据库
CREATE DATABASE example_database;
-- 使用数据库
USE example_database;
-- 创建CUSTOMER表
CREATE TABLE CUSTOMER (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
-- 创建PRODUCT表
CREATE TABLE PRODUCT (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
price DECIMAL(10,2) NOT NULL
);
-- 创建ORDERS表
CREATE TABLE ORDERS (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES CUSTOMER(id)
);
-- 创建ORDER_DETAILS表
CREATE TABLE ORDER_DETAILS (
id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
product_id INT,
quantity INT,
FOREIGN KEY (order_id) REFERENCES ORDERS(id),
FOREIGN KEY (product_id) REFERENCES PRODUCT(id)
);
2. 插入数据:
```markdown
```sql
-- 插入CUSTOMER数据
INSERT INTO CUSTOMER (name) VALUES ('Alice');
INSERT INTO CUSTOMER (name) VALUES ('Bob');
-- 插入PRODUCT数据
INSERT INTO PRODUCT (name, price) VALUES ('Product A', 10.99);
INSERT INTO PRODUCT (name, price) VALUES ('Product B', 20.99);
-- 插入ORDERS数据
INSERT INTO ORDERS (customer_id, order_date) VALUES (1, '2022-01-01');
INSERT INTO ORDERS (customer_id, order_date) VALUES (2, '2022-01-02');
-- 插入ORDER_DETAILS数据
INSERT INTO ORDER_DETAILS (order_id, product_id, quantity) VALUES (1, 1, 2);
INSERT INTO ORDER_DETAILS (order_id, product_id, quantity) VALUES (2, 2, 1);
3. 查询数据:
```markdown
```sql
-- 查询订单信息及顾客名字
SELECT o.id, c.name, o.order_date
FROM ORDERS o
JOIN CUSTOMER c ON o.customer_id = c.id;
-- 查询订单详情及商品信息
SELECT od.id, p.name, od.quantity
FROM ORDER_DETAILS od
JOIN PRODUCT p ON od.product_id = p.id;
### 类图
```mermaid
classDiagram
CUSTOMER <|-- ORDERS
PRODUCT <|-- ORDER_DETAILS
通过以上步骤,你就成功地实现了“mysql for 不用存储过程”。希望这篇文章能够帮助你更好地理解和应用MySQL数据库。如果有任何问题,欢迎随时向我提问。祝你学习顺利!