《数据修改、视图.ppt》由会员分享,可在线阅读,更多相关《数据修改、视图.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理与应用数据库原理与应用11 SQL语言 数据修改、视图等郑捷嵌套查询(子查询)嵌套查询(子查询)在一个查询中,嵌入另外一个查询,作为外查询的依据或者参与者根据内外查询的结果和关系,分为相关与不相关子查询单值子查询、列表子查询子表查询存在查询数据库原理与应用郑捷2数据库原理与应用数据库原理与应用2郑捷郑捷 www.lzj.name子查询子查询ANY、ALL谓词EXISTS子查询子表查询UNION查询综合使用数据库原理与应用数据库原理与应用3郑捷郑捷 www.lzj.nameANY(SOME)、ALL谓词谓词对于返回列表的子查询,通常使用IN谓词配合进行查询但是有时候可能希望对其每个元素
2、进行判断数据库原理与应用数据库原理与应用4郑捷郑捷 www.lzj.nameANY(SOME)、)、ALL谓词谓词ANY(SOME)和ALL谓词对列表中的内容进行了修饰,使得之前的比较运算有可能进行。ANY要求比较运算与任一个元素满足条件即可ALL要求比较运算与全部元素均满足条件才行SOME是ANY的同义词数据库原理与应用数据库原理与应用5郑捷郑捷 www.lzj.name比较运算等价转换关系比较运算等价转换关系打叉表示在大部分情况下,这个比较是没有意义的注意:以上等价条件是在子查询有结果的情况下。当子查询没有结果,则情况比较特殊=ANYIN MINALLNOT IN MAX数据库原理与应用数
3、据库原理与应用6郑捷郑捷 www.lzj.nameEXISTS存在子查询存在子查询有些场合下,我们只需要知道一个查询有没有可返回的记录,而不关心具体内容EXISTS用于判断子查询是否有返回内容。如果有,则整个式子为真,否则为假。直接作为逻辑条件但是返回数量多少、什么内容,一概忽略数据库原理与应用数据库原理与应用7郑捷郑捷 www.lzj.nameEXISTS子查询性质子查询性质EXISTS子查询基本上都是相关子查询,一般用 SELECT*方式,因为我们不关心查到什么重点在于:如何构造子查询的WHERE、HAVING字句在不考虑效率、可读性的情况下,EXISTS子查询可以等价实现几乎所有的查询数
4、据库原理与应用数据库原理与应用8郑捷郑捷 www.lzj.name子表子查询子表子查询在FROM字句中,被查询的对象可以是另外一个查询结果,叫做子表子查询子表子查询是将子查询的结果作为外查询的数据源数据库原理与应用数据库原理与应用9郑捷郑捷 www.lzj.name子表子查询要求子表子查询要求对于子表子查询,只能是不相关子查询子查询作为表参与外查询,必须有别名!往往子查询被作为参与连接的一个部分数据库原理与应用数据库原理与应用10郑捷郑捷 www.lzj.nameUNION查询查询UNION查询实际上就是将两个查询的结果进行“并”运算要求其连接的两个查询结果集在列属性上一一对应例:找出年龄未知
5、的工程师,以及男性工程师更多情况下,UNION连接的是无法用相同结构进行查询的几个语句UNION会自动将重复的元组删去,可以用UNION ALL来保留重复记录数据库原理与应用数据库原理与应用11郑捷郑捷 www.lzj.name数据修改、视图等数据修改、视图等数据的更改插入、删除、更新视图概念和作用创建和使用视图的限制索引、约束等的额外说明数据库原理与应用数据库原理与应用12郑捷郑捷 www.lzj.name数据更新数据更新有三种操作插入:添加新记录删除:删除原有记录更新:修改原记录中指定字段的值数据更新只影响记录,不影响表结构,同时新数据必须满足约束要求数据库原理与应用数据库原理与应用13郑
6、捷郑捷 www.lzj.name插入语句插入语句INSERT INTO ()VALUES()INSERT INTO ()SELECT 字句数据库原理与应用数据库原理与应用14郑捷郑捷 www.lzj.name插入数据说明插入数据说明插入的新记录必须满足约束要求如果省略字段列表,则系统自动默认按照字段顺序插入值列表必须和字段列表一一对应当某个字段没有给出值时,按照字段默认值进行第二种语法将子查询的结果插入表中,可以同时插入多条记录,但是同样必须满足上述要求数据库原理与应用数据库原理与应用15郑捷郑捷 www.lzj.name插入案例插入案例添加新公司添加新员工安排人员参加项目新建一个表,记录员工
7、的姓名、公司名称和参加的项目数,查询出结果并插入新表数据库原理与应用数据库原理与应用16郑捷郑捷 www.lzj.nameSELECT INTO语句语句SELECT INTO FROM.该语句将查询到的结果作为一个新表数据库原理与应用数据库原理与应用17郑捷郑捷 www.lzj.name删除删除DELETE FROM WHERE 数据库原理与应用数据库原理与应用18郑捷郑捷 www.lzj.name删除说明删除说明如果没有指定条件,则删除全表所有记录,操作请注意!删除全部记录后表结构仍存在,只是数据没了当表有外键时,删除操作应满足外键要求数据库原理与应用数据库原理与应用19郑捷郑捷 www.l
8、zj.name外键对删除的影响外键对删除的影响当两个表之间有外键关系时,对主键表记录的删除可能引起外键表数据违反约束为避免这个情况,在建立外键的时候可以对删除操作进行如下附加说明:禁止操作(NO ACTION)禁止操作的进行,报告违反约束级联操作(CASCADE)级联删除相关的外键表记录置空操作(SET NULL)将外键表相关记录的外键字段设置为空(NULL)在SQL2000中不提供数据库原理与应用数据库原理与应用20郑捷郑捷 www.lzj.name删除案例删除案例删除上海公司删除新添加的员工修改外键,使得北京公司可以被删除数据库原理与应用数据库原理与应用21郑捷郑捷 www.lzj.nam
9、e更新数据更新数据UPDATE SET=,=WHERE 数据库原理与应用数据库原理与应用22郑捷郑捷 www.lzj.name更新说明更新说明如果没有指定条件,则更新全表的记录新数据必须满足约束要求新值可以是一个常量,也可以是一个表达式,还可以是根据原值计算的结果当更新主键字段时,应注意外键的要求。外键对其的约束和删除操作一样数据库原理与应用数据库原理与应用23郑捷郑捷 www.lzj.name更新案例更新案例每个人的工资增加20%上海公司的员工调动到北京公司数据库原理与应用数据库原理与应用24郑捷郑捷 www.lzj.name视图视图视图是从一个或几个基本表或视图导出的表它是一个虚表数据库只
10、保存视图的定义,而不存放数据,数据保存在原始的基本表中视图可以被看作是命名了的查询数据库原理与应用数据库原理与应用25郑捷郑捷 www.lzj.name创建视图创建视图CREATE VIEW()AS SELECT WITH CHECK OPTIONDROP VIEW 数据库原理与应用数据库原理与应用26郑捷郑捷 www.lzj.name视图的限制视图的限制SELECT语句可以是任意合法的查询,不论多复杂都可以在没有TOP字句的情况下,不允许出现ORDER BY字句(仅限SQL Server)数据库原理与应用数据库原理与应用27郑捷郑捷 www.lzj.name视图案例视图案例建立公司代码和员工
11、人数的视图建立男员工的视图数据库原理与应用数据库原理与应用28郑捷郑捷 www.lzj.name视图的使用视图的使用在查询中,可以将视图看作一个表进行使用,对其进行查询这个时候,可以将视图视作一个命名后的子查询这也是最常见的用法例:在上面建立的视图基础上进行查询数据库原理与应用数据库原理与应用29郑捷郑捷 www.lzj.name更新视图更新视图可以透过视图进行数据的更新但是有一个明确的限制:只有视图中的数据可以和基本表中的数据一一对应时,才能进行更新例如,之前建立的分组查询的视图是不可更新的,而男员工视图是可以更新的数据库原理与应用数据库原理与应用30郑捷郑捷 www.lzj.name视图的
12、作用视图的作用简化用户操作提供对数据的不同观察角度提供数据的逻辑独立性提供更好的安全保护有利于更清晰地表达查询数据库原理与应用数据库原理与应用31郑捷郑捷 www.lzj.name索引索引索引是对基本表中的数据的一个摘要索引能提高检索数据的效率在设计查询的时候,要注意思考索引起到的作用数据库原理与应用数据库原理与应用32郑捷郑捷 www.lzj.name约束约束约束是对数据的限制在更新数据的时候,要注意约束的作用数据库原理与应用数据库原理与应用33郑捷郑捷 www.lzj.name预习预习关系查询处理和查询优化(课本第九章)查询优化的概念查询的步骤查询优化代数优化物理优化数据库原理与应用数据库原理与应用34郑捷郑捷 www.lzj.name