[工学]数据库第6次课 关系数据库语言SQL1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据库第6次课 关系数据库语言SQL1

* 动态SQL语句 (3) 例3.33 下面两个C语言的程序段说明了动态SQL语句的使用技术。 ① EXEC SQL BEGIN DECLARE SECTION; char *query; EXEC SQL END DECLARE SECTION; scanf(〞%s〞,query); /*从键盘输入一个SQL语句 */ EXEC SQL PREPARE que FROM :query; EXEC SQL EXECUTE que; 注:这个程序段表示从键盘输入一个SQL语句到字符数组中;字符指针query指向字符串的第1个字符。 如果执行语句只做一次,那么程序段最后两个语句可合并成一个语句:EXEC SQL EXECUTE IMMEDIATE :query; * 动态SQL语句 (4) ② char *query =〞UPDATE sc SET grade = grade * 1.1 WHERE c# = ?〞; EXEC SQL PREPARE dynprog FROM :query; char cno[5] = 〞C4〞; EXEC SQL EXECUTE dynprog USING :cno; 注:这里第一个char语句表示用户组合成一个SQL语句,但有一个值(课程号)还不能确定,因此用“?”表示。第二个语句是动态SQL预备语句。第三个语句(char语句)表示取到了课程号值。第四个语句是动态SQL执行语句,“?”值到共享变量cno中取。 * 小 结 SQL是关系数据库的标准语言,已广泛应用在商用系统中。 SQL的数据定义部分包括对SQL模式、基本表、视图、索引的创建和撤消。 SQL的数据操纵分成数据查询和数据更新两部分。 SQL的数据查询是用SELECT语句实现,兼有关系代数和元组演算的特点。 SQL的数据更新包括插入、删除和修改等三种操作,在视图中只有行列子集视图是可以更新的。 嵌入式SQL涉及到SQL语句的宿主语言程序中的使用规定,以解决两种语言的不一致和相互联系的问题。同时还介绍了动态SQL语句。 * 数据定义 数据库 定义 CREATE DATABASE 修改 ALTER DATABASE 删除 DROP DATABASE 基本表 定义 CREATE TABLE 修改 ALTER TABLE 删除 DROP TABLE 索引 建立 CREATE [UNIQUE] INDEX 删除 DROP INDEX 数据更新 插入数据 修改数据 删除数据 查询 单表查询 连接查询 嵌套查询 视图 定义 查询 * 本章重要概念 (1)SQL数据库的体系结构,SQL的组成。 (2)SQL的数据定义:SQL模式、基本表和索引的创建和撤销。 (3)SQL的数据查询;SELECT语句的句法,SELECT语句的三种形式及各种限定,基本表的连接操作。 (4)SQL的数据更新:插入、删除和修改语句。 (5)视图的创建和撤消,对视图更新操作的限制。 (6)嵌入式SQL:预处理方式,使用规定,使用技术,卷游标,动态SQL语句。 * 本章的重点篇幅 (1) 教材中P97的例3.8(SELECT语句)。 (2) 教材中P124的例3.31和的例3.32(嵌入式SQL)。 * 重要内容分析(一) 1.SELECT语句的来历 在关系代数中最常用的式子是下列表达式: πA1,…,An (σF(R1×…×Rm)) 这里R1、…、Rm为关系,F是公式,A1、…、An为属性。 针对上述表达式,SQL为此设计了SELECT—FROM—WHERE句型: SELECT A1,…,An FROM R1,…,Rm WHERE F 这个句型是从关系代数表达式演变来的,但WHERE子句中的条件表达式F要比关系代数中公式更灵活。 * 重要内容分析(二) 2.SELECT语句中出现的基本表名,应理解为基本表中的元组变量,而列名应理解为元组分量。 3.SELECT语句的语义有三种情况,下面以学生表S(S#,SNAME,AGE,SEX)为例说明。 第一种情况:SELECT语句中未使用分组子句,也未使用聚合操作,那么SELECT子句的语义是对查询的结果执行投影操作。譬如: SELECT S#,SNAME FROM S WHERE SEX=M; * 重要内容分析(三) 第二种情况:SELECT语句中未使用分组子句,但在SELECT子句中使用了聚合操作,此时SELECT子句的语义是对查询结果执行聚合操作。譬如: SELECT COUNT(*),AV

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档