Sybase数据库管理培训 1.docx
- 文档编号:10610001
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:38
- 大小:36.25KB
Sybase数据库管理培训 1.docx
《Sybase数据库管理培训 1.docx》由会员分享,可在线阅读,更多相关《Sybase数据库管理培训 1.docx(38页珍藏版)》请在冰豆网上搜索。
Sybase数据库管理培训1
Sybase数据库管理培训
一Sybase数据库简介
1.版本
1984年,MarkB.Hiffman和RobertEpstern创建了Sybase公司,并在1987年推出
了Sybase数据库产品。
SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是NovellNetware环境下运行的版本,三是WindowsNT环境下运行的版本。
对UNIX操作系统目前广泛应用的为SYBASE10及SYABSE11forSCOUNIX。
2.Sybase数据库的特点
(1)它是基于客户/服务器体系结构的数据库
一般的关系数据库都是基于主/从式的模型的。
在主/从式的结构中,所有的应用都运行在一台机器上。
用户只是通过终端发命令或简单地查看应用运行的结果。
而在客户/服务器结构中,应用被分在了多台机器上运行。
一台机器是另一个系统的客户,或是另外一些机器的服务器。
这些机器通过局域网或广域网联接起来。
客户/服务器模型的好处是:
●它支持共享资源且在多台设备间平衡负载
●允许容纳多个主机的环境,充分利用了企业已有的各种系统
(2)它是真正开放的数据库
由于采用了客户/服务器结构,应用被分在了多台机器上运行。
更进一步,运行在客户端的应用不必是Sybase公司的产品。
对于一般的关系数据库,为了让其它语言编写的应用能够访问数据库,提供了预编译。
Sybase数据库,不只是简单地提供了预编译,而且公开了应用程序接口DB-LIB,鼓励第三方编写DB-LIB接口。
由于开放的客户DB-LIB允许在不同的平台使用完全相同的调用,因而使得访问DB-LIB的应用程序很容易从一个平台向另一个平台移植。
(3)它是一种高性能的数据库
Sybase真正吸引人的地方还是它的高性能。
体现在以下几方面:
●可编程数据库
通过提供存储过程,创建了一个可编程数据库。
存储过程允许用户编写自己的数据库子例程。
这些子例程是经过预编译的,因此不必为每次调用都进行编译、优化、生成查询规划,因而查询速度要快得多。
●事件驱动的触发器
触发器是一种特殊的存储过程。
通过触发器可以启动另一个存储过程,从而确保数据库的完整性。
●多线索化
Sybase数据库的体系结构的另一个创新之处就是多线索化。
一般的数据库都依靠操作系统来管理与数据库的连接。
当有多个用户连接时,系统的性能会大幅度下降。
Sybase数据库不让操作系统来管理进程,把与数据库的连接当作自己的一部分来管理。
此外,Sybase的数据库引擎还代替操作系统来管理一部分硬件资源,如端口、内存、硬盘,绕过了操作系统这一环节,提高了性能。
3.Sybase数据库的组成
Sybase数据库主要由三部分组成:
(1)进行数据库管理和维护的一个联机的关系数据库管理系统SybaseSQLServer;
SybaseSQLServer是个可编程的数据库管理系统,它是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用。
(2)支持数据库应用系统的建立与开发的一组前端工具SybaseSQLToolset;
ISQL是与SQLServer进行交互的一种SQL句法分析器。
ISQL接收用户发出的SQL语言,将其发送给SQLServer,并将结果以形式化的方式显示在用户的标准输出上。
DWB是数据工作台,是SybaseSQLToolset的一个主要组成部分,它的作用在于使用户能够设置和管理SQLServer上的数据库,并且为用户提供一种对数据库的信息执行添加、更新和检索等操作的简便方法。
在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜单的,因此操作比ISQL简单,是一种方便实用的数据库管理工具。
(3)可把异构环境下其它厂商的应用软件和任何类型的数据连接在一起的接口SybaseOpenClient/OpenServer。
通过OpenClient的DB-LIB库,应用程序可以访问SQLServer。
而通过OpenServer的SERVER-LIB,应用程序可以访问其它的数据库管理系统。
二SYBASE有关概念
SybaseSQLServer是一个多库数据库系统。
这些数据库包括系统数据库和用户数据库。
而不论是系统数据库还是用户数据库,都建立在数据库设备上。
1、数据库设备
所有的数据库都创建在数据库设备上。
所谓数据库设备,不是指一个可识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。
增加一个新的数据库设备时,必须对这些设备“初始化”。
初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。
初始化数据库设备使用DISKINIT命令:
DISKINIT
NAME=设备名,
PHYSNAME=物理设备名,
VDEVNO=虚拟设备号,
SIZE=块数
其中,NAME指数据库设备名,此名将用于CREATEDATABASE和ALTERDATABASE命令。
PHYSNAME是原始磁盘分区或操作系统文件名。
VDEVNO是数据库设备的标识号,在SQLServer中,它必须是唯一的。
SIZE的单位是2K的块,对于新创建的数据库,最小的SIZE是model数据库的尺寸,即1024个2K的块(2M)。
例如:
/*将/dev目录下400M的物理设备初始化为SYBASE的数据库设备tele114_log01*/1>diskinit
2>name=“tele114_log01”,
3>physname=“/dev/rtelelog”
4>vdevno=4
5>size=204800/*2Kbyte*204800=400Mbyte*/
6>go
2、段
数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),一数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。
当用户创建一个数据库时,SQLSERVER会自动在该数据库中创建三个段:
SYSTEM、LOGSEGMENT、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象
在数据库中创建段的步骤是:
x先用Diskinit初始化物理设备
x通过使用Createdatabase和alterdatabase的on子句,使数据库设备对数据库可用,于是新设备自动增加到数据库的default和system段。
一旦数据库设备存在并对数据库可用,使用存储过程Sp_addsegment定义数据库的段。
语法如下:
Sp_addsegment段名,数据库名,设备名
3、系统数据库
安装Sybase数据库时自动生成的下列系统数据库:
●主数据库master;
●模型数据库model;
●系统过程数据库sybsystemprocs;
●临时数据库tempdb。
●也可选择下列数据库:
●安全审核数据库sybsecurity;
●示例数据库pubs2;
●命令语法数据库sybsyntax。
(1)master数据库
包含许多系统表和系统过程,从总体上控制用户数据库和SQLServer的操作,构成了SYBASE系统的数据字典。
MASTER数据库主要记录信息为:
●登录帐号(SQL服务器用户名);syslogins,sysremolelogins
●正在执行的过程;sysprocesses
●可修改的环境变量;sysconfigures
●系统错误信息;sysmessages
●SQL服务器上每个数据库的信息;sysdatabases
●每个数据库占用的存储空间;sysusages
●系统上安装的磁带及磁带信息;sysdevices
●活动锁信息;syslocks
(2)model数据库
提供了新用户数据库的初型。
当我们每次用CREATEDATABASE命令时,SQLServer都产生一个model数据库的拷贝,然后把它扩展到命令要求的尺寸。
如果我们修改了model数据库,那么以后新创建的数据库都将随它而改变。
下面是几个通常用到的对model数据库的改变:
●增加用户数据库类型、规则或缺省;
●可存取SQLServer上所有数据库的用户用sp_adduser增加到model数据库上;
●缺省权限(特别是guest帐号)可在model中建立;
●诸如selectinto/bulkcopy那样的数据库选项可在model中设置。
这些设置反映到所有新创建的数据库中。
它们在model中最原始的值是关(off)。
在一般情况下,大多数用户无权修改model数据库,又没被授权读取。
因为model中所有内容已拷贝到新数据库中,授权读model没什么意义。
(3)sybsystemprocs数据库
库中存储系统过程,当用户执行一存储过程(以sp_开始)时,SQL服务器首先在用户当前数据库中搜索指定的存储过程,如果没有相应过程,则到系统过程数据库中寻找,若没有,再到MASTER数据库中寻找。
(4)临时数据库tempdb
数据库为临时表和临时工作提供了一个存储区域。
临时数据库是SQLServer上所有数据库共享的工作空间。
由于这些表都是临时的,所以每当用户退出或系统失败,这些表都将消失。
(5)安全审核数据库sybsecurity
数据库中保存系统的安全审核信息,它可跟踪记录每个用户的操作情况,为维护系统安全提供控制手段。
(6)示例数据库pubs2
为用户提供一个学习SYBASE的数据库模型。
(7)命令语法数据库sybsyntax
库中保存SYBASE数据库的命令语法及支持的语言库。
4、用户数据库
用户数据库是指用Createdatabase命令创建的数据库。
所有新的用户数据库都要在master数据库中创建,也就是说,不能存取master数据库的用户是无权创建新的数据库的。
SA可以将创建数据库的权限授予其他用户。
新建数据库中存在一些系统表,在sysusers表中至少有一条记录,既该数据库的创建者。
数据库创建时,创建者既为该数据库的owner,当然创建者可以将这一地位或这一所有权用系统过程授予别的用户。
5、数据库对象
(1)表(Tables)
在一个关系数据库中,表是最重要的数据库对象,对应于关系数据库理论中关系,与DBASE或FOXPRO中的DBF文件是类似。
一切数据都存放在表中。
其它数据库对象都是为了用户很好地操作表中的数据。
表都以一张二维表的形式存在。
其中,每一列称之为一个字段,或一个域;而每一行称之为一个记录,也就是一项数据。
有一类表,它们的名字都是以sys开头的,这些表称为系统表,系统表记录着有关SQLServer的信息。
在master数据库中的表大部分为系统表,这些表是随着master数据库的创建而建立的。
另外,每个用户数据库在创建时都有一个系统表的子集。
例如,只有在master数据库中才有的系统表有:
sysconfigures、sysdatabases、sysdevices、syslogins等;在用户数据库和系统数据库中都有的系统表有:
sysalternates、syscolumns、sysindexs、syslogs、sysobjects、sysusers等。
(2)视图(Views)
视图是查看一张或几张表中的数据的一种方式。
通过将一张或几张表中的一部分数据进行组合得到视图。
视图看上去与表非常相象,但与表还是有着本质的区别。
通过视图看到的数据实际上都是存放在表中的,在数据库中仅存在视图的定义。
使用视图的好处是:
●操作方便
●安全性
(3)索引(Index)
索引是对字段生成的,用于加快数据的检索。
在Sybase数据库中,索引是由系统自动管理的,也就是说,Sybase的索引操作对用户是透明的。
表的索引一旦建立,系统会自动对其进行更新维护以使它与相应表对应一致;操作时,用户无须指定索引,系统会自动确定是否使用索引进行操作。
(4)存储过程(Storedprocedures)
存储过程是用T-SQL语言编写成的SQL子例程,它存储于SQL服务器上供用户调用执行。
与一般的SQL语句和批处理语句不同的是,存储过程是经过预编译的。
当首次运行一个存储过程时,SQLServer的查询处理器将对其分析,并产生最终的执行方案。
由于查询处理的大部分工作已经完成,所以以后执行存储过程时速度将会很快。
执行存储过程时可带参数并可调用其他存储过程,执行完毕后返回信息以指示是否成功完成相应操作。
存储过程有两种:
一种是SQL服务器安装时自动建立的系统存储过程(系统过程),另一种是用户自己创建的存储过程。
系统过程是用于系统管理,并且为用户提供了从事数据库管理的一种途径。
这些系统过程都是以sp_开头的,它们都放在master数据库中且隶属于sa(系统管理员)。
也有很多可以在任一个数据库中运行的系统过程。
常见的系统过程有:
Sp_addgroup在当前数据库中建立一个数据库用户组
Sp_addlogin建立一个SQL服务器用户
Sp_adduser在当前数据库中增加一个用户
sp_changegroup改变数据库用户组
Sp_dboption查询或改变数据库系统设置
Sp_dropdevice删除设备
Sp_dropgroup删除组
Sp_droplogin删除帐号
Sp_help查询数据库对象及所有数据库信息
Sp_helpdb查询数据库信息
Sp_helpdevice查询设备信息
Sp_helpgroup查询组信息
Sp_helpindex查询给定表信息
Sp_helpuser查询用户信息
Sp_lock查询当前加锁信息
Sp_monitor查询SQL服务器统计信息
Sp_password改变登录帐号口令
Sp_spaceused查询表中的行数、数据页数及空间大小
Sp_who查询当前用户及过程信息
Sp_syntax查询操作语法
Sp_configure配置系统参数
例:
1>sp_help
2>go
(5)触发器(Triggers)
触发器是一种特殊的存储过程,用来维护不同表中的相关数据的一致性。
当在一张表中插入、删除和修改数据时,触发器就会触发另一个存储过程,从而保持数据的一致性。
(6)缺省与规则(Defaultsandrules)
缺省是在数据录入时,若用户没有输入数据,SQLServer自动输入的值。
规则是可以理解为对数据库、某一列、某用户数据类型的限制。
三SQL查询语言
SQL不仅包括查询数据的有关命令,还包括创建数据库及其对象,增、删、改数据等功能。
分别定义为数据查询语言,数据定义语言及数据操作语言。
这里先介绍数据查询语言。
其基本句法为:
Selectselect_listfromtable_listwheresearch_conditions
1、简单查询
A、选择若干列
Selectexpression[,expression]...Fromtable_list
B、选择若干行
查出电话号码以415到头的记录
Select*fromcode_1thwheretellike'415%'
查询中消除值重复的行
Selectdistincttelfromcode_1th
对Text和char可用like,其中可用通配符‘%’及‘-’,分别代表多个字符和单个字符。
其他常用查询条件有:
(出text类型除外)
大小比较=、>、<、>=、<=、!
=、!
>、!
<
范围确定betweenexp1andexp2/netbetweenexp1andexp2
列表或集合in(exp1[,exp2,[...]])notin(...)
谓词like
多重条件andornot
2、连接查询
A、等值连接和不等值连接:
通过‘=’来比较两个表之间的数据时,称为等值连接;而通过其他比较符时,称为不等值连接
等值连接:
Select*frompublishers,authorswherepublishers.city=authors.city
不等值连接:
Select*frompublishers,authorswherepublishers.city>authors.city
B、自然连接:
在连接的目标列中相同名的列只保留一个
Selectpublishers.pub_idpublishers.pub_name,publishers.state,authors.*
Frompublishers,authorswherepublishers.city=authors.city
3、子查询
A、表达式子查询
Selectau_lname,au_fnamefromauthorswherecity=
(selectcityfrompublisherswherepub_name="abcde")
可以使用一切大小比较操作符;在操作符和子查询之间可以使用All或any。
B、限定谓词子查询
Selectpub_namefrompublishersfrompublishers
Wherepub_idin
(selectpub_idfromtitleswheretype='abcde')
C、相关查询
相关查询即嵌套查询依赖于外部父查询的值,嵌套查询要重复执行若干次。
Selectdistinctt1.typefromtitlest1
Wheret1.typein(selectt2.typefromtitlest2wheret1.pub_id!
=t2.pub_id)
4、集函数、分组与排序
A、对查询结果进行聚集处理
聚集函数:
Sum([all|distinct]expression),avg([all|distinct]exoression),
Count([all|distinct]expression),count(*),max(expression),min(expression)
Selectcount(*)fromtitles
B、用Groupby和having子句对查询结果分组
Selecttype,avg(advance),sum(total_sales)fromtitlesgroupbytype
Selecttypefromtitlesgroupbytypehavingcount(*)>1
Having类似于where,但where不能用聚集函数。
C、用Orderby对查询结果进行排序
Selecttype,avg(price)fromtitlesgroupbytypeorderbyavg(price)
D、Compute子句
完成基于每一组中的值的聚集运算,聚集值作为一个新行出现在查询结果中。
Selecttype,priceadvancefromtitlesorderbytypecomputesum(price),sum(advance)bytype
四数据库、数据库对象的增、删、改
1、数据库
x打开数据库
Usetele114
x创建数据库。
拥有创建数据库权利的用户可以创建自己的数据库。
CREATEDATABASEtele114
ONtele114_def01=10,tele114_run01=200,tele114_idx01=200
LOGONtele114_log01=80
x删除数据库
Dropdatabasetele114
x修改数据库
Alterdatabasetele114ontele114_run02=100,tele114_idx02=100
2、表
x建表
createtablespec_code
(
Notinyintnotnull,/*特编号(0--99)*/
Namevarchar(50)null,/*名称*/
Addrvarchar(50)null,/*地址*/
Telvarchar(8)null,/*电话号码*/
StaffNovarchar(4)notnull/*录入员工号*/
)
onsegrun/*将表放在segrun段上*/
x删除表
Droptabeltele114_1th
x修改表,在表中增加新的列(用这个命令增加的列必须允许null值)
Altertablefriends_etcaddcountryvarchar(20)null
x表级或列级约束
Createtablemy_publishers
(pub_idchar(4),
Pub_namecarchar(40).
Constraintmy_chk_constraint
Check(pub_idin('1389','0736','0877'))
Or(pub_namenotlike'badnewsbooks'))
x指定默认值
Createtableny_titles
(title_idchar(6t),
Titlevarchar(80),
Pricemoneydefaultnull,
Total_salesintdefault(0))
x指定Unique和primarykey约束
Primarykey不允许空值,常用来产生唯一的聚集索引,unique允许空值,常用来产生唯一的非聚集索引
Createtablemy_sales
(stor_idchar(4),
Ord_numvarchar(20),
Datedatetime,
Uniqueclustered(stor_id,ord_num))
3、索引
x建立索引
createuniqueclusteredindexcode1thidx1oncode_1th(Code1,Name,UnitNo1,Used)
onsegrun
Unique:
建立唯一性索引
Clustered:
建立聚集索引,使得数据行的逻辑顺序与物理顺序一致,查询速度较快;每个表仅允许建立一个唯一性索引。
(非聚集索引nonclustered)
Onsegrun:
将索引放在segrun上
x删除索引:
dropindexcode_1th.code1thidx1
默认:
当用户没有显示地为某一列赋值时,SQLSERVER为该列插入的值
4、规则:
可以理解为对数据库、某一列、某用户数据类型的限制.规则中的任何变量名必须
冠以@,不能直接引用列
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Sybase数据库管理培训 Sybase 数据库 管理 培训