Sybase数据库操作培训课程(ppt 38页).ppt_第1页
Sybase数据库操作培训课程(ppt 38页).ppt_第2页
Sybase数据库操作培训课程(ppt 38页).ppt_第3页
Sybase数据库操作培训课程(ppt 38页).ppt_第4页
Sybase数据库操作培训课程(ppt 38页).ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、01.10.2020,1,Sybase数据库操作介绍教师:张宁2010.9,01.10.2020,2,1. 关系数据库概念介绍和Transact-SQL 2. 客户/服务器架构介绍 3. 在表中查询数据 4. 用聚合函数分析数据 5. 查询多张表(联合查询和子查询) 6. 建立表 7. 建立临时表和查询系统表 8. 修改表中数据 9. 用视图和索引改进查询性能 10. 用约束来强化数据完整性,11. 使用可重用的数据库对象(缺省和规则) 12. 使用Transact-SQL函数操纵数据 13. 用变量编程 14. 用流控制语句编程 15. 用事务维护数据库一致性 16

2、. 事务管理:用锁隔离数据 17. 用游标处理数据 18. 写基本的存储过程 19. 优化SQL和存储过程 20. 用触发器加强参照完整性,课程内容概述,01.10.2020,3,关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。目前主流的关系数据库有oracle、db2、mysql(开源)、sqlserver,sybase等。,1. 关系数据库概念介绍和Transact-SQL,关系模型的逻辑结构就是一张二维表,由行和列组成。,01.10.2020,4,1. 关系数据库概念介绍和Transact-SQL,01.10.2020,5,1. 关系数据

3、库概念介绍和Transact-SQL,概念: (1) 关系。一个关系就是一张二维表 (2) 元组。关系中的每一行称为一个元组,一个元组就是一条记录 (3) 属性。关系中的每一列称为属性,每个属性对应一个属性名和一组属性值 (4) 域。一个属性的取值范围,称为该属性的域 (5) 主键。主键是指一个关系中的属性组合,它能唯一地标识一个元组。 (6) 关系模式。关系模式是一组被命名的相关属性的集合,是对关系的描述。 关系名(属性1,属性2,属性n), 例如:学生档案(学号,姓名入学成绩) (7) 关系模型。关系模型是指为一个应用系统所建立的一组关系模式,每个模式之间的联系是通过公共属性(即具有相同定

4、义域的属性)实现的。,01.10.2020,6,1. 关系数据库概念介绍和Transact-SQL,关系有如下性质: (1) 一个域中的各项目是同类的,即每一列中的分量是同一类型的数据 (2) 不同的列可以出自同一个域,每一列称为属性,需给予不同的名称 (3) 列的顺序无所谓,即列的次序可以任意交换 (4) 关系中的各个元组是不同的,即不允许有重复的元组 (5) 行的顺序无所谓,即行的次序可以任意交换 (6) 每一分量必须是不可分的数据项,01.10.2020,7,1. 关系数据库概念介绍和Transact-SQL,Transact-SQL,SQL 是用于访问和处理数据库的标准的计算机语言。因

5、此全部主要的关系数据库管理系统都支持SQL。但很多公司都拥有对标准SQL的扩充。比如oracle的sql plus,sql server的T sql,Sybase的Transact-SQL。,01.10.2020,8,1. 关系数据库概念介绍和Transact-SQL,SQL语言包含4个部分:, 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。, 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。, 数据查询语言(DQL),例如:SELECT语句。, 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、

6、ROLLBACK等语句。,01.10.2020,9,1. 关系数据库概念介绍和Transact-SQL,Transact-SQL是Sybase公司对标准SQL的一种扩展,增加了变量、运算符、函数、流程控制和注释等语言元素,它提供重要的额外功能和函数,如汇总计算、存储过程(预定义的 SQL 语句)和错误处理,使得其功能更加强大,允许SQL的数据操纵语言和查询语句包含在块结构和代码过程语言中。,01.10.2020,10,2. 客户/服务器架构介绍,客户服务器(client/server,C/S)方式所描述的是进程之间服务和被服务的关系,客户是服务请求方,服务器是服务提供方。客户向服务器发送请求,

7、服务器向客户提供服务。客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。,01.10.2020,11,2. 客户/服务器架构介绍,优点在于: 1. 应用服务器运行数据负荷较轻。 2. 数据的储存管理功能较为透明。 数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。,B/S架构,(Browser/Server架构),01.10.2020,12,2. 客户/服务器架构介绍,ODBC:开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Ser

8、vices Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。 由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。,01.10.2020,13,01.10

9、.2020,14,3. 在表中查询数据,以下四部分内容: 1. 使用 select 子句选择列 2. 利用 distinct 消除重复查询结果 3. 利用 from 子句指定表 4. 使用 where 子句选择行,select 命令使用一个称作查询的过程检索数据库表的行和列中存储的数据。 查询有三个主要部分:select 子句、from 子句和 where 子句。,01.10.2020,15,3. 在表中查询数据 使用 select 子句选择列,使用 select * 选择所有列,select * from publishers,01.10.2020,16,3. 在表中查询数据 使用 sele

10、ct 子句选择列,选择特定列,select au_lname, au_fname from authors,01.10.2020,17,3. 在表中查询数据 使用 select 子句选择列,使用表达式,select title_id, total_sales * price from titles,01.10.2020,18,3. 在表中查询数据 利用 distinct 消除重复查询结果,select au_id from titleauthor,select distinct au_id from titleauthor,可选的 distinct 关键字将从 select 语句的缺省结果中消

11、除重复行。,比较两条语句,01.10.2020,19,3. 在表中查询数据 利用 from 子句指定表,在 from 子句中始终允许表和视图的完整命名语法: database.owner.table_name database.owner.view_name 如果 from子句包括多个表或视图,可用逗号分隔它们。,可以赋给表名相关名,以节省键入时间。通过在表名之后提供相关名, 从而在 from 子句中分配相关名,如下所示: select p.pub_id, p.pub_name from publishers p,01.10.2020,20,3. 在表中查询数据 使用 where 子句选择行,

12、select 语句中的 where 子句指定搜索条件,用来确定检索哪些行。一般 格式为: select select_list from table_list where search_conditions,where 子句中的搜索条件或限定包括: 比较运算符(=、 等等) where advance * 2 total_sales * price 范围(between 和 not between) where total_sales between 4095 and 12000 列表(in、not in) where state in (CA, IN, MD) 字符匹配(like 和 not

13、 like) where phone not like 415% 未知值(is null 和 is not null) where advance is null 搜索条件的组合(and、or) where advance 5000 or total_sales between 2000 and 2500,01.10.2020,21,3. 在表中查询数据 使用 where 子句选择行,select title_id, type, advance from titles where (type = business or type = psychology) and advance !5500,

14、比较运算符,01.10.2020,22,3. 在表中查询数据 使用 where 子句选择行,select title_id, total_sales from titles where total_sales not between 4095 and 12000,使用 between 可以关键字指定包括的范围。,01.10.2020,23,3. 在表中查询数据 使用 where 子句选择行,列表(in 和 not in),select au_lname, state from authors where state = CA or state = IN or state = MD,select

15、 au_lname, state from authors where state in (CA, IN, MD),比较两条语句,01.10.2020,24,3. 在表中查询数据 使用 where 子句选择行,列表(in 和 not in),in 关键字的最重要用途或许是用在嵌套查询(又称为子查询)中,select au_lname, au_fname from authors where au_id in (select au_id from titleauthor where royaltyper 50),01.10.2020,25,3. 在表中查询数据 使用 where 子句选择行,匹配

16、字符串:like,% 与 0 个或多个字符的任意字符串相匹配。 _ 与单个字符相匹配。 specifier 中括号将范围或集合括起来,分类符区分大小写。 specifier 尖号 () 位于分类符之前,表示不包括。, like Mc% 将搜索每个以“Mc”开始的名称(如 McBadden)。 like %inger 将搜索每个以“inger”结尾的名称(如 Ringer、 Stringer)。 like %en% 将搜索每个包含“en”的名称(如 Bennet、Green、 McBadden)。 like _heryl 将搜索每个以“heryl”结尾且长度为六个字母的名称 (如 Cheryl)

17、。 like CKarseon 将搜索“Carsen”、“Karsen”、“Carson”和 “Karson”(如 Carson)。 like M-Zinger 将搜索所有以“inger”结尾且以 M 到 Z 之间任意 单个字母开始的名称(如 Ringer)。 like Mc% 将搜索所有以“M”开始且第二个字母不是“c”的名称。,01.10.2020,26,3. 在表中查询数据 使用 where 子句选择行,匹配字符串:like,select phone from authors where phone like 415%,01.10.2020,27,4. 用集合函数分析数据,本节介绍 su

18、m、avg、count、count(*)、count_big、count_big(*)、max 和min 集合函数,使用这些函数可以对查询中所检索到的数据进行汇 总。本节还讨论如何使用 group by、having 和 order by 子句将数据按类 别和子群进行组织。,集合函数为: sum、avg、count、min、max、count_big、count(*) 和 count_big(*)。使用集合函数可以计算并汇总数据。,以下是集合函数的语法: aggregate_function ( all | distinct expression),01.10.2020,28,4. 用集合函数

19、分析数据,01.10.2020,29,4. 用集合函数分析数据,select sum(total_sales) from titles,select avg(price * 2) from titles,select count(city) from authors,count 得出表达式中非空值的数量,而 count(*) 得出表中的总行数。,select count(distinct city) from authors,01.10.2020,30,4. 用集合函数分析数据,将查询结果分组:group by 子句,group by 子句将查询的输出划分为若干组。可以按一个或多个列名进行分组

20、,也可以按在表达式中使用数值数据类型所计算得出的列结果进行分组。与集合一起使用时, group by 检索每个子群中的计算结果,并会返回多行。,select type, advance from titles group by type,常用: select type, sum(advance) from titles group by type,01.10.2020,31,4. 用集合函数分析数据,01.10.2020,32,4. 用集合函数分析数据,选择数据组:having 子句,使用 having 子句显示或拒绝由 group by 子句所定义的行。having 子句为group by

21、子句设置条件的方式和 where 为 select 子句设置条件的方式相同,不同的是 where 不能包括集合,而 having 则经常包括集合。,在 having 子句中包括多个条件时,请用 and、or 或 not 将条件进行组合。 例如,要按出版社号对 titles 表进行分组,并且要只包括预付款总额已经支付 $15,000 以上、其平均书价低于 $18 且其标识号 (pub_id) 大于 0800的出版社,01.10.2020,33,4. 用集合函数分析数据,选择数据组:having 子句,select pub_id, sum(advance), avg(price) from titles group by pub_id having sum(advance) 15000 and avg(price) 0800,01.10.2020,34,4. 用集合函数分析数据,选择数据组:having 子句,select title_id from titles having

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论