- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL语言的基本概念 8.2 SQL语言的基本概念 SQL语言支持关系数据库的三级模式结构,如图8.1所示。其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。 在一些数据库语言中对SQL查询语句扩展,以VFP为例,其SQL查询语句主要部分格式及语法为: SELECT [DISTINCT][别名1.]表达式1[AS 列名1][,别名2.]表达式2[AS 列名2]…] FROM 表名1[别名1][,表名2[别名2]…] [[INTO DBF | CURSOR | ARRAY名字] | [TO FILE文件名 [ADDITIVE] | TO PRINERT [PROMPT] ] [PLAIN][NOWAIT] [WHERE 条件表达式] [GROUP BY 列名1 [,列名2…] [HAVING 内部函数表达式]] [UNION SELECT 查询语句] [ORDER BY 列名1[ASC | DESC] [,列名2[ASC | DESC]…]] 4.4 Visual FoxPro中的SQL查询语句 “INTO DBF|CURSOR|ARRAY名字”指定在何处保存查询结果。如果没有包括INTO子句,查询结果显示在浏览窗口中。也可以用TO将查询结果定向输出到打印机或文件。 DBF指定将查询结果保存到一个表中。如果指定的表已经打开,并且SET SAFETY设置为OFF,则Visual FoxPro在不给出警告的情况下改写该表。如果没有指定扩展名,Visual FoxPro指定表的扩展名是.DBF。SELECT 语句执行结束后,表仍然保持打开并处于活动状态。 CURSOR将查询结果保存到临时表中。执行完SELECT语句后,临时表仍然保持打开、活动但只读。 ARRAY将创建一个内存变量数组并将查询结果保存到内存变量数组中。如果查询结果中不包含任何记录,则不创建这个数组。 4.4 Visual FoxPro中的SQL查询语句 视图和表不同之处在于,它并没有真正地存储数据,它所存取的数据必须依附于所关联的数据表,它是一种虚的映射关系。 ? SQL建立视图的语句格式: CREATE VIEW 视图名[(字段名[,字段名]…] AS 子查询 [WITH CHECK OPTION] ? 视图所用字段名可以与基本表中字段名不一致。 4.5 视 图 ?当字段名不一致或子查询中目标列是非列名(函数或一般表达式)或子查询中目标列有相同列名时,在视图定义中必须指出视图的各个字段名,也可以不列出,默认与子查询结果相同。 ?在子查询中一般不能包括DISTINCT , INTO, ORDER等,不能涉及临时表。 ? WITH CHECK OPTION选项表示在通过视图对基本表进行插入和更新操作时必须满足子查询中WHERE语句中规定的条件。 4.5 视 图 ? 删除视图语句格式为: DROP VIEW 视图名 一个基本表的删除,由它导出的视图将自动删除。当一个视图被删去后,由它导出的其他视图也将自动删除。 ?视图不仅可用于查询,还可借助视图实现对基本表的插入、修改和删除操作。 4.5 视 图 ?在关系优化过程中,我们将一个实际数据改为多个表存储,使用户面对的是复杂的数据结构,而视图可不改变数据存储结构同时又使用户面对的是简单的数据结构,视图将其中连接操作对用户隐藏起来,就使用户对数据使用大大简化,更容易操作。 4.5 视 图 在一些数据库系统中,利用视图可建立两个不同数据库系统的联系和通信。例如VFP中,可十分容易地建立ORACLE、ACCESS、SQL SERVER等系统中的表的视图,称之为“远程视图”,VFP的程序可如同自己的基本表一样对这些视图作查询、录入、修改、删除等操作,并借之实现对相关数据库系统中表的操作,使得程序设计大大简化。 4.5 视 图 语法格式: UPDATE 表名 SET字段=表达式[,字段=表达式]…[WHERE 条件表达式] 【例4.22】将成绩表中所有分数低于50分的分数加10分。 UPDATE cj SET fens=fens+10 WHERE fens50 4.6 SQL数据更新语句 4.6.1、修改(UPDATE)语句 语法格式: DELETE FROM 表名 [WHERE 条件表达式] 【例4.23】清空1999级学生成绩记录。 DELETE FROM cj WHERE xh IN (SELECT xh FROM xs WHERE bj LIKE “1999%”) 4.6 SQL数据更新语句 4.6.2、删除(DELETE)语句 语法格式1: INSERT INTO 表名 [(字段名[,字段名)…)] VALUES (表达式[,表达
文档评论(0)