use mydb2
--1:用户表,存储博主和评论者信息
create table users(
id int primary key auto_increment comment '用户ID,主键',
username varchar(50) not null unique comment '用户名,唯一',
email varchar(100) not null unique comment '邮箱,唯一',
password_hash varchar(225) not null comment '加密后的密码',
avatar_url varchar(255) default '' comment '头像图片链接',
created_at TIMESTAMP default CURRENT_TIMESTAMP comment '创建时间'
)comment '用户表'
--2:文章表,存储博客文章
create table posts(
id int primary key auto_increment comment '文章ID,主键',
user_id int not null comment '作者ID,关联users.id',
title varchar(200) not null comment '文章标题',
content TEXT not null comment '文章正文',
summary varchar(500) comment '文章摘要',
view_count int default 0 comment '阅读数',
status ENUM('draft','published') default 'draft' comment '状态:草稿,已发布',
created_at TIMESTAMP default current_timestamp comment '创建时间',
updated_at TIMESTAMP default current_timestamp on update current_timestamp comment '最后更新时间',
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ---键约束:用户删除则文章级联删除
) comment '文章表'
--3:评论表:存储对文章的评论
create table comments(
id int primary key auto_increment comment '评论ID,主键',
post_id int not null comment '所属文章ID,关联posts.id',
user_id int not null comment '评论者ID,关联users.id',
content TEXT not null comment '评论内容',
parent_id int default null comment '父评论ID(用于回复功能),自关联',
created_at TIMESTAMP default current_TIMESTAMP COMMENT '创建时间',
foreign key(user_id) references posts(id) on delete caseade, -- 文章删除则评论级联删除
foreign key(user_id) references users(id) on delete caseade -- 用户删除则评论级联删除
)comment '评论表'
-- 1. 插入模拟数据
INSERT INTO users (username, email, password_hash) VALUES
('小明', 'xiaoming@example.com', 'hash_of_password_123'),
('技术博主', 'tech@example.com', 'hash_of_password_456');
INSERT INTO posts (user_id, title, content, status) VALUES
(1, '我的第一篇博客', '今天天气真好,我开始写博客了...', 'published'),
(2, 'MySQL入门指南', '关系型数据库是Web开发的基石...', 'published'),
(2, '未完成的草稿', '这是一个还在构思中的文章...', 'draft');
INSERT INTO comments (post_id, user_id, content) VALUES
(1, 2, '欢迎加入博客圈!'),
(2, 1, '写得非常清晰,对我帮助很大!'),
(2, 2, '谢谢支持,欢迎持续关注。');
---基础查询练习
--查询所有已经发布的文章(按发布时间倒序)
select * from posts where status = 'published' order by created_at desc
MYSQL开发- (1)
m0_598177232026-01-08 8:24
相关推荐
de之梦-御风1 分钟前
【电视投屏】针对“局域网投屏开源项目(Android 手机 ↔ Android TV)北辰当尹8 分钟前
【实习之旅】Kali虚拟机桥接模式ping通百度Just Dreamchaser14 分钟前
Pdf和Docx文件导出生成水印工具类这个需求做不了16 分钟前
Java实现文件格式转换(图片,视频,文档,音频)threelab16 分钟前
Merge3D 三维引擎中 GeoJSON 数据加载的整体设计愿你天黑有灯下雨有伞20 分钟前
高性能Java并发编程:如何优雅地使用CompletableFuture进行异步编排indexsunny21 分钟前
互联网大厂Java面试实战:基于电商场景的Spring Boot与微服务技术问答qq_124987075322 分钟前
基于Spring Boot的电影票网上购票系统的设计与实现(源码+论文+部署+安装)无心水24 分钟前
【分布式利器:腾讯TSF】6、TSF可观测性体系建设实战:Java全链路Metrics+Tracing+Logging落地小鸡脚来咯26 分钟前
Java字符串详解