当前位置首页 > 计算机 > 数据库/结构与算法
搜柄,搜必应! 快速导航 | 使用教程  [会员中心]

Sybase数据库操作培训课程

文档格式:PPTX| 37 页|大小 437.47KB|积分 10|2024-08-27 发布|文档ID:242539445
第1页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 37
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,Sybase数据库操作介绍,教师:张宁,zznn98@,13880672388,2010.9,8/27/2024,1,1. 关系数据库概念介绍和Transact-SQL,2. 客户/服务器架构介绍,3. 在表中查询数据,4. 用聚合函数分析数据,5. 查询多张表(联合查询和子查询),6. 建立表,7. 建立临时表和查询系统表,8. 修改表中数据,9. 用视图和索引改进查询性能,10. 用约束来强化数据完整性,11. 使用可重用的数据库对象(缺省和规则),12. 使用Transact-SQL函数操纵数据,13. 用变量编程,14. 用流控制语句编程,15. 用事务维护数据库一致性,16. 事务管理:用锁隔离数据,17. 用游标处理数据,18. 写基本的存储过程,19. 优化SQL和存储过程,20. 用触发器加强参照完整性,课程内容概述,,8/27/2024,2,,关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。

    目前主流的关系数据库有oracle、db2、mysql(开源)、sqlserver,sybase等1. 关系数据库概念介绍和Transact-SQL,,关系模型的逻辑结构就是一张,二维表,,由行和列组成8/27/2024,3,,1. 关系数据库概念介绍和Transact-SQL,,学号,姓名,性别,出生年月,家庭住址,入学成绩,03001,张文,男,1983年3月,新闻路,450,03002,李阳,男,1985年2月,五一路,468,03003,王平,女,1984年8月,正义路,476,03120,王英,女,1985年9月,青年路,439,8/27/2024,4,,1. 关系数据库概念介绍和Transact-SQL,,概念:,(1),关系一个关系就是一张二维表,(2),元组关系中的每一行称为一个元组,一个元组就是一条记录,(3),属性关系中的每一列称为属性,每个属性对应一个属性名和一组属性值,(4),域一个属性的取值范围,称为该属性的域,(5),主键主键是指一个关系中的属性组合,它能唯一地标识一个元组6),关系模式关系模式是一组被命名的相关属性的集合,是对关系的描述关系名(属性1,属性2,……属性n), 例如:学生档案(学号,姓名……入学成绩),(7),关系模型。

    关系模型是指为一个应用系统所建立的一组关系模式,每个模式之间的联系是通过公共属性(即具有相同定义域的属性)实现的8/27/2024,5,,1. 关系数据库概念介绍和Transact-SQL,,关系有如下性质:,,(1) 一个域中的各项目是同类的,即每一列中的分量是同一类型的数据,(2) 不同的列可以出自同一个域,每一列称为属性,需给予不同的名称,(3) 列的顺序无所谓,即列的次序可以任意交换,(4) 关系中的各个元组是不同的,即不允许有重复的元组,(5) 行的顺序无所谓,即行的次序可以任意交换,(6) 每一分量必须是不可分的数据项,8/27/2024,6,,1. 关系数据库概念介绍和Transact-SQL,,Transact-SQL,SQL 是用于访问和处理数据库的标准的计算机语言因此全部主要的关系数据库管理系统都支持SQL但很多公司都拥有对标准SQL的扩充比如oracle的sql plus,sql server的T sql,Sybase的Transact-SQL8/27/2024,7,,1. 关系数据库概念介绍和Transact-SQL,,SQL语言包含4个部分:,※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。

    ※ 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句※ 数据查询语言(DQL),例如:SELECT语句※ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句8/27/2024,8,,1. 关系数据库概念介绍和Transact-SQL,,Transact-SQL是Sybase公司对标准SQL的一种扩展,增加了变量、运算符、函数、流程控制和注释等语言元素,它提供重要的额外功能和函数,如汇总计算、存储过程(预定义的 SQL 语句)和错误处理,使得其功能更加强大,允许SQL的数据操纵语言和查询语句包含在块结构和代码过程语言中8/27/2024,9,,2.,客户/服务器架构介绍,客户服务器(client/server,C/S)方式所描述的是进程之间服务和被服务的关系,客户是服务请求方,服务器是服务提供方客户向服务器发送请求,服务器向客户提供服务客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据8/27/2024,10,,2.,客户/服务器架构介绍,优点在于:,1. 应用服务器运行数据负荷较轻。

    2. 数据的储存管理功能较为透明数据库应用由两部分组成,即客户应用程序和数据库服务器程序二者可分别称为前台程序与后台程序B/S架构,(Browser/Server架构),8/27/2024,11,,2.,客户/服务器架构介绍,ODBC:开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)这些API利用SQL来完成其大部分任务ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库8/27/2024,12,,8/27/2024,13,,3.,在表中查询数据,以下四部分内容:,1. 使用 select 子句选择列,2. 利用 distinct 消除重复查询结果,3. 利用 from 子句指定表,4. 使用 where 子句选择行,select 命令使用一个称作查询的过程检索数据库表的行和列中存储的数据。

    查询有三个主要部分:select 子句、from 子句和 where 子句8/27/2024,14,,3.,在表中查询数据,—— 使用 select 子句选择列,使用 select * 选择所有列,select * from publishers,8/27/2024,15,,3.,在表中查询数据,—— 使用 select 子句选择列,选择特定列,select au_lname, au_fname from authors,8/27/2024,16,,3.,在表中查询数据,—— 使用 select 子句选择列,使用表达式,select title_id, total_sales * price from titles,8/27/2024,17,,3.,在表中查询数据,——,利用 distinct 消除重复查询结果,select au_id from titleauthor,select distinct au_id from titleauthor,可选的 distinct 关键字将从 select 语句的缺省结果中消除重复行比较两条语句,8/27/2024,18,,3.,在表中查询数据,—— 利用 from 子句指定表,在 from 子句中始终允许表和视图的完整命名语法:,database.owner.table_name,database.owner.view_name,如果 from子句包括多个表或视图,可用逗号分隔它们。

    可以赋给表名相关名,以节省键入时间通过在表名之后提供相关名,,从而在 from 子句中分配相关名,如下所示:,select p.pub_id, p.pub_name from publishers p,8/27/2024,19,,3.,在表中查询数据,——,使用 where 子句选择行,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 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,8/27/2024,20,,3.,在表中查询数据,——,使用 where 子句选择行,select title_id, type, advance from titles,where (type = "business" or type = "psychology") and advance !>5500,比较运算符,8/27/2024,21,,3.,在表中查询数据,——,使用 where 子句选择行,select title_id, total_sales from titles,where total_sales not between 4095 and 12000,使用 between 可以关键字指定包括的范围。

    8/27/2024,22,,3.,在表中查询数据,——,使用 where 子句选择行,列表(in 和 not in),select au_lname, state from authors,where state = "CA" or state = "IN" or state = "MD",select au_lname, state from authors,where state in ("CA", "IN", "MD"),比较两条语句,8/27/2024,23,,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),8/27/2024,24,,3.,在表中查询数据,——,使用 where 子句选择行,匹配字符串:like,% 与 0 个或多个字符的任意字符串相匹配 与单个字符相匹配。

    [specifier] 中括号将范围或集合括起来,分类符区分大小写[^specifier] 尖号 (^) 位于分类符之前,表示不包括• like "Mc%" 将搜索每个以“Mc”开始的名称(如 McBadden)• like "%inger" 将搜索每个以“inger”结尾的名称(如 Ringer、,Stringer)• like "%en%" 将搜索每个包含“en”的名称(如 Bennet、Green、,McBadden)• like "_heryl" 将搜索每个以“heryl”结尾且长度为六个字母的名称,(如 Cheryl)• like "[CK]ars[eo]n" 将搜索“Carsen”、“Karsen”、“Carson”和,“Karson”(如 Carson)• like "[M-Z]inger" 将搜索所有以“inger”结尾且以 M 到 Z 之间任意,单个字母开始的名称(如 Ringer)• like "M[^c]%" 将搜索所有以“M”开始且第二个字母不是“c”的名称8/27/2024,25,,3.,在表中查询数据,——,使用 where 子句选择行,匹配字符串:like,select phone from authors,where phone like "415%",8/27/2024,26,,4.,用集合函数分析数据,本节介绍 sum、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),8/27/2024,27,,4.,用集合函数分析数据,集合函数,结果,sum([all | distinct] expression),表达式中(不同)值的总和,avg([all | distinct] expression,表达式中(不同)值的平均值,count([all | distinct] expression),以 integer 形式返回的表达式中(不同)非空值的数量count_big [all | distinct] expression,以 bigint 形式返回的表达式中(不同)非空值的数量count(*),integer 形式的选定行数量count_big(*),bigint 形式的选定行数量。

    max(expression),表达式中的最大值,min(expression),表达式中的最小值,8/27/2024,28,,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,8/27/2024,29,,4.,用集合函数分析数据,将查询结果分组:group by 子句,,group by 子句将查询的输出划分为若干组可以按一个或多个列名进行分组,也可以按在表达式中使用数值数据类型所计算得出的列结果进行分组与集合一起使用时, group by 检索每个子群中的计算结果,并会返回多行select type, advance from titles group by type,常用:,select type, sum(advance) from titles group by type,8/27/2024,30,,4.,用集合函数分析数据,8/27/2024,31,,4.,用集合函数分析数据,选择数据组:having 子句,,使用 having 子句显示或拒绝由 group by 子句所定义的行。

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

    每个排序不是升序 (asc) 就是降序 (desc)如果未指定任何排序方式,则缺省为 ascselect pub_id, type, title_id,from titles,order by pub_id,8/27/2024,35,,4.,用集合函数分析数据,对查询结果进行排序:order by 子句,,可以使用 order by 子句以特定方式对 group by 的结果进行排序将 order by 子句置于 group by 子句之后例如,要得出每种类型书籍的平均价格,并按平均价格对结果进行排序select type, avg(price),from titles,group by type,order by avg(price),8/27/2024,36,,4.,用集合函数分析数据,对查询结果进行排序:order by 子句,可以使用选择列表中列的位置号来代替列名可以将列名和选择列表号混合使用select pub_id, type, title_id,from titles,order by 1 desc, 2, 3,select pub_id, type, title_id,from titles,order by 1 desc, type, 3,上述两语句产生结果相同,8/27/2024,37,,。

    点击阅读更多内容
    卖家[上传人]:沈阳哈登
    资质:实名认证