diff --git a/application.zip b/application.zip new file mode 100644 index 0000000..ded3c13 Binary files /dev/null and b/application.zip differ diff --git a/mysql/README.md b/mysql/README.md new file mode 100644 index 0000000..3fc5124 --- /dev/null +++ b/mysql/README.md @@ -0,0 +1,45 @@ +各SQL文件存放内容的说明 + + + +1、mymanager.sql + +(1)创建表的SQL语句(CREATE TABLE); + +(2)新增数据的SQL语句(INSERT); + +(3)创建触发器的SQL语句(CREATE TRIGGER); + +(4)创建视图的SQL语句(CREATE VIEW); + +(5)创建用户的SQL语句(CREATE USER); + +(6)分配权限的SQL语句(GRANT)。 + +【依次对应课程设计报告】3.4,3.5.1,3.5.7,3.5.4,3.5.8 + + + +2、mymanager_select.sql + +查询的SQL语句(SELECT) + +【对应课程设计报告】3.5.2 + + + +3、mymanager_update.sql + +更新的SQL语句(UPDATE) + +【对应课程设计报告】3.5.3 UPDATE部分 + + + + +4、mymanager_delete.sql + +删除的SQL语句(DELETE) + +【对应课程设计报告】3.5.3 DELETE部分 + diff --git a/mysql/README.pdf b/mysql/README.pdf new file mode 100644 index 0000000..4fd9160 Binary files /dev/null and b/mysql/README.pdf differ diff --git a/mysql/mymanager.sql b/mysql/mymanager.sql new file mode 100644 index 0000000..8d01f73 --- /dev/null +++ b/mysql/mymanager.sql @@ -0,0 +1,586 @@ +DROP TABLE IF EXISTS `admin`; +CREATE TABLE `admin` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像', + `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色标识', + `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `unique_admin_username`(`username` ASC) USING BTREE, + UNIQUE INDEX `unique_admin_email`(`email` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员' ROW_FORMAT = DYNAMIC; + +INSERT INTO admin (id, username, password, name, avatar, role, phone, email) +VALUES +(1, 'flyao', 'admin', '姚昊', 'http://localhost:9090/files/1735014296914-下载.png', 'ADMIN', NULL, NULL), +(2, 'Yuki', '123', '梁羽睿', NULL, 'ADMIN', '15905487698', 'yuki.yr.liang@gmail.com'), +(3, '1', '123', '1', NULL, 'ADMIN', NULL, NULL), +(4, 'admin1', 'admin123', '李华', 'http://localhost:9090/files/1735014296915-下载1.png', 'ADMIN', '13900139000', 'lihua@example.com'), +(5, 'admin2', 'admin1234', '王丽', 'http://localhost:9090/files/1735014296916-下载2.png', 'ADMIN', '13700137000', 'wangli@example.com'), +(6, 'admin3', 'admin12345', '赵强', 'http://localhost:9090/files/1735014296917-下载3.png', 'ADMIN', '13600136000', 'zhaoqiang@example.com'), +(7, 'admin4', 'admin123456', '孙敏', 'http://localhost:9090/files/1735014296918-下载4.png', 'ADMIN', '13500135000', 'sunmin@example.com'), +(8, 'admin5', 'admin1234567', '周杰', 'http://localhost:9090/files/1735014296919-下载5.png', 'ADMIN', '13400134000', 'zhoujie@example.com'), +(9, 'admin6', 'admin12345678', '吴娜', 'http://localhost:9090/files/1735014296920-下载6.png', 'ADMIN', '13300133000', 'wuna@example.com'), +(10, 'admin7', 'admin123456789', '郑刚', 'http://localhost:9090/files/1735014296921-下载7.png', 'ADMIN', '13200132000', 'zhenggang@example.com'), +(11, 'admin8', 'admin1234567890', '钱丽', 'http://localhost:9090/files/1735014296922-下载8.png', 'ADMIN', '13100131000', 'qianli@example.com'), +(12, 'admin9', 'admin12345678901', '王明', 'http://localhost:9090/files/1735014296923-下载9.png', 'ADMIN', '13000130000', 'wangming@example.com'); + + + +DROP TABLE IF EXISTS `activity_publisher`; +CREATE TABLE `activity_publisher` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名称', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱地址', + `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话号码', + `organization` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '组织名称', -- 组织名称字段 + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '地址', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像图片', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `unique_publisher_username`(`username` ASC) USING BTREE, + UNIQUE INDEX `unique_publisher_email`(`email` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '活动发布者信息表' ROW_FORMAT = DYNAMIC; + +INSERT INTO `activity_publisher` (id, role, name, username, password, email, phone, organization, address, avatar) +VALUES +(1, 'ACTIVITY_PUBLISHER', '姚昊', 'flyao1', 'password123', NULL, NULL, '科技协会', '北京市朝阳区', NULL), +(2, 'ACTIVITY_PUBLISHER', '梁羽睿', 'Yuki1', 'password456', 'yuki.yr.liang@gmail.com', '15905487698', '水下社区', '上海市浦东新区', NULL), +(3, 'ACTIVITY_PUBLISHER', '张伟', 'zhangwei', 'password123', 'zhangwei@example.com', '13812345678', '珊瑚礁保护组织', '广州市天河区', 'http://localhost:9090/files/avatar1.png'), +(4, 'ACTIVITY_PUBLISHER', '李婷', 'liting', 'password456', 'liting@example.com', '13987654321', '海洋生物研究会', '杭州市西湖区', 'http://localhost:9090/files/avatar2.png'), +(5, 'ACTIVITY_PUBLISHER', '王芳', 'wangfang', 'password789', 'wangfang@example.com', '13798765432', '环保志愿者团队', '福建厦门', 'http://localhost:9090/files/avatar3.png'), +(6, 'ACTIVITY_PUBLISHER', '赵敏', 'zhaomin', 'password202', 'zhaomin@example.com', '13512345678', '潜水培训中心', '杭州市西湖区', 'http://localhost:9090/files/avatar5.png'), +(7, 'ACTIVITY_PUBLISHER', '张三', 'zhangsan', 'password203', 'zhangsanmin@example.com', '13512345671', '海洋科技公司', '湖北武汉', 'http://localhost:9090/files/avatar6.png'), +(8, 'ACTIVITY_PUBLISHER', '李四', 'lisi', 'password204', 'lisi@example.com', '13512345672', '海洋教育机构', '陕西西安', 'http://localhost:9090/files/avatar7.png'), +(9, 'ACTIVITY_PUBLISHER', '王五', 'wangwu', 'password205', 'wangwu@example.com', '13512345673', '海洋旅游公司', '重庆', 'http://localhost:9090/files/avatar8.png'), +(10, 'ACTIVITY_PUBLISHER', '孙六', 'sunliu', 'password206', 'sunliu@example.com', '13512345674', '深海探险队', '深圳', 'http://localhost:9090/files/avatar9.png'); + + + +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像', + `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色标识', + `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '性别', + `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', + `info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '简介', + `birth` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '生日', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `unique_username`(`username` ASC) USING BTREE, + UNIQUE INDEX `unique_email`(`email` ASC) USING BTREE, + CONSTRAINT `check_user_sex` CHECK (`sex` in (_utf8mb4'男',_utf8mb4'女')) +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息' ROW_FORMAT = DYNAMIC; + +INSERT INTO `user` (id, `username`, `password`, `name`, `avatar`, `role`, `sex`, `phone`, `email`, `info`, `birth`) +VALUES +(1, 'flyao2', 'password1', '姚昊', NULL, 'USER', '男', NULL, NULL, '热爱编程', '2002-03-27'), +(2, 'Yuki2', 'password2', '梁羽睿', NULL, 'USER', '女', NULL, NULL, '喜欢旅行', '2004-07-13'), +(3, 'user3', 'password3', '王五', 'http://example.com/avatar3.jpg', 'USER', '男', '13800138003', 'wangwu@example.com', '运动爱好者', '1994-03-03'), +(4, 'user4', 'password4', '赵六', 'http://example.com/avatar4.jpg', 'USER', '女', '13800138004', 'zhaoliu@example.com', '音乐发烧友', '1996-04-04'), +(5, 'user5', 'password5', '孙七', 'http://example.com/avatar5.jpg', 'USER', '男', '13800138005', 'sunqi@example.com', '电影迷', '1998-05-05'), +(6, 'user6', 'password6', '周八', 'http://example.com/avatar6.jpg', 'USER', '女', '13800138006', 'zhouba@example.com', '美食家', '2000-06-06'), +(7, 'user7', 'password7', '吴九', 'http://example.com/avatar7.jpg', 'USER', '男', '13800138007', 'wujiu@example.com', '摄影爱好者', '2002-07-07'), +(8, 'user8', 'password8', '郑十', 'http://example.com/avatar8.jpg', 'USER', '女', '13800138008', 'zhengshi@example.com', '读书达人', '2004-08-08'), +(9, 'user9', 'password9', '钱十一', 'http://example.com/avatar9.jpg', 'USER', '男', '13800138009', 'qianyiyi@example.com', '游戏控', '2006-09-09'), +(10, 'user10', 'password10', '王十二', 'http://example.com/avatar10.jpg', 'USER', '女', '13800138010', 'wangshizhi@example.com', '时尚博主', '2008-10-10'); + + + +DROP TABLE IF EXISTS `activity`; +CREATE TABLE `activity` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '活动名称', + `descr` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '活动简介', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '活动内容', + `start` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '开始时间', + `end` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '结束时间', + `form` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '活动形式', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '活动地址', + `host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '主办方', + `publisher_id` int NULL DEFAULT NULL COMMENT '活动发布人ID', + `read_count` int NULL DEFAULT 0 COMMENT '浏览量', + `cover` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '封面', + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_activity_publisher`(`publisher_id` ASC) USING BTREE, + CONSTRAINT `fk_activity_publisher` FOREIGN KEY (`publisher_id`) REFERENCES `activity_publisher` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '活动' ROW_FORMAT = DYNAMIC; + +-- 触发器1 +-- 创建插入触发器 +-- 插入数据时验证日期 +CREATE TRIGGER before_activity_insert +BEFORE INSERT ON `activity` +FOR EACH ROW +BEGIN + -- 比较 start 和 end 时间 + IF STR_TO_DATE(NEW.`end`, '%Y-%m-%d') < STR_TO_DATE(NEW.`start`, '%Y-%m-%d') THEN + SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '结束时间不能早于开始时间'; + END IF; +END; +-- 触发器2 +-- 创建更新触发器 +-- 更新数据时验证日期 +CREATE TRIGGER before_activity_update +BEFORE UPDATE ON `activity` +FOR EACH ROW +BEGIN + -- 比较 start 和 end 时间 + IF STR_TO_DATE(NEW.`end`, '%Y-%m-%d') < STR_TO_DATE(NEW.`start`, '%Y-%m-%d') THEN + SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '结束时间不能早于开始时间'; + END IF; +END; + +INSERT INTO `activity` (`id`, `name`, `descr`, `content`, `start`, `end`, `form`, `address`, `host`, `publisher_id`, `read_count`, `cover`) +VALUES + (1, '科技大会', '一场关于最新科技趋势的研讨会', '
详细内容...
', '2024-10-01', '2024-11-03', '线下', '科技中心会议厅', '科技协会', 1, 5, 'http://example.com/cover.jpg'), + (2, '水下摄影大赛', '欢迎各位潜水爱好者参加水下摄影大赛,展现您的拍摄技巧!', '活动内容包含水下摄影技巧比赛、交流讲座等内容。', '2025-01-10', '2025-01-12', '线下', '海南三亚', '水下社区', 2, 0, 'cover1.jpg'), + (3, '珊瑚礁清理行动', '参加我们的珊瑚礁清理行动,保护美丽的海洋环境。', '大家将一起清理水下垃圾,并进行环境保护宣传。', '2025-02-05', '2025-02-07', '线下', '广东珠海', '珊瑚礁保护组织', 3, 0, 'cover2.jpg'), + (4, '海洋生物观察', '观察海洋生物,了解海洋生态。', '活动内容包括海洋生物观察、知识讲座等。', '2025-03-15', '2025-03-17', '线下', '福建厦门', '海洋生物研究会', 4, 0, 'cover3.jpg'), + (5, '环保讲座', '了解环保知识,保护地球家园。', '活动内容包括环保知识讲座、互动问答等。', '2025-04-20', '2025-04-22', '线下', '浙江杭州', '环保志愿者团队', 5, 0, 'cover4.jpg'), + (6, '潜水培训', '学习潜水技巧,探索神秘海底世界。', '活动内容包括潜水理论学习、实操练习等。', '2025-05-25', '2025-05-27', '线下', '江苏南京', '潜水培训中心', 6, 0, 'cover5.jpg'), + (7, '海洋科技展览', '展示最新的海洋科技成果。', '活动内容包括科技成果展览、互动体验等。', '2025-06-30', '2025-07-02', '线下', '湖北武汉', '海洋科技公司', 7, 0, 'cover6.jpg'), + (8, '海洋教育研讨会', '探讨海洋教育的重要性。', '活动内容包括研讨会、案例分享等。', '2025-07-15', '2025-07-17', '线下', '陕西西安', '海洋教育机构', 8, 0, 'cover7.jpg'), + (9, '海洋旅游节', '体验海洋旅游的乐趣。', '活动内容包括海洋旅游节、特色表演等。', '2025-08-20', '2025-08-22', '线下', '重庆', '海洋旅游公司', 9, 0, 'cover8.jpg'), + (10, '深海探险', '探索未知的深海世界。', '活动内容包括深海探险、科研交流等。', '2025-09-25', '2025-09-27', '线下', '深圳', '深海探险队', 10, 0, 'cover9.jpg'); + + + +DROP TABLE IF EXISTS `activity_sign`; +CREATE TABLE activity_sign ( + id INT NOT NULL AUTO_INCREMENT COMMENT 'ID', + activity_id INT NOT NULL COMMENT '活动ID', + user_id INT NOT NULL COMMENT '用户ID', + time varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报名时间', + PRIMARY KEY (id) USING BTREE, + FOREIGN KEY (activity_id) REFERENCES activity(id) ON DELETE CASCADE ON UPDATE CASCADE, + FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '活动报名' ROW_FORMAT = DYNAMIC; + +INSERT INTO `activity_sign` (`activity_id`, `user_id`, `time`) +VALUES + (1, 1, '2023-09-30 10:00:00'), + (2, 2, '2024-12-23 11:00:00'), + (4, 3, '2024-12-15 12:00:00'), + (7, 4, '2024-12-23 13:00:00'), + (10, 5, '2024-12-24 14:00:00'), + (9, 6, '2023-09-29 15:00:00'), + (6, 7, '2024-12-22 16:00:00'), + (8, 8, '2024-12-14 17:00:00'), + (5, 9, '2024-12-22 18:00:00'), + (9, 10, '2024-12-23 19:00:00'); + + + +DROP TABLE IF EXISTS `category`; +CREATE TABLE `category` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名称', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `unique_category_name`(`name` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '博客分类' ROW_FORMAT = DYNAMIC; + +INSERT INTO `category` (`id`, `name`) +VALUES + (1, '科技'), + (2, '海洋'), + (3, '摄影'), + (4, '环保'), + (5, '生物'), + (6, '培训'), + (7, '教育'), + (8, '旅游'), + (10, '科学'), + (11, '探索'), + (12, '生态'), + (13, '活动'), + (14, '讲座'); + + + +DROP TABLE IF EXISTS `blog`; +CREATE TABLE `blog` ( + `id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID', + `title` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标题', + `content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容', + `descr` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '简介', + `cover` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '封面', + `tags` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标签', + `user_id` INT NOT NULL COMMENT '发布人ID', + `date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发布日期', + `read_count` INT NULL DEFAULT 0 COMMENT '浏览量', + `category_id` INT NOT NULL COMMENT '分类ID', + PRIMARY KEY (`id`) USING BTREE, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE, + FOREIGN KEY (`category_id`) REFERENCES `category`(`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '博客信息' ROW_FORMAT = DYNAMIC; + +INSERT INTO `blog` (`id`, `title`, `content`, `descr`, `cover`, `tags`, `user_id`, `date`, `read_count`, `category_id`) +VALUES + (1, '科技改变生活', '科技如何改变我们的生活...
', '科技对生活的影响', 'cover1.jpg', '科技,生活', 1, '2023-09-01', 100, 1), + (2, '海洋保护的重要性', '为什么保护海洋很重要...
', '海洋保护的重要性', 'cover2.jpg', '海洋,保护', 2, '2023-10-01', 150, 2), + (3, '水下摄影技巧', '如何拍摄美丽的水下照片...
', '水下摄影技巧', 'cover3.jpg', '摄影,水下', 3, '2023-11-01', 200, 3), + (4, '珊瑚礁保护', '如何保护珊瑚礁...
', '珊瑚礁保护', 'cover4.jpg', '珊瑚礁,保护', 4, '2023-12-01', 250, 4), + (5, '海洋生物观察', '如何观察海洋生物...
', '海洋生物观察', 'cover5.jpg', '海洋生物,观察', 5, '2024-01-01', 300, 5), + (6, '环保知识', '了解环保知识...
', '环保知识', 'cover6.jpg', '环保,知识', 6, '2024-02-01', 350, 4), + (7, '潜水培训', '如何学习潜水...
', '潜水培训', 'cover7.jpg', '潜水,培训', 7, '2024-03-01', 400, 6), + (8, '海洋科技', '最新的海洋科技成果...
', '海洋科技', 'cover8.jpg', '海洋,科技', 8, '2024-04-01', 450, 1), + (9, '海洋教育', '海洋教育的重要性...
', '海洋教育', 'cover9.jpg', '教育,海洋', 9, '2024-05-01', 500, 7), + (10, '海洋旅游', '如何体验海洋旅游...
', '海洋旅游', 'cover10.jpg', '旅游,海洋', 10, '2024-06-01', 550, 8); + + + +DROP TABLE IF EXISTS `collect`; +CREATE TABLE `collect` ( + `id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID', + `fid` INT NOT NULL COMMENT '关联ID', -- 关联ID,标识被收藏的内容 + `user_id` INT NOT NULL COMMENT '收藏人ID', -- 用户ID,标识收藏内容的用户 + `module` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块', + PRIMARY KEY (`id`) USING BTREE, + FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 50 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '收藏表' ROW_FORMAT = DYNAMIC; + +INSERT INTO `collect` (`fid`, `user_id`, `module`) +VALUES + (2, 1, 'blog'), + (4, 2, 'blog'), + (1, 3, 'blog'), + (7, 4, 'blog'), + (6, 5, 'blog'), + (10, 6, 'blog'), + (3, 7, 'blog'), + (5, 8, 'blog'), + (8, 9, 'blog'), + (9, 10, 'blog'); + + + +DROP TABLE IF EXISTS `comment`; +CREATE TABLE `comment` ( + `id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID', + `content` VARCHAR(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容', + `user_id` INT NOT NULL COMMENT '评论人', + `pid` INT DEFAULT NULL COMMENT '父级ID', + `root_id` INT DEFAULT NULL COMMENT '根节点ID', + `time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '评论时间', + `fid` INT NOT NULL COMMENT '关联ID', + `module` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块', + PRIMARY KEY (`id`) USING BTREE, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE, + FOREIGN KEY (`pid`) REFERENCES `comment`(`id`) ON DELETE CASCADE ON UPDATE CASCADE, + FOREIGN KEY (`root_id`) REFERENCES `comment`(`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论表' ROW_FORMAT = DYNAMIC; + +INSERT INTO `comment` (`id`, `content`, `user_id`, `pid`, `root_id`, `time`, `fid`, `module`) +VALUES + (1, '非常有趣的文章!', 1, NULL, 1, '2023-09-02 10:00:00', 2, 'blog'), + (2, '谢谢分享!', 2, NULL, 2, '2023-10-02 11:00:00', 3, 'blog'), + (3, '很有启发!', 3, NULL, 3, '2023-11-02 12:00:00', 1, 'blog'), + (4, '非常有用的信息!', 4, NULL, 4, '2023-12-02 13:00:00', 10, 'blog'), + (5, '感谢作者!', 5, NULL, 5, '2024-01-02 14:00:00', 8, 'blog'), + (6, '非常详细!', 6, NULL, 6, '2024-02-02 15:00:00', 5, 'blog'), + (7, '很好的内容!', 7, NULL, 7, '2024-03-02 16:00:00', 6, 'blog'), + (8, '非常感谢!', 8, NULL, 8, '2024-04-02 17:00:00', 9, 'blog'), + (9, '很有帮助!', 9, NULL, 9, '2024-05-02 18:00:00', 4, 'blog'), + (10, '非常棒!', 10, NULL, 10, '2024-06-02 19:00:00', 10, 'blog'); + + + +DROP TABLE IF EXISTS `likes`; +CREATE TABLE `likes` ( + `id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID', + `fid` INT NOT NULL COMMENT '关联ID', + `user_id` INT NOT NULL COMMENT '点赞人ID', + `module` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块', + PRIMARY KEY (`id`) USING BTREE, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 62 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '点赞' ROW_FORMAT = DYNAMIC; + +INSERT INTO `likes` (`fid`, `user_id`, `module`) +VALUES + (2, 1, 'blog'), + (6, 2, 'blog'), + (7, 3, 'blog'), + (9, 4, 'blog'), + (1, 5, 'blog'), + (3, 6, 'blog'), + (4, 7, 'blog'), + (10, 8, 'blog'), + (8, 9, 'blog'), + (5, 10, 'blog'); + + + +DROP TABLE IF EXISTS `notice`; +CREATE TABLE `notice` ( + `id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID', + `title` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标题', + `content` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容', + `time` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建时间', -- 修改为 NOT NULL + `user` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公告信息表' ROW_FORMAT = DYNAMIC; + +INSERT INTO `notice` (`title`, `content`, `time`, `user`) +VALUES + ('系统维护通知', '系统将于2024-12-31进行维护,预计持续2小时。', '2024-12-30', 'flyao'), + ('新年活动预告', '新年活动即将开始,详情请关注活动页面。', '2024-12-25', 'Yuki'), + ('重要安全更新', '请尽快更新您的密码以确保账户安全。', '2024-12-20', 'flyao'), + ('用户反馈收集', '我们正在收集用户反馈,请参与我们的问卷调查。', '2024-12-15', 'Yuki'), + ('活动延期通知', '原定于2024-12-18的活动延期至2025-01-01。', '2024-12-10', 'Yuki'), + ('系统升级通知', '系统将在2024-12-05进行升级,预计持续1小时。', '2024-12-04', 'flyao'), + ('活动报名提醒', '请尽快完成活动报名,名额有限。', '2024-11-30', 'admin1'), + ('新功能上线', '我们的新功能已上线,欢迎体验!', '2024-11-25', 'admin4'), + ('隐私政策更新', '我们更新了隐私政策,请查阅最新版本。', '2024-11-20', 'admin5'), + ('用户满意度调查', '我们正在进行用户满意度调查,期待您的宝贵意见。', '2024-11-15', 'admin6'); + + + +-- 触发器3 +DELIMITER $$ + +DROP TRIGGER IF EXISTS `after_blog_delete`; +CREATE TRIGGER `after_blog_delete` +AFTER DELETE ON `blog` +FOR EACH ROW +BEGIN + -- 删除 collect 表中与删除的 blog 记录关联的记录 + DELETE FROM `collect` WHERE `fid` = OLD.id AND `module` = 'blog'; + + -- 删除 likes 表中与删除的 blog 记录关联的记录 + DELETE FROM `likes` WHERE `fid` = OLD.id AND `module` = 'blog'; + + -- 删除 comment 表中与删除的 blog 记录关联的记录 + DELETE FROM `comment` WHERE `fid` = OLD.id AND `module` = 'blog'; +END $$ + +DELIMITER ; + + + +-- 触发器4 +DELIMITER $$ + +DROP TRIGGER IF EXISTS `after_activity_delete`; +CREATE TRIGGER after_activity_delete +AFTER DELETE ON `activity` +FOR EACH ROW +BEGIN + -- 删除 activity_sign 表中与删除的 activity 相关的记录 + -- DELETE FROM `activity_sign` WHERE `activity_id` = OLD.id; + + -- 删除 collect 表中与删除的 activity 相关的记录 + DELETE FROM `collect` WHERE `fid` = OLD.id AND `module` = 'activity'; + + -- 删除 likes 表中与删除的 activity 相关的记录 + DELETE FROM `likes` WHERE `fid` = OLD.id AND `module` = 'activity'; + + -- 删除 comment 表中与删除的 activity 相关的记录 + DELETE FROM `comment` WHERE `fid` = OLD.id AND `module` = 'activity'; +END$$ + +DELIMITER ; + + + +-- 触发器5 +DELIMITER $$ + +DROP TRIGGER IF EXISTS `after_admin_delete`; +CREATE TRIGGER after_admin_delete +AFTER DELETE ON `admin` +FOR EACH ROW +BEGIN + -- 删除 notice 表中与删除的 admin 用户相关的记录 + DELETE FROM `notice` WHERE `user` = OLD.username; +END$$ + +DELIMITER ; + + + +-- 视图1 +-- 博客分类 +DROP VIEW IF EXISTS view_category_list; +CREATE VIEW view_category_list AS +SELECT + id AS `序号`, + name AS `分类名称` +FROM + category; + +-- 视图2 +-- 博客信息 +DROP VIEW IF EXISTS blog_view; +CREATE VIEW blog_view AS +SELECT + b.id AS `序号`, + b.title AS `标题`, + b.descr AS `简介`, + b.cover AS `封面`, + c.name AS `分类`, + b.tags AS `标签`, + u.username AS `发布人`, + b.date AS `发布日期`, + b.read_count AS `浏览量` +FROM blog b +JOIN user u ON b.user_id = u.id +JOIN category c ON b.category_id = c.id; + +-- 视图3 +-- 活动信息 +DROP VIEW IF EXISTS activity_view; +CREATE VIEW activity_view AS +SELECT + a.id AS `序号`, + a.name AS `活动名称`, + a.descr AS `活动简介`, + a.cover AS `封面`, + a.start AS `开始时间`, + a.end AS `结束时间`, + a.form AS `活动形式`, + a.address AS `活动地址`, + ap.name AS `活动发布人`, + a.host AS `主办方`, + a.read_count AS `浏览量` +FROM activity a +JOIN activity_publisher ap ON a.publisher_id = ap.id; + +-- 视图4 +-- 评论信息 +DROP VIEW IF EXISTS comment_view; +CREATE VIEW comment_view AS +SELECT + c.id AS `序号`, + c.content AS `内容`, + c.user_id AS `评论人ID`, + u.name AS `评论人`, + c.pid AS `父级ID`, + c.root_id AS `根节点ID`, + c.time AS `评论时间`, + c.fid AS `关联ID`, + c.module AS `模块` +FROM comment c +JOIN user u ON c.user_id = u.id; + +-- 视图5 +-- 活动报名信息 +DROP VIEW IF EXISTS activity_sign_view; +CREATE VIEW activity_sign_view AS +SELECT + s.id AS `序号`, + a.id AS `活动ID`, + a.name AS `活动名称`, + u.id AS `报名人ID`, + u.username AS `报名人`, + s.time AS `报名时间` +FROM + activity_sign s +JOIN + activity a ON s.activity_id = a.id +JOIN + user u ON s.user_id = u.id; + +-- 视图6 +-- 公告信息 +DROP VIEW IF EXISTS notice_view; +CREATE VIEW notice_view AS +SELECT + n.id AS `序号`, + n.title AS `标题`, + n.content AS `内容`, + n.time AS `创建时间`, + n.user AS `创建人` +FROM + notice n; + +-- 视图7 +-- 管理员信息 +DROP VIEW IF EXISTS admin_view; +CREATE VIEW admin_view AS +SELECT + ad.id AS `序号`, + ad.username AS `账号`, + ad.name AS `姓名`, + ad.phone AS `电话`, + ad.email AS `邮箱`, + ad.avatar AS `头像`, + ad.role AS `角色` +FROM + admin ad; + +-- 视图8 +-- 用户信息 +DROP VIEW IF EXISTS user_view; +CREATE VIEW user_view AS +SELECT + u.id AS `序号`, + u.username AS `账号`, + u.name AS `姓名`, + u.phone AS `电话`, + u.email AS `邮箱`, + u.avatar AS `头像`, + u.sex AS `性别`, + u.info AS `个人简介`, + u.birth AS `生日`, + u.role AS `角色` +FROM + user u; + +-- 视图9 +-- 活动发布人信息 +DROP VIEW IF EXISTS activity_publisher_view; +CREATE VIEW activity_publisher_view AS +SELECT + ap.id AS `序号`, + ap.username AS `账号`, + ap.name AS `姓名`, + ap.phone AS `电话`, + ap.email AS `邮箱`, + ap.organization AS `所在单位`, + ap.address AS `地址`, + ap.avatar AS `头像`, + ap.role AS `角色` +FROM + activity_publisher ap; + + + +-- 权限设置 +-- 创建用户 +DROP USER IF EXISTS 'admin'@'localhost'; +CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_password'; +DROP USER IF EXISTS 'user'@'localhost'; +CREATE USER 'user'@'localhost' IDENTIFIED BY 'user_password'; +DROP USER IF EXISTS 'activity_publisher'@'localhost'; +CREATE USER 'activity_publisher'@'localhost' IDENTIFIED BY 'activity_publisher_password'; + +-- 分配管理员权限 +GRANT ALL PRIVILEGES ON mymanager.* TO 'admin'@'localhost'; + +-- 分配普通用户权限 +GRANT SELECT ON mymanager.blog TO 'user'@'localhost'; +GRANT SELECT ON mymanager.comment TO 'user'@'localhost'; +GRANT SELECT ON mymanager.user TO 'user'@'localhost'; +GRANT INSERT ON mymanager.activity_sign TO 'user'@'localhost'; +GRANT INSERT ON mymanager.comment TO 'user'@'localhost'; +GRANT INSERT ON mymanager.collect TO 'user'@'localhost'; +GRANT UPDATE ON mymanager.user TO 'user'@'localhost'; +GRANT DELETE ON mymanager.comment TO 'user'@'localhost'; +GRANT DELETE ON mymanager.activity_sign TO 'user'@'localhost'; + +-- 分配活动发布人权限 +GRANT SELECT, INSERT, UPDATE, DELETE ON mymanager.activity TO 'activity_publisher'@'localhost'; + +-- 刷新权限 +FLUSH PRIVILEGES; + diff --git a/mysql/mymanager_delete.sql b/mysql/mymanager_delete.sql new file mode 100644 index 0000000..50170f3 --- /dev/null +++ b/mysql/mymanager_delete.sql @@ -0,0 +1,66 @@ +-- 1. 删除活动报名记录 +-- 需求:删除用户 ID 为 5 报名的所有活动。 +DELETE FROM activity_sign +WHERE user_id = 5; + +-- 2. 删除特定用户的评论 +-- 需求:删除用户 ID 为 8 所有的评论记录。(将ID改为用户名称,则该功能已经实现) +DELETE FROM comment +WHERE user_id = 8; + +-- 3. 删除过期的活动 +-- 需求:删除所有结束时间在当前时间之前的活动。 +DELETE FROM activity +WHERE end < NOW(); + +-- 4. 删除无效的博客 +-- 需求:删除所有浏览量为 0 且发布日期超过 1 年的博客。 +DELETE FROM blog +WHERE read_count = 0 AND date < NOW() - INTERVAL 1 YEAR; + +-- 5. 删除发布人ID为2的活动 +-- 需求:删除发布人ID为2的活动。 +DELETE FROM activity +WHERE publisher_id = 2; + +-- 6. 删除特定博客分类下的所有博客 +-- 需求:删除分类为 "深海探险" 的所有博客。 +DELETE FROM blog +WHERE category_id = (SELECT id FROM category WHERE name = '深海探险'); + +-- 7. 删除评论中的指定内容 +-- 需求:删除所有评论内容包含敏感词 "禁止" 的评论。 +DELETE FROM comment +WHERE content LIKE '%非常%'; + +-- 8. 删除用户的数据 +-- 需求:删除用户名为 testuser 的用户及其相关数据(包括博客、评论、收藏)。 +DELETE FROM blog +WHERE user_id = (SELECT id FROM user WHERE username = 'testuser'); +DELETE FROM comment +WHERE user_id = (SELECT id FROM user WHERE username = 'testuser'); +DELETE FROM collect +WHERE user_id = (SELECT id FROM user WHERE username = 'testuser'); +DELETE FROM user +WHERE username = 'testuser'; + +-- 9. 删除过期的收藏记录 +-- 需求:删除所有收藏的活动或博客,如果它们对应的活动或博客已经被删除。 +DELETE FROM collect +WHERE (fid, module) NOT IN (SELECT id, 'activity' FROM activity UNION SELECT id, 'blog' FROM blog); + +-- 10. 删除不活跃的用户 +-- 需求:删除没有任何活动(报名、评论等)的用户数据。 +DELETE FROM user +WHERE id IN ( + SELECT id + FROM ( + SELECT u.id + FROM user u + LEFT JOIN activity_sign a ON u.id = a.user_id + LEFT JOIN comment c ON u.id = c.user_id + WHERE a.user_id IS NULL OR c.user_id IS NULL + ) AS temp_ids +); + + diff --git a/mysql/mymanager_select.sql b/mysql/mymanager_select.sql new file mode 100644 index 0000000..1ec6473 --- /dev/null +++ b/mysql/mymanager_select.sql @@ -0,0 +1,134 @@ +-- 比较条件查询 +-- 查询需求 1: 查询所有活动的开始时间在 2024-01-01 之后的活动信息 +SELECT id, name, start, end, host +FROM activity +WHERE start > '2024-01-01'; + +-- 查询需求 2: 查询所有用户的生日在 1990 年至 2000 年之间的用户信息。 +SELECT id, username, name, birth +FROM user +WHERE birth BETWEEN '1990-01-01' AND '2000-12-31'; + + + +-- 集合比较查询 +-- 查询需求 3: 查询没有报名任何活动的用户信息。 +SELECT id, username, name +FROM user +WHERE id NOT IN (SELECT user_id FROM activity_sign); + +-- 查询需求 4: 查询所有已报名但尚未开始的活动的用户信息。 +SELECT u.id, u.username, u.name +FROM user u +WHERE u.id IN ( + SELECT user_id + FROM activity_sign + WHERE activity_id IN ( + SELECT id + FROM activity + WHERE start > NOW() + ) +); + + + +-- 范围比较查询 +-- 查询需求 5: 查询所有浏览量在 100 到 1000 之间的博客 +SELECT id, title, read_count +FROM blog +WHERE read_count BETWEEN 100 AND 1000; + +-- 查询需求 6: 查询所有活动的结束时间在当前时间前 30 天至 90 天之间的活动 +SELECT id, name, start, end +FROM activity +WHERE end BETWEEN NOW() - INTERVAL 90 DAY AND NOW() - INTERVAL 30 DAY; + + + +-- 字符串相似比较查询 +-- 查询需求 7: 查询所有包含 "海洋" 字样的博客标题 +SELECT id, title +FROM blog +WHERE title LIKE '%海洋%'; + +-- 查询需求 8: 查询所有用户名包含 "潜水" 的用户信息 +SELECT id, username, name +FROM user +WHERE username LIKE '%潜水%'; + +-- 多表连接查询 +-- 查询需求 9: 查询所有报名了活动的用户及其对应的活动信息 +SELECT u.username, u.name, a.name AS activity_name, a.start +FROM user u +JOIN activity_sign s ON u.id = s.user_id +JOIN activity a ON s.activity_id = a.id; + +-- 查询需求 10: 查询所有博客及其所属分类名称 +SELECT b.title, c.name AS category_name +FROM blog b +JOIN category c ON b.category_id = c.id; + +-- 嵌套查询 +-- 查询需求 11: 查询所有用户的名字和邮箱,前提是该用户已报名了某个活动 +SELECT username, email +FROM user +WHERE id IN (SELECT user_id FROM activity_sign); + +-- 查询需求 12: 查询所有已发布的博客信息,前提是该博客所属的分类名称为 "水下摄影" +SELECT title, content, date +FROM blog +WHERE category_id = (SELECT id FROM category WHERE name = '水下摄影'); + + + +-- EXISTS 查询 +-- 查询需求 13: 查询所有有报名活动的用户信息。 +SELECT username, name +FROM user u +WHERE EXISTS (SELECT 1 FROM activity_sign s WHERE s.user_id = u.id); +-- 查询需求 14: 查询所有有发布博客的用户信息。 +SELECT username, name +FROM user u +WHERE EXISTS (SELECT 1 FROM blog b WHERE b.user_id = u.id); + +-- 排序查询 +-- 查询需求 15: 查询浏览量最高的前 5 篇博客。 +SELECT id, title, read_count +FROM blog +ORDER BY read_count DESC +LIMIT 5; + +-- 查询需求 16: 查询活动表中按活动开始时间升序排列的前 10 个活动。 +SELECT id, name, start, end +FROM activity +ORDER BY start ASC +LIMIT 10; + + +-- 聚合查询 +-- 查询需求 17: 查询每个活动的报名人数。 +SELECT a.name, COUNT(s.id) AS sign_up_count +FROM activity a +LEFT JOIN activity_sign s ON a.id = s.activity_id +GROUP BY a.id; + +-- 查询需求 18: 查询每个分类下的博客数量。 +SELECT c.name AS category_name, COUNT(b.id) AS blog_count +FROM category c +LEFT JOIN blog b ON c.id = b.category_id +GROUP BY c.id; + + + +-- 分组查询 +-- 查询需求 19: 查询每个用户参与的活动数量 +SELECT u.username, COUNT(s.id) AS sign_up_count +FROM user u +LEFT JOIN activity_sign s ON u.id = s.user_id +GROUP BY u.id; + +-- 查询需求 20: 查询每个分类下平均的博客浏览量。 +SELECT c.name AS category_name, AVG(b.read_count) AS avg_read_count +FROM category c +LEFT JOIN blog b ON c.id = b.category_id +GROUP BY c.id; \ No newline at end of file diff --git a/mysql/mymanager_update.sql b/mysql/mymanager_update.sql new file mode 100644 index 0000000..af6e1ba --- /dev/null +++ b/mysql/mymanager_update.sql @@ -0,0 +1,60 @@ +-- 1、更新用户的密码 +-- 将用户名为 user123 的用户密码修改为新的密码 newpassword123。 +UPDATE user +SET password = 'newpassword123' +WHERE username = 'user123'; + +-- 2. 更新活动的主办方信息 +-- 需求:将活动 ID 为 3 的活动主办方更新为 深海探险俱乐部。 +UPDATE activity +SET host = '深海探险俱乐部' +WHERE id = 3; + +-- 3. 更新博客的浏览量 +-- 需求:将博客 ID 为 10 的博客的浏览量增加 100。 +UPDATE blog +SET read_count = read_count + 100 +WHERE id = 10; + +-- 4. 更新用户的头像 +-- 需求:将用户名为 jack123 的用户头像修改为新的 URL。 +UPDATE user +SET avatar = 'https://example.com/images/jack123_avatar.jpg' +WHERE username = 'jack123'; + +-- 5. 更新活动的结束时间 +-- 需求:将活动 ID 为 5 的活动结束时间修改为 2025-12-31。 +UPDATE activity +SET end = '2025-12-31' +WHERE id = 5; + + +-- 6. 更新博客内容 +-- 需求:将博客 ID 为 7 的博客内容更新为新的文章内容。 +UPDATE blog +SET content = '这是更新后的博客内容,包含新的视频和照片。' +WHERE id = 7; + +-- 7. 更新用户的联系方式 +-- 需求:将用户 ID 为 3 的用户的电话修改为新的号码 13800001111。 +UPDATE user +SET phone = '13800001111' +WHERE id = 3; + +-- 8. 更新活动的封面图 +-- 需求:将活动 ID 为 8 的封面图修改为新的封面图片 URL。 +UPDATE activity +SET cover = 'https://example.com/images/new_cover.jpg' +WHERE id = 8; + +-- 9. 更新评论的内容 +-- 需求:将评论 ID 为 2 的评论内容修改为新的评论内容。 +UPDATE comment +SET content = '这是更新后的评论内容,提出了更多问题。' +WHERE id = 2; + +-- 10. 更新博客的标签 +-- 需求:将博客 ID 为 14 的博客标签更新为 ['水下摄影', '海洋探险']。 +UPDATE blog +SET tags = '水下摄影, 海洋探险' +WHERE id = 14; \ No newline at end of file