1.登录MySQL数据库
mysql -u root -p然后输入你的密码:********
如果出现mysql: command not found错误,说明MySQL命令行工具没有在PATH中,需要:
使用绝对路径:
/usr/local/mysql/bin/mysql -u root -p或者将MySQL添加到PATH环境变量
2.创建数据库
登录成功后,输入以下SQL语句:
-- 创建数据库时指定字符集 CREATE DATABASE my_demo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 使用这个数据库 USE my_demo_db;3.创建两张有外键关系的表
先创建父表(主表)
-- 创建用户表(指定字符集) CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;再创建子表(从表)
-- 创建订单表(指定字符集) CREATE TABLE orders ( order_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, product_name VARCHAR(100) NOT NULL, amount DECIMAL(10, 2) NOT NULL, order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;4.查看创建的表结构
-- 查看所有表 SHOW TABLES; -- 查看表结构 DESCRIBE users; DESCRIBE orders; -- 或使用更详细的查看方式 SHOW CREATE TABLE users; SHOW CREATE TABLE orders;5.插入测试数据
-- 向users表插入数据 INSERT INTO users (username, email) VALUES ('张三', 'zhangsan@example.com'), ('李四', 'lisi@example.com'); -- 向orders表插入数据(注意:user_id必须存在于users表中) INSERT INTO orders (user_id, product_name, amount) VALUES (1, '笔记本电脑', 5999.99), (1, '鼠标', 89.50), (2, '手机', 2999.00), (2, '耳机', 399.00);6.验证外键关系
-- 查询关联数据 SELECT u.username, u.email, o.product_name, o.amount, o.order_date FROM users u JOIN orders o ON u.id = o.user_id; -- 测试外键约束(这应该会失败,因为user_id=999不存在) INSERT INTO orders (user_id, product_name, amount) VALUES (999, '测试产品', 100.00); -- 测试级联删除(删除用户时,其所有订单也会被删除) DELETE FROM users WHERE id = 1; -- 查看删除后的数据 SELECT * FROM users; SELECT * FROM orders;