mysql 数据库重要例题(存在量词exists),必考
来源:互联网 发布:windows消息机制 编辑:程序博客网 时间:2024/05/28 09:33
这里举两个例子,这两个例子适合考试的时候学霸和其他人拉开差距的题目,在这里和大家分享一下。(表的内容见附录,这里是操作语句和解释)
这里的关键词(where,select,exists)大小写无所谓。这个语句很多同学都不是很理解。再从我的角度给大家分析一下
查询这样的学生,没有一门课是他不选的。 select snamefrom studentwhere not exists -----不存在 (select *from course----有这样一条记录(有这样一门课)---这个学生没有选这门课(不存在这样一门课,这个学生选了的) where not exists----不存在 (select * from scwhere sno= student.sno---这个学生 and cno= course.cno---这门课 ) );
这里的关键词(where,select,exists)大小写无所谓。这个语句很多同学都不是很理解。再从我的角度给大家分析一下
第一步 从student 表中选择出一个学生,依次对这个学生选择的课程进行遍历,如何课程都选择了,就输出学生姓名。语句是
where not exists----不存在 (select * from scwhere sno= student.sno---这个学生 and cno= course.cno---这门课 ) );第二步 对学生进行遍历,重复步骤一的操作,输出学生姓名
效果图如下
例题二:查询至少选修了学生95002选修的全部课程的学生号码。
select distinct sno 从scx中选择学生号码from sc scx scx这里其实就是sc这张表,相当于一张子表,内容和sc一样,下面的scy也是这样where not exists 不存在(select*from sc scywhere scy.sno='95002' andnot exists(select *from sc sczwhere scz.sno=scx.snoand scz,cno=scy.cno) 满足学号是95002并且和他选择的课程一样);
结果可以见上图
附
CREATE TABLE Student(Sno varCHAR(5) NOT NULL UNIQUE,Sname varCHAR(20) UNIQUE, Ssex varCHAR(1) ,Sage INT,Sdept varCHAR(15));create Table Course(Cno varCHAR(3)not null UNIQUE,Cname varCHAR(60)not null UNIQUE,Cpno varCHAR(3),Ccredit integer not null,Primarykey(Cno));create table SC(Sno varCHAR(5),Cno varCHAR(3),Grade int,Primary key(Sno,Cno));1)向其中插入数据(保证里面有数据)
insert into student values ('95001', '张三', 20, 'CS','男'), ('95002', '李四', 21, 'IS', '男'), ('95003','王五', 18, 'MA ','男'), ('95004', '马六', 19, 'CS', '女'), ('95005', '苏三', 19, 'IS', '女'), ('95006', '刘七', 18, 'CM', '女'), ('95007', '刘三姐', 22, 'PS', '女'), ('95008', '欧阳锋', 23, 'CS', '男'), ('95009', '欧阳大侠', 22, 'IS', '男'); insert into course values ('1', 'MATH', null, 6), ('2','DB_DESIGN', '3', 2), ('3', 'P_DESIGN', '3', 3), ('4', 'OS', null, 2); insert into sc values ('95001', '1', 92), ('95001', '2', 94), ('95001', '3', 90), ('95001', '4', 97), ('95002', '2', 90), ('95002', '3', 80), ('95003', '2', null), ('95004', '3', null), ('95005', '1', 90), ('95005', '2', 98), ('95005', '3', 90), ('95005', '4', 89);
阅读全文
0 0
- mysql 数据库重要例题(存在量词exists),必考
- 【转】带存在量词NOT EXISTS的SQL语句问题
- Mysql数据库中的EXISTS和NOT EXISTS
- SQL 用exists代替全称量词
- SQL Server 用EXISTS判断数据库,表是否存在
- MySQL查询之全称量词
- 量词
- 量词
- [SQL学习笔记][用exists代替全称量词 ]
- mysql判断数据库是否存在
- 判断Mysql数据库是否存在
- 数据库查询语句(exists)
- MySQL EXISTS /NOT EXISTS
- mybatis批量新增,存在就更新(mysql数据库)
- Java 测试正则表达式(二)量词和量词后缀
- mysql exists
- 【经典】数据库SQL笔试题目必考
- 例题数据库
- Qt常用类QLineEdit
- 【POJ 2709】Painter
- 理解Linux系统负荷
- 预习《高质量嵌入式LinuxC编程》第三章有感
- 计算机视觉之语义分割
- mysql 数据库重要例题(存在量词exists),必考
- java中的枚举类
- java虚拟机学习之安全机制
- myeclipse 2017 代码提示功能
- 台湾大学机器学习基石Lecture5
- 静态工具类中使用注解注入service 空指针
- linux基础命令(二)文件寻址和正则表达式
- String to Integer (atoi)
- PhpStorm中快捷键总结,附详细使用说明