版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲Sybase基础知 二、Sybase服务器的基本过 三、Sybase产品概 四、SQLServer的主要内 五、Sybase的安装与配 第二讲数据库设备与空间管 一、概 二、设备 三、创建与使用 第三讲数据库与事务日 一、创建用户数据 二、更改数据 三、事务日 第四讲数据库安全性与用户管 一、安全管理概 二、理解数据库角 三、服务器的帐户管 四、数据库用户管 五、用户的权限管 第五讲数据库的备份与恢 一、基本概 二、数据库备 三、数据库的恢 四、制定备份与恢复的策 第六讲数据库与T-SQL语 一、关系模型的基本概 三、Sybase的数据类 四、数据定义语 五、数据语 六、Sybase预定义函 七、数据控制语 第七讲数据库编程基 一、批处 二、流程控制语 三、过 四、触发 五、游 六、事务——维持数据一致性和恢 第八 一、SQLSERVER用户和数据库用 二、SQLSERVER数据库用户分 四、SYBASESQLSERVER的角 第一讲SybaseSybase从软件角度看,客户/服务器体系结构是把某项应用或软件系统按逻辑功能划分为客户软件部分和服并将之转换为对服务器的请求,要求服务器为其提供数据的和检索服务;服务器端软件负责接收客端软件发来的请求并提供相应服务。客户/服务器融合了大型机的强大功能和控制以及PC机的低成本和较好的处理平衡。客户/服务二、Sybase服务器的基本过SQLSQLCPUOracleServer,SybaseSybaseSybase软件可划分为三个部分:一是进行数据管理与的联机关系数据库管理系统SybaseSQLServer;SybaseSQLTools;三是可把异构环境下其他厂商的应用软件和任何类型的数据连接在一起的接口软件Open/OpenServer。SQLServer是个可编程的数据库管理系统(DBMS),它是整个Sybase产品的软件,起着数据管SQLServerSQLServerSQLServer17MBSQLServerSybaseSybaseSQLServerT-SQLT-SQL的扩充,它除了有数据定义语句、数据语句和数据控制语句之外,主要增加了流程控制语句SQLServerServer四、SQLServerSybaseSQLServerRDBMS,master、model、tempdb、master它是管理和控制用户数据库以及服务器正常运行的数据库,它保存了大量的系统信息,如服dumptransactionmastermodel它是为创建用户数据库而提供的模板。每当创建新的数据库时,SQLServermodelModelModeltempdb它是个临时数据库,为服务器运行与处理提供一个共享的区域,如groupby和orderby的中间结果就存放在这里。TempdbSQLServer,modeltempdbtempdbtempdbcreatetablecreatetabletempdb..SQLServersybsystemprocs等。当任一数据库用户运行以sp_开头的过程时,SQLServer按照以下顺序查找:当前数据库、sybsystemprocsmastercreatedatabasemasterSQLServera.任何用户对象安装在master数据库中b.c.可以通过多个设备分配工作优化I/O性能(1)sa;(2)命名服务器;(3)修改文件名(SybaseCentral(4)更改缺省设备;(5)tempdb以下通过一个建立数据库的说明建立数据库的过程//创建数据库设备,设备大小以页(2K)diskinitname=”test_dbdev”,physname=”c:\test\test_dbdev.dat”,vdevno=10,diskinitname=”test_logdev”,phyname=”c:\test\test_logdev.dat”,vdevno=11,size=5120TEST_DB,20M,createdatabaseTEST_DBontest_dbdev=20logontest_logdev=10useTEST_DBc.SQLServer息:sysconfiguressyscurconfigs;sysconfigures,sysconfiguressyscurconfigssp_configure。第二讲数据库设备与空间管初始安装SQLServer时,安装程序和初始化主设备,并建立master、model、tempdba.master、model、tempdbmasterb.sybsystemprocs(sysprocsdev);c.为每个数据库创建三个预定义段:system、defaultlogsegment;d.mastersybsecurity,设备与管理考虑的主要问物理磁盘时,磁盘镜像或在单独的物理设备上保存日志为数据库恢复提供了两种机制Sybase或一原始磁盘分区上。它有两个对应的名称:逻辑名和物理名。NTDISKINITName=’device_name’,Physname=’physical_name’,DISKINITName=’My_Device’,Physname=’D:\database\My_device.dat’,Vdevno=3Size=5000sp_addumpdevice{‘disk’|’tape’}Logical_Name,Physical_Name,Sp_diskdefault设备名操作时,Sybase如果要使某一数据库成为镜像,被分配给该数据库的每一设备都必须成镜像。Master中地位特殊,如果它损坏了,SQLServer将。因此,如果有可能总是要镜像Master设备(在另一磁DiskMirrorName=’device_name’,Mirror=’physical_name’//’device_name’sp_dropdevicesp_addsegment,数据库名,设备sp_exetendsegment,数据库名,设备sp_dropsegment,数据库名,设备例如:alterdatabasemy_dbondata_devmy_db50M50Mdata_dev,systemdefaultalterdatabaselogoncreatetable表名(列名数据类型)[oncreate[clusterd|nonclusterd]index索引名on表名(列名)[on注意:按照定义,索引总是与表放在同一段上sp_ceobject,对象textimageSp_ceobject,“表名.字在段上创建索其表与其索引一起移动,整个表将离开创建表的段而迁移到创建索引的段中。通过这种方法,可以快当用户创建一个数据库时,Sybasesystem(包括所有用户对象的定义defaultLogsegmentsp_dropsegment,数据库名阈值(Threshold)管理是一种自动数据库自由空间的机制,Sybase的阈值管理允许用户为数据库某个段上的自由空间设置阈值并定义相应的过程。当该段上的自由空间低于所置头阈值时,Sybase自动运行相应的过程。Server在默认情况下会挂起所有数据事务,客户端应用程序停止执行。在每个分离的段上其事务日志的数据库均自动设置有最后机会阈值(LastChanceThreshold),其阈值是备份事务日志所需的自由空间的估计值。当该段上的自由空间低于所置阈值时,SybaseCREATEPROCEDURE@db_namevarchar(30),/*数据库名*/@seg_namevarchar(30),/**/@space_lefeint,/*剩余自由空间*/@statusint/*1,0*//*用户编写过程内容dumptransaction@db_namewithtruncate_only第三讲数据库与事务日志CreateDatabaseOn_1=Size_1,//单位:Mlogon日志设备[WithOverride]//在同一设备上创建数据库和事务日志时使用该选项[ForLoad] CreateDatabasetest_dbOndata_dev=100,//Logon SystemDefaultIndex_devSystemDefaultsp_changeddbownerTruealterdatabaseon设备名=扩展空 //单位如果扩展的设备对于数据库是新的,System和Default自动扩展到该设备上sp_logdevice举例:将数据库另外扩充5M,用于日alterdatabaseonsp_logdevicemy_db,my_devdropdatabase删除设备前必须删除其上的所有数据库,删除设备令是日志文件是用来记录数据库每一次修改活动的文件。SQLServersyslogs,也称为事务日志。事务日志是撤消事务和出现故障时恢复事务的依据。执行的原子性保持数据的一致性彼此的性作用的持久性(Durability)ACID事务在运行过程中,SQLServer别有用来记录操作活动的数据页(datapage)和日志页(logpage)committranusedeclare@vdevnoselect@vdevno=max(convert(tinyint,substring(convert(binary(4),d.low),v.low,1)))+1frommaster.dbo.sysdevicesd,master.dbo.spt_valuesvwherev.type=’E’anddeclare@v_strselect@v_str=convert(char(2),@vdevno)print@v_strdiskdiskdiskcreatedatabaseYDMISDBonYDDATA=300,YDINDEX=200logonYDLOG=150useYDMISDBexecutesp_addsegmentindexdev,YTMISDB,YTINDEXexecutesp_dropsegment“default”,YTMISDB,YTINDEXexecutesp_dropsegmentsystem,YTMISDB,YTINDEXuseloaddatabaseYDMISDBfromonlinedatabase数据库的安全性是指保护数据库以防止不合法的使用所造成的数据、更改或破坏。SQLServer的安SQLServerSybaseSybase系统管理员sa_roleSQLSQLServer系统安全管理员sso_rolesa_role操作员oper_role创建新的角色:create赋予角色权限设置登录帐户的角色权限格式:sp_role“grant”|”revoke”,角色名,登录帐号名Sybase器后,才能使用Sybase系统中的一些资源,每一个这样的登录帐户在系统中被赋予Server级的标识sp_addloginmaster赋予角色。组(group)Sp_addgroup将一个用户加入某个组:(1)改变用户属性;(2)publicsp_adduserSp_addalias别名——相当于给某个用户配一把别人的(登录)控制用户对数据库对象的,有两类权限:命令权限和对象权限CreateDatabaseCreateTableCreateViewCreateProcedureCreateRuleCreatedefault命令权限与收权Grant命令权限组合to组名|用户名|角色Revokefrom|用户名|角色对象权限与收权Grantontopublic|组名|用户名|角色[WithGrantOption]Revokeontopublic|组名|用户名|角色Frompublicpublic|组名|用户名|角色
GrantInsert,Deleteonto
GrantExecuteonto
GrantSelectonto
GrantAllonto
Revokeupdateonfrom
RevokeCreateTable,Createfrom数据库的备份与恢复是SQLServer保障数据安全的一种重要,为防止意外,数据库管理员必须定期SQLServer使用事务来所有数据库变化。事务是SQLServer的工作单元。一个事务包含一条或多条在磁盘上修改的页。SQLServerSQLServerdumpdatabasetodumptransaction{with{truncate_only|no_log}to转储设备名/物理文件名[withNo_truncate]Truncate_onlyno_logTruncate_onlyno_log,它不为数据库建立检查点。两个选项都会丢掉日志。当使用了这两个参数后,应及No_truncatedump (2)dump withdump withdump withloaddatabaseloaddatabase数据库名fromloadtransactionfrom某数据库数据和日志分别在两个独立的磁盘上,正常运转时的执行的备份计划如下,每天的17:00执10:00、12:00、14:00、16:0017:001(100M)10:002(30M)12:003(30M)14:004(30M)16:005(30M)17:006(30M)Dumpdatabase、Dumptransaction、Dumptransaction、Dumptransaction、Dumptransaction、Dumpdumptransactionwithno_truncate使用loaddatabase的数据库转储,磁带使用loadtransaction提交的事务日志转储,磁带onlinedatabaseonline。4:50dumptransactionwithno_truncate使用loaddatabase的数据库转储,磁带loadtransaction2、3、4、5使用loadtransaction提交的事务日志转储,磁带onlinedatabaseonlineT-SQL数据定义语言(DDL)数据语言(DML)——用来查询与更新数数据控制语言(DCL)T-SQLSybaseSQL92SQLT-SQL标识符由1-30个字符或数字构成,但首字符必须为字母。临时表的表名以#开头,长度过EXEC当执行语句在批处理的句首时,EXEC在创建表或局部变量时,必须使用Sybase系统预定义类型1. 整数类型—— 浮点类型—— 1/30 用来定义数据库对象。数据库对象是Sybase用来数据的逻辑实体,主要有:表(Table)、视图(View)、临时表(TempTable);主键(PrimaryKey)、外键(ForeignKey)、索引(Index)、规则(Rule)、默认值(Default);过程(StoredProcedure)、触发器(Trigger)表Create(column_namedatatype[default{[{identity|null|notnull}]|[[constraint{{unique|primarykey}[clustered|nonclustered][on现问题时,在的情况下,重建过程可以得到简化,也能比较好的对数据库的建设过程进行监视。···IDENTITY·索引加速了数据检索,AdaptiveServer···Server·identity·经常被排序的列,即被列在orderby子句中的列,最好对其建立索引以便AdaptiveServer能充··Create[unique][clustered|nonclustered]indexindex_nameOn[[database.]owner.]table_name[onsegment_name][with同的物理设备上,也即将簇聚索引和基表物理上分开。这是不允许的,在后面讨论设备、数据键
UniquePrimarykeyUniquePrimarykey确保数据一致性,默认情况下,Unique约束产生唯一的非索引,Primarykey约束产生唯一的索引。PrimarykeyUnique:Primarykey,Unique的一种安全机制。视图使得用户集中精力在感的数据集上。createviewasselect[distinct]select_statement[withcheckoption]有distinct关键字的视图不能更新。当视图涉及关联时,定义视图要,这时是对多表操作,完整性[into[from[where[groupby[all]字段列表][having[orderby字段列表[asc|desc]]注意:Selectgroupbyorderbywhere,groupbyorderbyHavingwhereHavinggroupbywhere子句不能用函数,而Having子句可以。Select1:select*from如:select*from2:selectfrom如:selectpub_id,pub_namefrom3:重命名查询结果中的列,语法为selectcolumn_headingcolumn_namefromtable_name如:selectPublisherpub_name,pub_idfrompublishers4:selectselect+ - / * %取selecttitle_id,total_sales,total_sales*2from5:distinct可选的消除select语句的结果中的重复行。若不指定distinct,缺省值为all,将检索出包含重如:selectdistinctau_idfrom6:选择行——whereselectselectselect_listfromtable_listwheresearch_conditionswhere(或称限制)包括:·比较运算符(=,<,>,!=等如:where·范围(betweennot如:wheretotal_salesbetween5000and·列表(innot如:wherestate·匹配字符(likenot如:wherephonelike·未知值(isnullisnotnull)如:whereadvanceisnull·以上各项的组合(and,如:whereadvance<5000ortotal_salesbetween500and7: Avg([all|distinct]expression)数值列中(不重复)Max(expression)ExpressionMin(expression)Expression如:selectavg(advance),sum(total_sales)fromtitleswhereselectcount(*)fromselectavg(distinctprice)fromtitlesselectmax(price)frombooks8:分组组织查询结果——groupbygroupbyselect如:selecttype,advancefromtitlesgroupbytype9:选择分组数据——havinghavinggroupbywhereselectHavingwherehavingwhereSelecttypefromtitlesgroupbytypehavingSelecttypefromtitlesgroupbytypehavingtypelike“p%”10:查询结果排序——orderbyOrderby(asc)或降序的(desc)。若不pub_idSelectpub_id,type,title_idfromtitlesorderby11:selectpublishers.pub_id,publishers.pub_name,authors.*frompublishers,authorswhere12:Compute是Sybase对SQL标准中Group子句的扩充,可以将其看作带计算的Group子句。例如Selecttype,price,advanceFromtitlesOrderbyComputesum(price),sum(advance)byInsert用Insert命令向数据库中添加行有两种方法:使用values或使用select语句InsertInsert[into]表名[(字段列表{values(值列表举例:insertintopublishersInsertintopublishers(pub_id,pub_name)values(‘1756’,’TheHealthInsertauthorsselect*fromInsertauthors(au_id,address,au_lname,au_fname)Select*fromDeleteDeleteDeleteDelete表名[from表名列表][where举例:DeletepublisherswhereDeletetitlesFromauthors,titlesWhereUpdateUpdateUpdateUpdateSetcolumn_name1={expression1|null|(select_statement)}[from表名列表][whereupdateauthorsset_au_lname=”Health”,aufname=”Goodbody”whereupdatetitlessettotal_sales=total_sales+qtyfromtitles,saleswheretitles.title_id=sales.title_id3.abs(power(isnull(1,GRANTREVOKE第七讲数据库编程基础isql“go”。titleauthorsselectcount(*)fromtitlesselectcount(*)fromauthors变量与赋全局变量由系统预定义,以符号@@局部变量使用Declare语句,这个变量必须以符号@开头,后跟一个标识符Declare@变量名 变量赋值使用Select语句,未赋值的变量其值为Null。Declare@msgSelect@msg=’HowareSelect@msg=emp_namefromemployeeWhereemp_id=SQLStatementBlock/*SQL*/If语句(块if(selectmax(id)fromprintselectname,type,idfromsysobjectswhereid>50While语句(块Continue执行下一次循环 While(selectavg(price)fromtitles)>$20Updatetitlessetprice=price/2If(selectavg(price)fromtitles)<$40
Return:Return[
RaiseError
Waitfor三、过过程是在服务器端的一类数据库对象,它实质上是一段用SQL语言编写的程序,它在服务CreateProcedure[owner.] SQL(块调用其他过程,返回状态值,返回参数值,并且可以在SQLServer执行。可以在SQLServer执行对数据库设计有特别重要的意义。SQLServer提供的过程称为系统过程。应用程序也能执行过程,从而实现服务器和客户之间的协同作业如(pubs2):Createproctitleid_proc(@title_idvarchar(80))SelectSelecttitle,title_id,priceformtitlesWherelower(title_id)like@title_idReturn@@rowcount注意例子中的黑体部分,这实际上是一条赋值语句。该过程有返回值需要对过程作些说明●Createprocedure●CreateprocedureCreateViewCreatedefaultCreateruleCreatetriggerCreateprocedure不能使用use语句好理解,过程是针对数据库的,不能在一个数据库里另外的数据库。如果在存的键,表是临时表,在过程结束后不能看见创建的临时表;否则的话每运行一次过程就创建一过程里不能创建一个对象,删除它;然后又在同一过程里用相同的名字创建新的对象。实际上SQLServer在过程运行时而不是在编译时创建对象的如果过程调用另外的过程,则第二个过程可以调用在第一个过程里创建的对象过程包含的最多参数为255个,对过程里的局部和全局变量没有限制最后讨论一下系统过程。系统过程以sp_开头,当然用户创建的过程也可以以sp_开头;系sybsystemprocs统过程的execute。a.用户标志和。这一类的过程主要由于:增加、删除或报告在SQLServer上的登录,增加、删除或sp_addlogin,sp_adduser,sp_helpgroup,sp_dropuserb.过程的调用。这类过程用于:增加、删除或报告能存取本SQLServer的服务器;增加能从远程服务器上存取本SQLServer的用户名。这类过程有:sp_addremoogin,sp_addserver,sp_dropserver等。c.数据定义和数据库对象。这类过程用于:连接和定义规则和缺省值,增加、删除或报告主码、外码和公共码;增加、删除或报告用户定义的数据类型。这类过程有:sp_bindfault,sp_bindrule,sp_help,sp_helpdb,sp_foreignkey,sp_helptextd.系统管理。这类过程用于:增加、删除或报告数据库及转储设备;报告锁;设置的数据库选择及用户正进行的进程;修改及报告配置变量;SQLServer的活动。这类过程有:sp_addumpdevice,sp_dropdevice,sp_helpdevice触发器是一种用来保障参照完整性的特殊的过程,它不同表中数据间关系的有关规则。当对指定的表进行某种特定操作(如:Insert,Delete或Update)时,触发器产生作用。触发器可以调用过CreateTrigger[owner.]触发器名On[owner.]表名For{insert,update,delete}SQL(块插入一个新行,必须保证外键与主键相匹配,触发器应该首先检查入行与主键表的连接insertedtitlestitle_idCreatetriggerforinsertriglOnsalesdetailForIf(selectcount(*)FromWheretitles.title_id=inserted.title_id)!=@@rowcountRollbackPrint“No,sometitle_iddoesnotexistinPrint“Added!Allthetitle_idisexistin的行数(count(*))与@@rowcount一个表最多只能有三个触发器●Truncatetable说明:Sybase:DeletedInserted1.SelectSQLSelect下面讲述的是后端(服务器)在使用游标之前必须它。指定定义游标结果集的查询。通过使用forupdate或forreadDeclarecursorFor[for{readonly|update[ofdeclarepubs_crsrforselectpub_name,city,statefrompublishersforupdateofopen 在游标后,必须打开它以便用fetch,update,delete、修改、删除行。在打开一个游标后,它将被放在游标结果集的首行前,必须用fetch语句该首行。从游标中数在并打开一个游标后,可用fetch命令从游标结果集中获取数据行FetchFetch游标名[into举例:fetchpub_crsrinto值 0Fetch1Fetch2结果集没有的数据,当前位置位于结果集最后一行,而客户对该游标仍发出Fetch语句时。updatedeletedelete[from]wherecurrentof举例:d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大皮球音乐说课稿
- 2025-2026学年一个师傅仨徒弟说课稿
- 2025-2026学年大班听说游戏活动说课稿
- 2025-2026学年奥尔夫音乐启蒙说课稿
- 2025-2026学年ai说课稿界面
- 2025-2026学年初中八年级写作说课稿
- 2025-2026学年奥尔夫课程说课稿
- 2025-2026学年56乘法口诀说课稿
- 2025-2026学年安全记心中说课稿
- 2025-2026学年大火箭美工说课稿
- 广东深圳市龙岗区实验学校2026-2027学年度第一学期 七年级9月阶段性反馈英语试卷(含答案)
- 2026中控证考试题库及答案解析
- 无产权车位使用权转让协议书2026年模板
- 关于新生儿科输液泵故障的应急预案演练脚本
- 吉兰-巴雷综合征合并吞咽困难管理专家共识(2026版)
- 探索HIV-1感染者Vpr基因多态性及其临床关联:从分子特征到医学启示
- 网吧卫生管理制度及流程
- 卫浴装修公司合作协议7篇
- 韦氏-儿童智力测验量表
- 内科诊所规章制度
- 《千字文》硬笔楷书字帖
评论
0/150
提交评论