多值并列求最大者策略,要使用exists

本文介绍了一种在数据库中管理文档上传的方法,并提供了一个具体的SQL查询案例,用于展示如何高效地查询已上传文档的状态。

在做二岸快捷之时,因为用户要上传文档,怎么办啊?我在数据库里做了多个值,反正的的便保存,未上传者便为空。

Full Texts idAscending number hblfile hbltxlfile mblfile mbltxlfile loadingfile op input
Edit Delete 12012050002222222
Edit Delete 62012050002120522-09-53-520.xls41101020120522095352
Edit Delete 72012050002Yes1101020120522095352
Edit Delete 82012050002120522-09-53-521.php1101020120522095352
Edit Delete 92012050002dfdfdf66
Edit Delete 102012050002dfaffffaafsf

查询是,灵感源于此。 点击打开链接


select * from attfile A where not exists (selct * from attfile where num
ber=A.number and hbltxlfile > A.hbltxlfile)//
+----+------------+---------+------------+---------+------------+----------
------+----------------+
| id | number     | hblfile | hbltxlfile | mblfile | mbltxlfile | loadingfi
op    | input          |
+----+------------+---------+------------+---------+------------+----------
------+----------------+
|  7 | 2012050002 |         | Yes        |         |            |
11010 | 20120522095352 |
+----+------------+---------+------------+---------+------------+----------
------+----------------+
1 row in set (0.00 sec)


mysql>


1. 建库建表 -- 创建数据库 CREATE DATABASE IF NOT EXISTS `exercise_db`; USE `exercise_db`; -- 创建学生表 CREATE TABLE `students` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(50) NOT NULL, `age` INT NOT NULL, `major` VARCHAR(50) NOT NULL ); -- 创建课程表 CREATE TABLE `courses` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `course_name` VARCHAR(100) NOT NULL, `teacher_name` VARCHAR(50) NOT NULL ); -- 创建成绩表,包含学生ID和课程ID作为外键 CREATE TABLE `scores` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `student_id` INT, `course_id` INT, `score` DECIMAL(5, 2) NOT NULL, FOREIGN KEY (`student_id`) REFERENCES `students`(`id`) ON DELETE CASCADE, FOREIGN KEY (`course_id`) REFERENCES `courses`(`id`) ON DELETE CASCADE ); 2. 数据录入 -- 插入学生数据 INSERT INTO `students` (`name`, `age`, `major`) VALUES ('张三', 20, '计算机科学'), ('李四', 21, '机械工程'), ('王五', 19, '计算机科学'), ('赵六', 22, '电子工程'); -- 插入课程数据 INSERT INTO `courses` (`course_name`, `teacher_name`) VALUES ('数据库原理', '王老师'), ('算法与数据结构', '李老师'), ('计算机网络', '张老师'), ('操作系统', '赵老师'); -- 插入成绩数据 INSERT INTO `scores` (`student_id`, `course_id`, `score`) VALUES (1, 1, 90.50), (1, 2, 85.00), (2, 1, 78.00), (2, 3, 92.00), (3, 2, 88.00), (3, 4, 76.00), (4, 1, 95.00), (4, 3, 82.00); 3. 练习题 (1) 查询所有学生的姓名和年龄。 (2) 查询年龄大于20岁的学生。 (3) 查询计算机科学专业的学生。 (4) 查询所有课程的名称和对应的老师。 (5) 查询张三的所有课程成绩。 (6) 查询所有年龄最小的学生。 (7) 查询年龄最大的学生及其年龄。 (8) 查询每个课程的平均成绩。 (9) 查询成绩高于90分的学生姓名和课程名称。 (10) 查询没有成绩记录的学生。 (11) 查询至少有两门课程成绩的学生。 (12) 查询张三和李四共同选修的课程。 (13) 查询每个学生的最高成绩和对应的课程名称。 (14) 查询成绩最低的课程及其成绩。 (15) 查询计算机科学专业中年龄最大的学生。 (16) 查询所有学生的姓名、年龄和他们的专业老师(通过课程表关联)。 (17) 使用子查询找出成绩高于平均分的学生。 (18) 查询每个学生的选课数量。 (19) 查询所有课程的最高分和最低分。 (20) 查询没有选修“数据库原理”课程的学生。
最新发布
10-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值