当前位置: 首页 > news >正文

在MySQL中创建数据库和表

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;
http://www.cnnetsun.cn/news/86754.html

相关文章:

  • 基于深度学习的植物病害检测系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)
  • Stable Diffusion 3.5本地部署指南与一键整合包
  • Wan2.2-T2V-A14B本地部署与多GPU推理指南
  • 基于深度学习的跌倒检测系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)
  • 构建个性化AI助手:LobeChat + 开源大模型完美组合
  • 免费守护网站安全:精选一年期SSL证书获取攻略
  • 私有化部署AI知识库——Anything-LLM企业级解决方案详解
  • 如何利用PaddlePaddle和清华源快速搭建高性能NLP训练环境
  • NVIDIA TensorRT镜像安装包下载与CUDA安装全攻略
  • kotaemon配置全解析:轻松定制文档问答系统
  • ACE-Step:开源生成式AI音乐模型解析
  • Seed-Coder-8B-Base能否辅助编写Istio AuthorizationPolicy?
  • Langflow本地部署:解决pip安装卡顿问题
  • LobeChat如何应对高并发请求?压力测试结果公布
  • LobeChat能否组织线上讲座?知识传播新形式
  • Qwen3-VL-8B如何实现近实时视频分析?
  • ACE-Step:开源生成式AI音乐大模型详解
  • LobeChat能否写作小说?创意灵感激发神器
  • Java大厂面试实录:面试官与谢飞机的爆笑对战
  • Bootstrap:随机森林的“多样性引擎”与量化利器
  • 块状Bootstrap:让金融时间序列“记忆”不丢失的魔法
  • 利用清华源加速TensorRT相关依赖的npm安装过程
  • 跨界转型AI产品经理:非算法专业出身的成功之道,揭秘大模型时代的新机遇!
  • 小学物理竞赛考试题目要点
  • Qwen3-VL-30B GPU配置与显存优化全指南
  • Excalidraw Webhook事件机制实现外部系统联动
  • 乔家大院漫游记:在晋商老宅里读懂百年风华
  • Langchain-Chatchat源码部署与Ollama集成
  • 全球USB厂商及设备ID完整列表
  • 2001-2020年全球总初级生产力数据(逐小时/0.1°分辨率)