SQL基础(二)

  1. 多表设计

数据表与数据表之间关系三种:实体之间关系 多对多、一对多、一对一

(1)多对多案例:项目和程序员
一个项目可以由多个程序员参与
一个程序员可以参与多个项目开发
建表原则:多对多关系,必须引入第三张数据表,同时引入另两张实体表主键作为外键

(2)一对多案例:老师与课程
一个老师可以教授多门课程
一门课程只能有一个老师教授
建表原则:一对多关系,在多的一方添加一方 主键作为外键

(3)一对一关系:班级与班长关系
一个班只能有一个班长
一个班长只能负责一个班
* 该关系比较少见

建表原则:一对一关系,可以在任何一方添加 另一方主键作为外键
关系表表名,通常用两个实体表表名组合而成
2. 笛卡尔积
当两个数据表进行关联查询时,用第一张数据表每一条记录去匹配第二张数据表每一条记录。
第一张表10条数据
第二张表20条数据
使用笛卡尔积 结果 10*20 = 200 条记录
在实际开发中,获得笛卡尔积中有意义的记录 ? —- 连接查询 (内连接,外连接)
(1)内连接 : 将两张表相同意义字段连接起来
select * from A,B where A.A_ID = B.A_ID; 条件 A表中A_ID与 B表中 A_ID 相等匹配
* 返回结果一定是两个表都存在信息 , 最有意义的信息,如果第一张表记录在第二张表找不到匹配信息,不显示,第二张表记录在第一张表无匹配信息,不显示
语法:select * from a inner join b on A.A_ID = B.A_ID;
简化:select * from a,b where A.A_ID = B.A_ID;

(2)外连接:左外连接、右外连接、全外连接
左外连接 :用第一张表每条记录去匹配第二张表对应记录,无论是否找到匹配信息,都显
select * from a left outer join b on A.A_ID = B.A_ID ;

右外连接:从第二张表找第一张表匹配记录,无论是否找到,第二张表所有记录都显示
select * from a right outer join b on A.A_ID = B.A_ID ;

全外连接:左外连接与右外连接 结果和 —- 排除重复数据
select * from a full outer join b on A.A_ID = B.A_ID ; —– MySQL 不支持
使用union关键字实现全外连接效果
select * from A left outer join B on A.A_ID = B.A_ID
union
select * from A right outer join B on A.A_ID = B.A_ID;

3.关联子查询
关联子查询:将第一个查询结果 ,作为第二个查询条件 ,查询student表中年龄最大学员的信息
select * from student where age = (select max(age) from student);
等价于 select max(age) from student; —– 25
select * from student where age = 25; —– 学生信息

(1)IN/EXISTS 当前查询记录在子查询结果中存在
查询所有成绩小于60分的同学名称
查询studentcource表成绩小于60 所有记录
select student_id from studentcource where score < 60; — 小于60分学生学号 2,8
再根据id去查询学生表,得知学生姓名
select * from student where id in(2,8);
select * from student where id in(select student_id from studentcource where score < 60);
exists实现上面in 语句效果
select name from student where exists (select * from studentcource where score < 60 and student.id = studentcource.student_id);
select * from studentcource,student where score < 60 and student.id = studentcource.student_id;
select name from student where exists (select * from studentcource where score < 60 and student.id = studentcource.student_id);
* 在实际开发中 exists比 in效率要高

(2)ANY、SOME、ALL 用法
SOME和ANY作用相同的 —– 一些 >any(1,2,3) 大于任何一个都可以 等价于 >min
ALL —- 所有 >all(1,2,3) 必须同时大于三个值 等价于 >max
查询获得最高分的学生学号
select max(score) from studentcource; 最高学分
select student_id from studentcource where score = (select max(score) from studentcource);
* 自我比较
select student_id from studentcource where score >=all(select score from studentcource);
查询编号2课程比编号1课程成绩高所有学号
select score from studentcource where cource_id = 2 and score > any(select score from studentcource where cource_id = 1);
select score from studentcource where cource_id = 2; 课程2所有成绩
select score from studentcource where cource_id = 1; 课程1所有成绩
使用union将两个查询结果合并,union 排重重复数据 union all 不会排重重复数据
* 合并时列名必须一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《SQL基础教程第版PDF》是一本讲解SQL语言基础的教材,针对初学者而设计。本书以简明易懂的方式介绍了SQL的基本概念和语法,帮助读者快速入门。 首先,本书首先介绍了SQL的起源和发展历史,以及SQL关系数据库管理系统的作用和重要性。然后,书详细介绍了SQL语言的各种基本操作,包括创建表、插入数据、查询数据、更新数据和删除数据等。每个操作都有详细的示例和解释,读者可以通过实际操作来巩固自己的理解。 此外,本书还介绍了SQL语言的常用函数和操作符,如聚合函数、数学函数、逻辑运算符和比较运算符等。这些内容对于进行更复杂的数据操作和查询非常重要。 在教学过程,本书还强调了数据库设计的重要性,引导读者学习如何进行数据库建模和规范化。数据库设计是使用SQL语言进行数据管理的基础,通过本书的学习,读者可以了解数据库设计的基本原则和技巧。 总之,《SQL基础教程第版PDF》是一本适合初学者入门的SQL教材,通过阅读本书,读者可以学习到SQL语言的基本概念和操作技巧,为日后进行数据库管理和数据分析打下坚实的基础。 ### 回答2: 《SQL基础教程第版PDF》是一本介绍SQL基础知识的教材,主要面向初学者。此教材通过清晰的语言和丰富的实例,详细介绍了SQL查询语言的各个方面。它包含了创建数据库、表格和索引的方法,以及如何进行基本的数据查询、过滤、排序和更新等操作。 该教程还介绍了SQL语言的关键概念,如表的结构,数据类型,约束条件和外键关系等。通过学习这些基础知识,读者可以了解如何有效地使用SQL语言来处理和管理大规模的数据。 此外,该教程还深入介绍了SQL语句的高级功能,如聚合函数、子查询、多表连接和视图等。这些内容将帮助读者更好地理解和应用SQL语言来解决复杂的数据查询和分析问题。 《SQL基础教程第版PDF》是一本非常实用和全面的教材,适合初学者系统地学习SQL语言。读者将通过这本教材获得扎实的SQL基础知识,为进一步学习和应用数据库领域打下坚实的基础。无论是对于计算机科学专业的学生还是对于从事数据处理和分析工作的专业人士,这本教材都是一本非常有价值的参考书。 ### 回答3: 《SQL基础教程 第版》是一本介绍关系数据库SQL语言的教程,旨在帮助读者快速入门和掌握SQL的基本知识和技能。 这本教程从数据库的基本概念开始讲解,介绍了数据库的组成以及常见的数据库管理系统。然后,详细介绍了SQL语言的基础知识,包括SQL语句的基本结构、数据查询、表的创建和修改以及数据的插入、更新和删除等操作。 在教程的后半部分,作者还介绍了SQL的高级用法,包括多表查询、子查询、数据过滤、排序和分组等功能。此外,教程还介绍了SQL的常见函数和触发器的使用方法。 在每个章节的结束,教程都提供了一些练习题和案例分析,帮助读者巩固所学知识和运用到实际问题。 相比第一版,第版在内容上进行了更新和完善,包括新增了一些新特性和实用技巧,对一些难点进行了更加详细的解释和实例演示。此外,第版还添加了一些具体的案例分析,帮助读者更好地理解和应用SQL语言。 总的来说,《SQL基础教程 第版》是一本适合初学者入门的SQL教材,内容简洁明了,结构清晰,难度适。无论是想系统学习SQL语言的人,还是需要在工作运用SQL的人,都可以从这本书获得帮助和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值