- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库课件ch3
第三章 关系数据库标准语言 3.1 SQL概貌及其特点 SQL语言的功能包括: 查询(Query) 操纵(manipulation) 定义(definition) 控制(Control) SQL语言是一个综合的、通用的、功能极强的关系数据库语言。 主要特点: 1. 语言简洁、易学易用:核心功能只有8个动词,语法简单,接近英语。SQL功能 动词数据库查询 SELECT数据定义 CREATE,DROP数据操纵 INSERT,UPDATE,DELETE数据控制 GRANT,REVOKE 主要特点: 2. 高度非过程化的语言:用户只需提出“干什么”,至于“怎么干”由DBMS解决;用户只需要早查询语句中提出需要什么,DBMS即可按路径存取,并把结果返回给用户。 3. 面向集合的语言:每一个SQL的操作对象是一个或多个关系,操作的结果也是一个关系。 4. 既可独立使用,又可嵌入到宿主语言中使用,具有自主型和宿主型两种特点。 主要特点: 5. 具有查询、操作、定义和控制四种语言一体化的特点。它只向用户提供一种语言,但该语言具有上述多种功能,且每中操作只需一种操作符。 查询即检索操作,是对已经存在的基本表及视图进行数据检索,不改变数据本身 基本结构:SELECT-FROM-WHERE组成的查询块,一般形式: SELECT 列名[{,列名}] (指出要检索的数据项) FROM 表名[{,表名}] (给出要操作的关系表名) WHERE 检索条件 (给出查询结果应满足的条件) 查询块的结果仍然是一个表,结果表的结构及内容完全取决于查询块 当涉及多表操作时,WHERE 子句要同时给出连接条件 查询块作为整体代表着关系代数中的投影、选择、连接等操作的组合 SQL的检索功能十分丰富,举例说明(三个基本表) 例1:检索学生的姓名,年龄和性别 SELECT SN,AGE,SEX FROM S; (SELECT * FROM S;) 例2:检索学生选修课程的课程号 SELECT DISTINCT C# FROM SC; 其中:DISTINCT表示消取重复行 利用投影检索可控制属性名列的顺序 例3:检索学习课程号为C2的所有学生的学号和成绩 SELECT S#,GRADE FROM SC WHERE C#=‘C2’; 例4:检索课程号为C2且成绩高于85分以上的学生学号和成绩 SELECT S#,GRADE FROM SC WHERE C#=‘C2’ AND GRADE85; 例5: 检索选修C1或C2的学生学号 SELECT S# FROM SC WHERE C#=‘C1’ OR C#=‘C2; 例6: 检索成绩在70分至80分之间的学生学号,课程号和成绩 SELECT * FROM SC WHERE GRADE BETWEEN 70 AND 80; 运算符 BETWEEN…AND…可以选择属性列在一定值范围内的行 例7: 检索选修C1的学生学号和成绩,并按成绩的降序和学号的升序排列 SELECT S#,GRADE FROM SC WHERE C#=‘C1’ ORDER BY GRADE DESC,S#; ORDER BY 子句表示结果要排序,它必须在所有其它子句之后作为最后一个子句出现 例8: 检索学号为S1,S3,S4的姓名,年龄(年龄按升序排列) SELECT SN,AGE FROM S WHERE S# IN (‘S1’,’S3’,’S4’) ORDER BY AGE; 运算符:IN表示选择匹配若干指定值的行 例9: 检索辛国年同学所学课程的课程号及成绩 SELECT SN,C#,GRADE FROM S,SC WHERE S.S#=SC.S# AND SN=‘辛国年’; 对多表数据的检索,是通过表与表之间的满足一定条件的行连接而实现的.其中FROM子句要指明进行连接的表名;WHERE子句要指明连接的列名及其连接条件;SELECT子句中要指明多表检索的结果表中的属性名列. 例10: 检索所有比徐伟年龄大的学生姓名、年龄、性别和徐伟的年龄 SELECT X.SN,X.AGE,X.SEX,Y.AGE FROM S X,S Y WHERE X.AGEY.AGE AND Y.SN=‘徐伟’ ; 这是一个表和它自身的大于连接 例11: 检索所有学生的姓名、选课名称和成绩 SELECT SN,CN,GRADE FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C#; 进行
文档评论(0)