数据库概-关系数据库标准语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 列名 HAVING 条件 ORDER BY 列名 二者的执行方式不同 普通子查询的执行顺序是 首先执行子查询,然后把子查询的结果作为父查询的查询条件的值。 普通子查询只执行一次,而父查询所涉及的所有记录行都与其查询结果进行比较以确定查询结果集合。 相关子查询的执行顺序是 首先选取父查询表中的第一行记录,内部的子查询利用此行中相关的属性值进行查询, 然后父查询根据子查询返回的结果判断此行是否满足查询条件。如果满足条件,则把该行放入父查询的查询结果集合中。重复执行这一过程,直到处理完父查询表中的每一行数据。 相关子查询的执行次数是由父查询表的行数决定的。 注意: 如果确信所要检索的行比例较大,则应抑制索引的使用。其常用的方法: 把数字加上零; 把字符与空值相连接。 例如:GRADE+0=95 ‘’||SNAME=‘张三’ 6. 索引的说明 表越大,索引越能有效地改善查询的响应时间,对于少于100行的表建立索引可能不合算; 对WHERE子句中最常使用的列建立索引。对连接列建立索引,也可大大地改善连接查询的速度; 只要可能,尽量将索引列定义为NOT NULL; Oracle 在一个表上最多可创建16个索引; 应根据需要建立索引,应当在查询速度和插入更新速度之间进行权衡。通常不要在一个表上建立多于三个索引。 数据操纵命令将导致数据库中数据 的改变。SQL语言的数据操纵功能包括三部分: INSERT 向表中插入数据 UPDATE 修改表中已存在行中的数据 DELETE 删除表中的数据 4.4 SQL数据操纵 --- DML 要求表必须是已存在的。 1. 单行插入 一般格式: INSERT INTO 基本表名 [(属性列1[,属性列2]…)] VALUES (值表达式1[,值表达式2]…);? 4.4.1 插入数据 注意: 在表定义时说明了NOT NULL 的属性列不能取空值,否则会出错。 如果 INTO 子句中选择了列名,则VALUES子句中的值表达式,必须与列一一对应;如果没有指明任何列名,则新插入的纪录必须在每个属性列上均有值。 字符型和日期型数据在插入时要加单引号。 对于在INSERT语句中未出现的列,那么这些列则为NULL;也可以显式地在VALUES子句中用NULL来代表空值进行插入数据。 2. 多行插入 多行插入也称为表间拷贝,即从一个表中抽取若干行数据插入到另一个表中。 一般格式: INSERT INTO 基本表名1 [(属性列1[,属性列2]…)] SELECT [列表达式1 [, 列表达式2]…] FROM 表名2 WHERE 条件表达式; 子查询 例57:向学生表STUDENT插入一行新的数据。 例58:将学生表STUDENT中计算机系(‘CS’)中的学生数据插入到表S1中。 3. 插入子查询结果 产生一个表,但这个表的列是从子查询的结果中全部复制或部分复制,且子查询结果作为表的行插入到表中。 一般格式: CREATE TABLE 基本表名 [(属性列1[,属性列2]…)] [AS 子查询]; 例59:求每一个学生的平均成绩,把结果存入表S_GR中。 可以修改表中某些指定列的数据。 一般格式: UPDATE 基本表名 [别名] SET 列名=表达式 [,列名=表达式]… [WHERE 条件表达式]; 其中:表达式={表达式|常量|列名} 3.4.2 修改数据 1. 修改一个或多个元组的值 如果不选WHERE子句,则表中所有的行全被更新; 如果选择了WHERE子句,则使WHERE 中条件表达式为真的行被更新; 例60:把所有学生的年龄加2。 2. 带子查询的修改语句 当子查询只返回一行时: UPDATE 基本表名 [别名] SET (列名 [,列名]…) = (子查询); 要求,被修改的列与子查询返回的列的列数相等,类型相同,且被修改的列必须出现在括号内,并以逗号隔开。 例61:将数据库的课时改成与数据结构课程的课时相同。 注意: 如果SET子句中包含子查询,则子查询必须且只返回一行,其返回数据个数应与SET后面的列数一致,类型相同; 若子查询未返回任何行,则被修改的各行的有关列被置成NULL。 删除基本表中某些行的数据。 一般格式: DELETE FROM 基本表名

文档评论(0)

138****7331 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档