第03关系数据库标准语言SQL.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第03关系数据库标准语言SQL

问题 第三章关系数据库标准语言SQL 主要内容 3.1SQL的基本结构 问题:假设你到图书馆去借一本有关数据库方面的图书,应该如何到书架上去查找? 1基本结构 Select 属性 要从student中查询所有学生的详细信息。 在上面的查询中,结果集的属性名都是Sno,Sname等,不直观,如何改变? 结论 SQL的基本结构如下: 2布尔操作符: 在S_C中查询选修了20003或20004号课程的学生学号 布尔操作符小结 NOT OR AND 它们的优先级 DISTINCT 3 IN 和BETWEEN 操作符: 查询学号生的详细信息。 查询成绩在70到79之间的学生的学号 4 Like操作符 从学生表中查询杨姓的学生的详细信息。 5涉及空值(NULL)的查询 查询还没有分专业的学生的详细信息 6对查询结果进行排序 在S_C中查询20003号课程所有学生的成绩,并将成绩按降序排序 7使用集函数 统计20004号课程的总成绩,平均成绩,最高成绩和最低成绩。 8对查询结果进行分组 统计各门课程的学生数 单表查询小结 基本结构 布尔操作符 IN 和BETWEEN LIKE操作符和统配符 空值 排序 集函数 分组 3.2子查询 查询刘洋同学所在的专业名称。 子查询练习 查询学号小于刘洋学号的学生姓名。 3.3Having 子句和Case表达式 查询选修人数少于5的课程名称。 3.4复杂查询 连接操作符 等值连接 自然连接 θ连接 多于两张表的连接 表与自身连接 外部连接 相关联子查询 3.4.1等值连接 查询学生的详细信息,包括:姓名,学号,专业编号,专业名称等。 要查询学生选课的详细信息,包括学生,课程和选课的详细信息。 分析: 问题 在前面的例子中,输出的结果有什么特点? 连接的两个表中重复的属性都列出。 如果不将重复的属性都列出,只列出一个——自然连接。 另一个方法: 练习 查询学号小于刘洋学号的学生姓名。 3.4.7相关联子查询 回顾子查询的内容 3.4.8EXISTS函数与子查询 取得为项目p1工作的所有职员的姓。 Exists练习 使用两种方法实现下列查询 3.5数据定义 创建数据库 创建数据库表 创建约束 3.5.1创建数据库 创建一个名称为test_db的数据库 3.5.2创建数据库表 使用SQL创建company数据库中的所有表。 3.5.3创建约束 唯一性 主键的定义 外键的定义 Check子句 3.6修改数据库和表 修改数据库 修改数据库和表小结 修改数据库表的一般形式参见Transact-SQL 参考 3.7数据更新 插入数据 更新数据 删除数据 3.8视图 问题知道学生的姓名如何查询学生的选课情况或成绩? 3.9数据控制—控制用户的权限 如何控制用户的权限? 给用户某种权限 grant; 限制用户某种权限 deny; 收回给用户赋予的权限。 本章小结 查询语句 定义语句 视图 数据控制 作业:P127 T3,4,5,6,7,8,11 查询某一个学号A没有选修的课程详细信息。 select * from course where not exists (select * from s_c where sno=A and cno=course.cno) select sname from student where not exists (select * from course where not exists (select * from s_c where sno=student.sno and cno=course.cno)) 查询某一个学号没有选修的课程详细信息 法2:查询选修了全部课程的学生姓名。 下面查询语句的查询过程和结果分别是什么?A为某个学号值 select * from s_c scy where scy.sno= and not exists ( select * from s_c scz where scz.sno=A and scz.cno=scy.cno)

文档评论(0)

hello118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档