news 2025/12/31 11:06:30

在MySQL中创建数据库和表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在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;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/27 3:13:59

基于 (java) validation-api、hibernate-validator 的数据校验扩展

在Java 开发中,数据校验是保证系统健壮性和数据完整性的重要环节。validation-api和hibernate-validator功能强大,在这个基础上,做了一些检验简单扩展处理,在处理复杂业务场景时提供一些支持。 项目简介 brilliant-validation是…

作者头像 李华
网站建设 2025/12/16 15:19:51

GPT-OSS-20B性能对比:低延迟与高效推理解析

GPT-OSS-20B性能解析:如何在16GB设备上跑出类GPT-4的推理表现? 你有没有遇到过这样的场景:本地部署一个“轻量级”大模型,结果显存爆了、响应慢如蜗牛、生成内容还经常卡壳?这几乎是每个尝试将大模型落地到消费级硬件…

作者头像 李华
网站建设 2025/12/30 3:57:50

C#通过HTTP请求调用GPT-SoVITS WebUI接口

C#通过HTTP请求调用GPT-SoVITS WebUI接口 在AI语音技术迅速渗透内容创作、智能交互和个性化服务的今天,越来越多开发者希望将高质量语音合成功能集成到自己的应用中。传统方案往往依赖昂贵的商业API或复杂的模型部署流程,而开源项目 GPT-SoVITS 的出现打…

作者头像 李华
网站建设 2025/12/16 15:18:58

HuggingFace镜像加速下载Seed-Coder-8B模型

本地化代码助手的起点:高效获取 Seed-Coder-8B 模型 在千兆宽带普及、算力触手可及的今天,真正卡住我们落地 AI 编程助手的,往往不是显卡不够强,而是——连不上模型仓库。 当你兴冲冲地打开终端,准备从 Hugging Face 下…

作者头像 李华
网站建设 2025/12/16 15:18:47

专业解析:泳池刷的面漆如何兼顾美观与耐用?

许多业主和管理方都困惑游泳池刷的什么漆才能既美观又耐用。作为水上游乐地坪的专业从业者,我去年亲自跟进过数十个泳池翻新项目,发现选择合适的装饰面漆至关重要。 装饰面漆的核心功能 游泳池刷的什么漆直接关系到整体视觉效果。传统材料容易褪色开裂。…

作者头像 李华
网站建设 2025/12/16 15:18:37

LobeChat能否获得赞助?Open Collective使用指南

LobeChat能否获得赞助?Open Collective使用指南 在今天的开源世界里,一个项目能不能“活下去”,早已不再只取决于代码写得有多漂亮。越来越多的优秀工具因为缺乏持续投入而逐渐沉寂——不是没人用,而是开发者撑不下去了。 LobeCha…

作者头像 李华