免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11145 | 回复: 15
打印 上一主题 下一主题

sybase数据库知识(摘自华为学习资料) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-30 22:04 |只看该作者 |倒序浏览
呵,请各位给我捧捧场,对不起,附件放不上,我只有把它给COPY过来啦
目  录
Sybase 11.5数据库介绍        4
1.基本概念        4
1.1、 Sybase 11.5        4
1.2、数据库服务器、数据库        4
1.3、物理设备、逻辑设备        4
1.4、系统表、系统存储过程        5
2.常用命令        6
2.1、 isql        6
2.2 、Select        7
3.数据库启动        7
3.1、自动启动        7
3.2、手工启动        7
3.3、检查数据库系统是否启动        7
4.数据库关闭        7
4.1、自动关闭        7
4.2、手工关闭        8
5.备份        9
6.恢复        9
7.日志文件        9
7.1、数据库事务日志(transaction log)        9
7.2、数据库错误日志--$SYBASE/install/*.log        10
7.3、网管日志(告警、性能、操作、系统日志)        10
8.常见错误        10
9.习题        10

Sybase 11.5数据库介绍
1.基本概念
1.1、 Sybase 11.5
Sybase 11.5是Sybase公司的最新版关系数据库,具有先进的技术、优异的性能和可靠的安全性。SBSTMMN-RMS网管系统选用了Sybase11.5作为后台数据库系统,管理和处理网管系统的数据。
由于数据库系统管理的是一个动态的数据集合,必须对数据库进行一些日常维护操作,如备份、恢复等。
1.2、数据库服务器、数据库
安装在Sun Solaris操作系统上的Sybase-11.5数据库系统通常是由数据库服务器和备份服务器组成的。数据库是安装在数据库服务器上的数据集合,包括系统数据库和用户数据库,如系统安装完以后缺省安装了master、model、tempdb、和sybsystemprocs数据库,网管系统的数据库是mib。其中master数据库存放系统表,决定数据库的整体表现和用户数据库的信息;model是建立新的用户数据库的摸板;tempdb存放临时表和查询时产生的临时数据;sybsystemprocs存放数据库的系统存储过程。
备份服务器用于数据库的备份。
1.3、物理设备、逻辑设备
数据库服务器管理着许多逻辑设备,系统数据库和用户数据库就建立在这些逻辑设备上。逻辑设备对应与操作系统的物理设备。物理设备有字符设备(也叫裸设备,没有缓冲,如/dev/rdsk/c0t3d0s5)和块设备(经过了缓冲,如/usr/local/sybase/master.dat)。一般选用没有缓冲的字符设备。
1.4、系统表、系统存储过程
master数据库存放着一些决定系统整体表现的系统表,sybsystemprocs存放系统存储过程。这些系统表和系统存储过程是我们进行数据库维护的手段和工具。
1.4.1、重要的系统表
信息        系统表
用户帐号        syslogins
当前进程        sysprocesses
配置信息        sysconfigures
系统错误信息        sysmessages
数据库服务器里的数据库        sysdatabases
每个数据库分配的空间和使用        sysusages
系统的设备        sysdevices
当前激活的锁        syslocks
字符集        syscharsets
语言        syslanguages

1.4.2、重要的系统存储过程
        sp_addlogin
        sp_addumpdevice
        sp_adduser
        sp_configure
        sp_gropdevice
        sp_help
        sp_helpdb
sp_helpindex
        sp_helpdevice
        sp_monitor
        sp_password
        sp_who
2.常用命令
2.1、 isql
isql是sybase的一个前台工具,所有的sql查询语言和系统存储过程必须在isql下执行。在Unix的命令行下可以启动isql,命令格式如下:
isql –S<数据库服务器>; -U<用户名>; -P<口令>;
数据库服务器、用户名和口令可以从$RMSROOT/ini/rms.ini的文件中查到,下面是这个文件内容的示例:
LANGUAGE = en
RESOURCE = RMSAppE
DATASERVERTYPE = Sybase
DATASERVERNAME = SYB
DBADMINUSER = sa
DBADMINUSERPASSWD = sybaseadm
DBUSER = rmsuser
DBUSERPASSWD = password
DBNAME = mib
MSQKEY = 1997
其中SYBDNP是数据库服务器,sa, sybaseadm分别是数据库超级用户的用户名和口令,rmsuser, password分别是一般用户的用户名和口令。

SYBASE介绍-基础.GIF (79.5 KB, 下载次数: 28)

SYBASE基础知识,请下载后更改扩展名为DOC

SYBASE基础知识,请下载后更改扩展名为DOC

论坛徽章:
0
2 [报告]
发表于 2004-09-30 22:09 |只看该作者

sybase数据库知识(摘自华为学习资料)

2.2 、Select
从数据库的表中查询数据用select,它是在isql下执行的。
如:
select * from sysdatabases where  dbid=1
查询master数据库的信息。
3.数据库启动
3.1、自动启动
数据库在操作系统启动时,一般能够自动启动。
3.2、手工启动
在异常情况下,或者对数据库进行维护时,可以用手工启动数据库:
/etc/rc3.d/SxxSYBASE.server
3.3、检查数据库系统是否启动
用下面的命令可以检查数据库服务器是否启动:
$SYBASE/install/showserver
如果数据库服务器和备份服务器已经启动,则应该输出两条记录,如:
UID   PID  PPID  C    STIME TTY      TIME CMD
root   256   255  0   7月 20 ?        5:01 /usr/local/sybase/bin/dataserver -sSYBDNP
root   257   255  0   7月 20 ?        5:01 /usr/local/sybase/bin/backupserver -SSYBDNP
4.数据库关闭
4.1、自动关闭
当操作系统关闭时,数据库服务器也会自动关闭
4.2、手工关闭
4.2.1、用shutdown命令手工在isql下
在isql下用select * from sysservers找出运行的数据库服务器,如:
1>; select * from sysservers
2>; go
srvid  srvstatus srvname
         srvnetname                       srvclass
         srvsecmech
------ --------- ------------------------------
        -------------------------------- --------
        ------------------------------
      1         8 SYB_BACKUP
         SYBDNP_back                             1
         NULL
      2         8 local
         SYBDNP                                  1
         NULL

(2 rows affected)
则用:
shutdown SYB_BACKUP

shutdown
分别关闭备份服务器和数据库服务器。
4.2.2、用kill杀掉数据库的进程
这是数据库运行不正常,用shutdown不能关闭情况下的紧急办法,不推荐该办法。
如在Unix命令行下运行:
kill 255
kill 256
5.备份
数据库备份用来周期性地备份系统使用的数据库,以便在出现系统故障或意外事故时,能顺利地将系统恢复到备份时的状态。
dump database <数据库>; to "<设备名>;" capacity=<设备容量>;, dumpvolume=<卷标>; with init
6.恢复
一般情况下不使用该操作,如果因系统故障或者意外事故破坏了数据库,或者在重装系统后希望恢复到重装前的状态,则通过采用以前的备份来恢复数据库。
load database <数据库>; from "<设备名>;"
7.日志文件
日志文件(log)是记录系统运行情况的重要文件,在系统维护中起着重要作用。
7.1、数据库事务日志(transaction log)
是数据库运行过程产生的,所有对数据库的写操作,都会在数据库事务日志里做记录。这样就可以保证数据的完整性,也是数据库备份和恢复的基础。该日志的内容对用户不可见,但其容量回随着系统的运行逐步增加,当其容量接近满时,就会阻塞系统的运行。
网管系统设置了对数据库事务日志的自动清除,当数据库事务日志的容量接近满时,就自动清除。
7.2、数据库错误日志--$SYBASE/install/*.log
记录数据库运行中的错误,对于用户可见。
7.3、网管日志(告警、性能、操作、系统日志)
记录网关运行中的情况。

8.常见错误
Q: 数据库阻塞,报告数据库日志满
dump transaction [数据库名] with trancate_only
如果还不行,可用:
dump transaction [数据库名] with no_log
Q: 数据库不能正常启动,报告共享内存不够
A: 删除$SYBASE下的*.krg, *.srg0文件
9.习题
9.1 数据库服务器上的master、sybsystemprocs和mib数据库分别起什么作用?
Master数据库控制整个数据库服务器的运行,并且存储其他用户数据库极其设备信息。Master数据库是在一些系统表里面存储这些信息的。
Sybsystemprocs数据库存放系统存储过程。
Mib是存储和处理SBSRMS网管信息的数据库。
9.2 数据库的物理设备是选用字符设备还是块设备好?为什么?
数据库的物理设备选用没有缓冲的字符设备好。这样能减少数据库损坏的可能。
9.3 查看数据库服务器上的数据库、逻辑设备、设备使用情况分别需要查询什么系统表?并写出其中一个查询命令。
分别查询sysdatabases, sysdebices, sysusages系统表。如:
select * from sysdatases
9.4 如何手工启动数据库服务器?如何检查数据库服务器是否启动?
用/etc/rc3.d/SxxSYBASE.server启动数据库服务器。用$SYBASE/install/showserver可以检查数据库是否启动。
9.5 如何手工关闭数据库服务器?
用shutdown或kill可以手工关闭数据库服务器
9.6 如何备份数据库?
dump database [数据库名] to "设备名"
9.7 如何查询数据库的错误?需要查询哪个日志文件?
可以检查$SYBASE/install/*.log
9.8 如何在数据库事务日志满后手工清除?
dump transaction mib with truncate_only或
dump transaction mib with no_log

论坛徽章:
0
3 [报告]
发表于 2004-09-30 22:11 |只看该作者

sybase数据库知识(摘自华为学习资料)

目录

一、数据库系统(DATABASE SYSTEM)的组成       
1.计算机系统       
2.数据库       
3.数据库管理系统(DBMS)       
4.应用程序和用户       
二、数据模型的基本概念       
1. 关系数据模型       
2. 层次数据模型       
3.网状数据模型       
三、        SYBASE数据库简介       
1.版本       
2.SYBASE数据库的特点       
3.SYBASE数据库的组成       
四、SYBASE有关概念       
1. 数据库设备       
2. 系统数据库       
(1) master数据库       
(2) model数据库       
(3) sybsystemprocs数据库       
(4)临时数据库tempdb       
(5)安全审核数据库sybsecurity       
(6)示例数据库pubs2       
(7)命令语法数据库sybsyntax       
3. 数据库对象       
(1)表(Tables)       
(2)视图(Views)       
(3)索引(Index)       
(4)存储过程(Stored procedures)       
(5)触发器(Triggers)       
(6)缺省与规则(Defaults and rules)       
4.SQL SERVER的用户及权限       
(1) 建立SQL服务器用户名(登录帐号)       
(2) 增加数据库用户名       
5.SQL SERVER的启动与关闭       
(1)  启动       
(2) 关闭       
(3) 启动过程       
(4) Sybase数据库目录说明       
五、T-SQL语言       
1. 标准的SQL语言       
(1) 数据定义语句(DLL)       
(2) 数据操作语句(DML)       
(3) 数据控制语言(DCL)       
2.函数       
六、数据库备份与恢复       
1.系统软件故障恢复       
2.介质故障的恢复       
(1) 备份数据库和事务日志       
(2)恢复数据库       
七、几个实用程序       
1.  BCP       
2.  ISQL       
3.SHOWSERVER       
4.STARTSERVER       
5.SYMAN       
6.SYBINIT       
八、SQL客户端软件       
1. DOS状态下SQL客户端软件       
2.WINDOWS3.2状态下SQL客户端软件       
练习题       
附录       
附录1    只有在MASTER数据库中才能有的系统表       
附录2    在用户数据库和系统数据库中都有的系统表       
附录3    由SQL SERVER提供的系统过程功能和执行权限       
附录4    常用SQL命令       
附录5    例子数据库       
附录6    练习题答案       

SYBASE数据库
一、数据库系统(Database system)的组成
数据库系统是用于组织和存取大量数据的管理系统,方便多用户使用计算机软、硬件资源组成的系统。它与文件系统的重要区别是数据的充分共享、交叉访问以及与应用(程序)的高度独立性。
数据库系统由计算机系统、数据库、数据库描述、数据库管理系统、数据库应用程序和用户组成。
1.计算机系统
计算机系统指的是用于数据库管理的计算机硬件资源和基本软件资源。硬件资源包括CPU,大容量内存(用于存放操作系统,数据库管理系统、应用程序、数据库等),直接存取的外部存储设备(硬盘)。软件资源包括操作系统,应用程序。
2.数据库
   数据库是数据处理的新技术,也是一种先进的软件工程。
   什么是数据库?
    数据库是提供数据的基地。它能保存数据并让用户从它这里访问有用的数据。
    数据库中的业务数据是以一定的组织方式存储在一起的相互有关的数据整体。数据库中保存的数据是相关数据,是一种相对稳定的中间数据。为了便于管理和处理这些数据,将这些数据存入数据库时必须具有一定的数据结构和文件组织形式(顺序文件、索引文件)。
   “相关数据”、“一定的组织方式”和“共享”是关系数据库的三个基本要素。
3.数据库管理系统(DBMS)
DBMS是Data Base Management System 的缩写。它包括面向用户的接口功能和面向系统的维护功能两大方面。前者为用户存取数据库提供必要的手段,包括处理能力。后者为数据库管理者提供数据库的维护工具。具体为数据库定义,数据装入,数据库操作、控制、监督、维护、恢复、通信等。DBMS通常由三部分组成:数据库描述语言(DLL)、数据操纵(DML)或查询程序、数据库管理例行程序。
4.应用程序和用户
                数据库管理员(DBA)     是系统工作人员,负责对整个数据库系统进行维护。
                应用程序员  是后台专业用户,对数据库进行检索、插入、删除或更新等操作。
                非程序员   是终端用户,通过联机终端设备,由基本命令组成的询问语言对数据库进行检索、插入、删除或更新等操作。例如话务员,管理员,质检员。
  总之,信息的集合是数据库,而DBMS的软件可用于完成信息的存储和检索。
二、数据模型的基本概念
数据模型是数据库系统的核心,是对客观事物及其联系的数据的描述,即实体模型的数据化。数据模型是表示实体与实体之间联系的模型。当前流行的数据模型有关系、层次、网状三种模型。
1. 关系数据模型
    这种模型是新的DBMS,将数据简单地表示为一个或多个表格的内容。其是由表格形式体现,这种“表”在数学上称为关系。表中的每一行称为记录,每个记录由若干字段组成,一个记录描述一个事物,它的各字段是该事物各种性质的描述,在关系数据库中这些字段称为属性。如下图所示:(记录,字段,属性说明)
terchers:
============================================================
  teacher#   teacher_name       phone               salary      
-------- ------------------ ---------- --------------------
      303 Dr. Horn           257-3049           27540.000000
      290 Dr.Lowe            257-2390           31450.000000
      430 Dr.Engle           257-4621           38200.000000
      180 Dr.Cooke           257-8088           29560.000000
      560 Dr.Olsen           257-8086           31778.000000
      784 Dr.Sacango         257-3046           32098.000000
最典型的关系系统产品是DB2, DBASE,Foxpro,SYBASE,ORACLE系列。关系系统流行的一个重要原因,是容易支持由计算机程序或直接由人访问数据的能力,非常适宜作查询语言。
其中,表中每列都有一固定数据类型。常用SQL Server数据类型如下:

数据类型        说明        串长度
CHAR(长度)        定长字符串        255
VARCHAR (长度)        变长字符串        2000
NUMBERIC(精度,比例)        数字       
DATE        日期时间       
LONG(长度)        大型可变长度字符串        21亿
INT,SMALLINT        整数       
FLOAT        实数       

2. 层次数据模型
    也称树状模型,是一个以记录类型为结点的有根的定向树。层次数据模型的特点为:有且仅有一个实体,向上不与任何实体联系称为根;有若干实体,向下不与任何实体联系称为叶,其余的实体向下可以与若干实体联系,但向上只与唯一的一个实体联系(一对多联系),称为中间节点。所有节点都处在某一层上。根节点在最高层,即第一层。同一层上的节点之间没有联系。具有这些特点的数据结构称为层次结构。例如大学行政组织结构。典型例子是IBM的IMS。



层次数据模型举例图
3.网状数据模型
    网状模型是以记录类型为结点网状结构,网络与树(层次结构)的区别主要有如下两点:(1) 一个子结点可以有两个或多个父结点;
(2)        在两个结点之间可以有两种或多种关系。

论坛徽章:
0
4 [报告]
发表于 2004-09-30 22:12 |只看该作者

sybase数据库知识(摘自华为学习资料)

在网络模型中用“系”表示这种关系,所谓系是一个二级树,它的根结点称为主节点,它的叶称为从结点。学生选课实体模型是网络数据模型如图。其数据库的直接用户是程序员,访问存储信息的方法是通过特殊的来自程序设计语言的调用,进行简单的特定查询,通常是不容易。  
      
网状数据模型举例图


三、Sybase数据库简介
1.版本
    1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是Windows NT环境下运行的版本。对UNIX操作系统目前广泛应用的为SYBASE 10 及SYABSE 11 for SCO UNIX。                                                                                                                                                                                                                                                                                                
2.Sybase数据库的特点
  (1)客户/服务器系统
    在客户/服务器结构中,应用被分在了多台机器上运行。一台机器是另一个系统的客户,或是另外一些机器的服务器。这些机器通过局域网或广域网联接起来。
客户/服务器模型的好处是:
● 它支持共享资源且在多台设备间平衡负载
● 将处理工作分配在两个系统上,在网络上信息流通量将大大减少。

(2)应用程序接口DB-LIB和NET-LIB
DB-LIB:其它语言的连接;
NET-LIB:各种网络和通讯协议的连接
通过引入DB-LIB,NET-LIB,SYBASE 使整个Client/Server应用与网络和平台无关。

(3)高性能
    Sybase真正吸引人的地方还是它的高性能。体现在以下几方面:
● 可编程数据库
    通过提供存储过程,创建了一个可编程数据库。存储过程允许用户编写自己的数据库子例程。这些子例程是经过预编译的,因此不必为每次调用都进行编译、优化、生成查询规划,因而查询速度要快得多。
● 触发器
    触发器是一种特殊的存储过程。通过触发器可以启动另一个存储过程,从而确保数据库的完整性。
● 多线索化
    Sybase数据库的体系结构的另一个创新之处就是多线索化。一般的数据库都依靠操作系统来管理与数据库的连接。当有多个用户连接时,系统的性能会大幅度下降。Sybase数据库不让操作系统来管理进程,把与数据库的连接当作自己的一部分来管理。此外,Sybase的数据库引擎还代替操作系统来管理一部分硬件资源,如端口、内存、硬盘,绕过了操作系统这一环节,提高了性能。

3.Sybase数据库的组成


sybase数据库的组成图


Sybase数据库主要由三部分组成:

(1) Sybase SQL Server
    Sybase SQL Server是进行数据库管理和维护的一个联机的关系数据库管理系统,是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用。

    (2) Sybase SQL Toolset
数据库应用系统的建立与开发的一组前端工具。由ISQL,DWB和APT组成。
ISQL是与SQL Server进行交互的一种SQL句法分析器。ISQL接收用户发出的SQL语言,将其发送给SQL Server,并将结果以形式化的方式显示在用户的标准输出上。
    DWB是数据工作台,是Sybase SQL Toolset的一个主要组成部分,它的作用在于使用户能够设置和管理SQL Server上的数据库,并且为用户提供一种对数据库的信息执行添加、更新和检索等操作的简便方法。在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜单的,因此操作比ISQL简单,是一种方便实用的数据库管理工具。
    APT是Sybase客户软件部分的主要产品之一,也是从事实际应用开发的主要环境。APT工作台是用于建立应用程序的工具集,可以创建从非常简单到非常复杂的应用程序,它主要用于开发基于表格(Form)的应用。其用户界面采用窗口和菜单驱动方式,通过一系列的选择完成表格(Form)、菜单和处理的开发。

    (3) Sybase Open Client/Open Server
通过Open Client的DB-LIB库,应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB,应用程序可以访问其它的数据库管理系统。其是任何应用软件和任何类型的数据连接在一起的接口。
四、SYBASE有关概念
    Sybase SQL Server是一个多库数据库系统。这些数据库包括系统数据库和用户数据库。 而不论是系统数据库还是用户数据库,都建立在数据库设备上。
1. 数据库设备
    所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISK INIT命令:

     DISK INIT
NAME=设备名,
PHYSNAME=物理设备名,
VDEVNO=虚拟设备号,
SIZE=块数

    其中,NAME指数据库设备名,此名将用于CREATE DATABASE和ALTER DATABASE命令。PHYSNAME是原始磁盘分区或操作系统文件名。VDEVNO是数据库设备的标识号,在SQL Server中,它必须是唯一的。SIZE的单位是2K的块,对于新创建的数据库,最小的SIZE是model数据库的尺寸,即1024个2K的块(2M)。
       
例如:/*将/dev目录下400M的物理设备初始化为SYBASE的数据库设备tele114_log01*/
1>;disk init
2>;name=“tele114_log01”,
3>;physname=“/dev/rtelelog”
4>;vdevno=4
5>;size=204800   /*2Kbyte*204800=400Mbyte*/
6>;go
2. 系统数据库
安装Sybase数据库时自动生成的下列系统数据库:
● 主数据库master;
● 模型数据库model;
● 系统过程数据库sybsystemprocs;
● 临时数据库tempdb。
也可选择下列数据库:
● 安全审核数据库sybsecurity;
● 示例数据库pubs2;
?        命令语法数据库sybsyntax。

(1) master数据库
    包含许多系统表和系统过程,从总体上控制用户数据库和SQL Server的操作,构成了SYBASE系统的数据字典。MASTER数据库主要记录信息为:
● 登录帐号(SQL服务器用户名);syslogins,sysremolelogins
● 正在执行的过程;sysprocesses
● 可修改的环境变量;sysconfigures
● 系统错误信息;sysmessages
● SQL服务器上每个数据库的信息;sysdatabases
● 每个数据库占用的存储空间;sysusages
● 系统上安装的磁带及磁带信息;sysdevices
● 活动锁信息;syslocks
在执行create database,alter database 和 disk init 等命令时,必须在master数据库。

     (2) model数据库
    提供了新用户数据库的初型。当我们每次用creat database命令 时,SQL Server都产生一个model数据库的拷贝,然后把它扩展到命令要求的尺寸。如果我们修改了model数据库,那么以后新创建的数据库都将随它而改变。下面是几个通常用到的对model数据库的改变:
● 增加用户数据库类型、规则或缺省;
● 可存取SQL Server上所有数据库的用户用sp_adduser增加到model数据库上;
● 缺省权限(特别是guest帐号)可在model中建立;
● 诸如select into/bulkcopy那样的数据库选项可在model中设置。这些设置反映到所有新创建的数据库中。它们在model中最原始的值是关(off)。
在一般情况下,大多数用户无权修改model数据库,又没被授权读取。因为model中所有内容已拷贝到新数据库中,授权读model没什么意义。
例:查询model数据库中的表文件名
    1>;use model
2>;go
1>;        sp_help
2>;        go
Name             Owner           Object_type            
--------------- --------------- ----------------------
sysalternates   dbo             system table           
syscolumns      dbo             system table           
syscomments     dbo             system table           
sysconstraints  dbo             system table           
sysdepends      dbo             system table           
sysgams         dbo             system table           
sysindexes      dbo             system table           
syskeys         dbo             system table           
syslogs         dbo             system table           
sysobjects      dbo             system table           
sysprocedures   dbo             system table           
sysprotects     dbo             system table           
sysreferences   dbo             system table           
sysroles        dbo             system table           
syssegments     dbo             system table           
systhresholds   dbo             system table           
systypes        dbo             system table           
sysusermessages dbo             system table           
sysusers        dbo             system table           

(3) sybsystemprocs数据库
    库中存储系统过程,当用户执行一存储过程(以sp_开始)时,SQL 服务器首先在用户当前数据库中搜索指定的存储过程,如果没有相应过程,则到系统过程数据库中寻找,若没有,再到MASTER数据库中寻找。

(4)临时数据库tempdb
该数据库为临时表和临时工作提供了一个存储区域。临时数据库是SQL Server上所有数据库共享的工作空间。由于这些表都是临时的,所以每当用户退出或系统失败,这些表都将消失。

(5)安全审核数据库sybsecurity
    数据库中保存系统的安全审核信息,它可跟踪记录每个用户的操作情况,为维护系统安全提供控制手段。
   
(6)示例数据库pubs2
为用户提供一个学习SYBASE的数据库模型。

(7)命令语法数据库sybsyntax
库中保存SYBASE数据库的命令语法及支持的语言库。
3. 数据库对象
    (1)表(Tables)
    在一个关系数据库中,表是最重要的数据库对象,对应于关系数据库理论中关系,与DBASE或FOXPRO中的DBF文件是类似。一切数据都存放在表中。其它数据库对象都是为了用户很好地操作表中的数据。表都以一张二维表的形式存在。其中,每一列称之为一个字段,或一个域;而每一行称之为一个记录,也就是一项数据。
    有一类表,它们的名字都是以sys开头的,这些表称为系统表,系统表记录着有关SQL Server的信息。在master数据库中的表大部分为系统表,这些表是随着master数据库的创建而建立的。另外,每个用户数据库在创建时都有一个系统表的子集。
例如,只有在master数据库中才有的系统表有:sysconfigures、sysdatabases、sysdevices、syslogins等;在用户数据库和系统数据库中都有的系统表有:sysalternates、syscolumns、sysindexs、syslogs、sysobjects、sysusers等。
例:查询master数据库中表文件名
1>;        use master
2>;        go
3>;        sp_help
4>;        go
Name                           Owner                     Object_type   
------------------------------ -----------------------------------------------
spt_committab                  dbo                           user table  
spt_datatype_info              dbo                           user table        
spt_datatype_info_ext          dbo                           user table        
spt_monitor                    dbo                           user table
spt_server_info                dbo                           user table  
spt_values                     dbo                           user table
sysalternates                  dbo                           system table  
syscharsets                    dbo                           system table
syscolumns                     dbo                           system table
syscomments                    dbo                           system table
sysconfigures                  dbo                           system table
sysconstraints                 dbo                           system table
syscurconfigs                  dbo                           system table
sysdatabases                   dbo                           system table
sysdepends                     dbo                           system table
sysdevices                     dbo                           system table  
sysengines                     dbo                           system table
sysgams                        dbo                           system table
sysindexes                     dbo                           system table
syskeys                        dbo                           system table
syslanguages                   dbo                           system table
syslisteners                   dbo                           system table
syslocks                       dbo                           system table
sysloginroles                  dbo                           system table
syslogins                      dbo                           system table  
syslogs                        dbo                           system table   
sysmessages                    dbo                           system table
sysmonitors                    dbo                           system table
sysobjects                     dbo                           system table
sysprocedures                  dbo                           system table
sysprocesses                   dbo                           system table
sysprotects                    dbo                           system table
sysreferences                  dbo                           system table
sysremotelogins                dbo                           system table
sysroles                       dbo                           system table
syssegments                    dbo                           system table
sysservers                     dbo                           system table
syssrvroles                    dbo                           system table
systestlog                     dbo                           system table
systhresholds                  dbo                           system table
systypes                       dbo                           system table
sysusages                      dbo                           system table  
sysusermessages                dbo                           system table
sysusers                       dbo                           system table
sp_configure                   dbo                           stored procedure
sp_dboption                    dbo                           stored procedure
sp_getmessage                  dbo                           stored procedure
sp_procxmode                   dbo                           stored procedure
sp_prtsybsysmsgs               dbo                           stored procedure
sp_validlang                   dbo                           stored procedure
               
说明见附录表1

论坛徽章:
0
5 [报告]
发表于 2004-09-30 22:12 |只看该作者

sybase数据库知识(摘自华为学习资料)

(2)视图(Views)
视图是查看一张或几张表中的数据的一种方式。通过将一张或几张表中的一部分数据进行组合得到视图。视图看上去与表非常相象,但与表还是有着本质的区别。通过视图看到的数据实际上都是存放在表中的,在数据库中仅存在视图的定义。
使用视图的好处是:
● 操作方便
● 安全性

(3)索引(Index)
索引是对字段生成的,用于加快数据的检索。在Sybase数据库中,索引是由系统自动管理的,也就是说,Sybase的索引操作对用户是透明的。表的索引一旦建立,系统会自动对其进行更新维护以使它与相应表对应一致;操作时,用户无须指定索引,系统会自动确定是否使用索引进行操作。
Sybase支持三种不同类型的索引,一是复合索引,即包含几个列的索引;二是唯一性索引,即任意两行中的索引列不能有相同的取值;三是簇类索引(Clustered indexes)和非簇类索引(Nonclustered indexs),簇类索引使SQL服务器不断重排表行的物理顺序以使其与逻辑索引顺序相一致,非簇类索引则不需要表行的物理顺序与逻辑顺序一致。每个表最多只能建立一个簇类索引,非簇类索引则可建立多个。与非簇类索引相比,簇类索引的检索速度要快。应当在建立任何非簇类索引以前建立簇类索引。

(4)存储过程(Stored procedures)
    存储过程是用T-SQL语言编写成的SQL子例程,它存储于SQL服务器上供用户调用执行。与一般的SQL语句和批处理语句不同的是,存储过程是经过预编译的。当首次运行一个存储过程时,SQL Server的查询处理器将对其分析,并产生最终的执行方案。由于查询处理的大部分工作已经完成,所以以后执行存储过程时速度将会很快。执行存储过程时可带参数并可调用其他存储过程,执行完毕后返回信息以指示是否成功完成相应操作。存储过程有两种:一种是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_helpindex code_3th
sp_helpuser        查询用户信息
sp_lock        查询当前加锁信息
sp_monitor        查询SQL服务器统计信息
sp_password        改变登录帐号口令
sp_spaceused        查询表中的行数、数据页数及空间大小
sp_who        查询当前用户及过程信息
sp_syntax        查询操作语法
sp_configure        配置系统参数


例:查询数据库信息
1>;        sp_helpdb
2>;        go
name               db_size   owner    dbid       created           status     
--------------------------------------------------------------------------
master             3.0 MB    sa         1     Jan 01, 1900       no options set
model             2.0 MB    sa         3     Jan 01, 1900       no options set
sybsystemprocs    10.0 MB    sa         4     Oct 24, 1997   trunc log on chkpt tele114         370.0 MB    sa         5     Oct 24, 1997   select into/bulkco                                                         py, trunc log on chkpt  tempdb          22.0 MB    sa         2     May 05, 1998 select into/bulkcopy (0 rows affected, return status = 0)


例:查询SQL服务器统计信息
1>;        sp_monitor
2>;        go
last_run                   current_run                seconds     
-------------------------- -------------------------- -----------
May 5 1998  4:09PM         May 5 1998  4:13PM                 224

(0 rows affected)
cpu_busy                           io_busy              idle                 
------------------------- ------------------------- -------------------------
17(1)-0%                           5(0)-0%            923(223)-99%            

(0 rows affected)
packets_received          packets_sent              packet_errors            
------------------------- ------------------------- -------------------------
21(9)                     51(23)                    0(0)                     

(0 rows affected)
total_read          total_write         total_errors        connections        
------------------- ------------------- ------------------- ------------------
947(1)              595(113)            0(0)                3(1)               

(0 rows affected, return status = 0)


(5)触发器(Triggers)
    触发器是一种特殊的存储过程,用来维护不同表中的相关数据的一致性。当在一张表中插入、删除和修改数据时,触发器就会触发另一个存储过程,从而保持数据的一致性。

(6)缺省与规则(Defaults and rules)
    缺省是在数据录入时,若用户没有输入数据,SQL Server自动输入的值。
规则是指对特定的列的输入限制,即是否允许用户向给定列输入已定义的数据类型。
4.SQL Server的用户及权限
SQL=Structured Query Language 结构查询语言,是新一代数据库查询语言。
Sybase中的用户分为两种:SQL服务器用户(登录帐号)和数据库用户。
安装完SQL服务器后,系统自动建立一个SQL服务器用户sa,口令为空,即系统管理员,他对整个系统有操作权,其他用户均由系统管理员建立。
在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对给定的数据库只有被授权的操作权限。
数据库用户一般可分为用户组,任一数据库在建立后即被赋予一个用户组public。

(1) 建立SQL服务器用户名(登录帐号)
作为一个用户,为了使用SQL Server,他必须在SQL Server上有一个SQL服务器用户名(登录帐号)。这个帐号是系统管理员通过sp_addlogin来增加的。
sp_addlogin 登录名,口令,库名,语言,全名
例:建立用户zhang, 口令为zhangling(最低六位),全名为Zhang ling
1>;        sp_addlogin zhang,zhangling,null,null,"Zhang ling"
2>;        go
3>;        select * from syslogins
4>;        go

(2) 增加数据库用户名
同样,为了使用SQL Server上的数据库,他必须在数据库中有一个用户名,这个用户名是数据库所有者通过sp_adduser来增加的。数据库用户名不必和用户帐户一样,而且在不同的数据库中用户名可以不同。多个用户可以有相同的SQL Server帐户。同样,多个SQL Server帐户可以有相同的数据库名。
sp_adduser 登录名,别名,组名
登录名为用户的SQL服务器登录名;别名为用户在数据库中的用户名;组名为用户所属的数据库用户组。

例:用户zhang增加为tele114的用户,别名为zhang1,属于用户组china
1>;        use tele114
2>;        go
3>;        sp_helpgroup
4>;        go
5>;        select * from sysusers
6>;        go
1>;sp_addgroup china
2>;go
1>;        sp_helpgroup
2>;        go
1>;sp_adduser zhang,zhang1,china
2>;go
1>;        sp_helpuser
2>;        go

*例:删除别名zhang1,用户组china,登录名zhang
1>;        use tele114
2>;        go
3>;        sp_dropuser zhang1
4>;        go
5>;        sp_helpuser
6>;        go
1>;sp_dropgroup china
2>;go
1>;        sp_helpgroup
2>;        go
3>;        use master
4>;        go
5>;        sp_droplogin zhang
6>;        go
7>;        select * from syslogins
8>;        go

5.SQL Server的启动与关闭
(1)  启动
    对于安装在UNIX操作系统中的Sybase SQL Server,都有一个登录名。在我们的实际系统中,这个登录名为sybase,登录的口令为sybase10。以sybase登录到服务器后,进入install子目录。用实用工具showserver查看已经运行了的SQL Server。如果还没有SQL Server在运行,则可以用以下命令启动SQL Server:

   $ startserver -f RUN_SYBASE             (RUN_主服务器名)
   $ startserver -f RUN_SYB_BACKUP        (RUN_备服务器名)
   $ showserver

(2) 关闭
    关闭SQL Server可以在isql中使用T-SQL命令:

关闭SQL备服务器
1>;        shutdown  SYB_BACKUP
2>;        go

关闭SQL主服务器
1>;        shutdown [with nowait]
2>;        go

关闭UNIX服务器
$ shutdown 杫 –g0

(3) 启动过程
master数据库启动-----------鄐ybsystemproces数据库启动-----------嗲蹇誸empdb---------嗥舳?渌??菘 -------嗍挛竦幕毓

(4)Sybase数据库目录说明
/usr/sybase  =..  主目录
.. /install     安装程序
../bin        执行程序
../include     库函数文件
../lib         宿主语言库
../doc        联机文件
../scripts      SQL 动态描述文件
../help        帮助信息
../locales     语言限制文件
../termdef     终端定义文件
../charsets    字符集文件
五、T-SQL语言
1. 标准的SQL语言
    标准的SQL语言包括数据定义语句(DLL),数据操作语句(DML)和数据控制语句(DCL)。熟悉附录中五个表结构(enrolls,teachers,courses,sections,students)

(1)数据定义语句(DLL)
用来建立、更改和删除数据库对象

    a.建立对象create
    这里只介绍表和索引的创建与删除
(a).创建表:

create table table_name(column_1 datatype,...,column_n datatype)
例:建表teachers
1>;        create table teachers(teacher# SMALLINT NOT NULL UNIQUE,
2>;        teacher_name CHAR(1,
3>;        phone CHAR(10),
4>;        salary FLOAT)
5>;        go

(b). 创建索引:

create index index_name on table_name(column_1,...,column_n)
例:建表teachers中teacher_name字段的索引文件names
1>;        create index names on teahers(teacher_name)
2>;        go

    b. 删除对象drop

    (a).删除表:

drop table table_name
例:删除表teachers
1>;        drop table teachers
2>;        go

(b)        删除索引:

drop index table_name.index_name
例:删除表teachers 的索引文件names
1>;        drop index teachers . names
2>;        go

(2) 数据操作语句(DML)
包括对数据查询、插入、修改和删除

   a. 查询select
2       
    select column_1,...,column_n  from table_name  where conditions

例:列出所有课程名、系名及其学分
1>;select course_name,
2>;department,
1>;        num_credits from courses
2>;        go

例:列出所有学分为3的课程名、系名及学分
1>;        select course_name,department,num_credits from courses
2>;        where num_credits=3
3>;        go

例:找出所有男性学生
1>;        select student_name from students where sex='M'
2>;        go

例:哪些算术课程具有3分以上的学分
1>;        select course_name,department,num_credits from courses
2>;        where department='Math' and num_credits>;=3
3>;        go

例:列出所有不来自IL州的学生的姓名和州名
1>;        select student_name,state from students where not (state='IL')
2>;        go

例:列出一年工资为30000到35000的教师姓名和工资
1>;        select teacher_name,salary from teachers where salary between 30000 and 35000
2>;        go

例:列出名字以“Jo”开头的每个学生的姓名和性别
1>;        select student_name,sex from students where student_name like 'Jo%'
2>;        go

例:查出教师的最大工资
1>;        select max(salary) from teachers
2>;        go

例:查出多少教师的工资大于30000
1>;        select count(*) from teachers where salary>;30000
2>;        go

例:列出每个学生的课程数
1>;        select student#,num_enrolled=count(*) from enrolls group by student#
2>;        go

从几个表中检索数据(联接)
任何从多于一个表中检索数据的查询必须执行联接。
例:每个教师所教的课程是什么?(按姓名列出教师)
1>;        select teacher_name,sections.teacher#,course#
2>;        from teachers,sections
3>;        where teachers.teacher#=sections.teacher#
4>;        go

子查询:来自一个查询结果可以成为另一个查询的输入。一般为两个或以上表
例:在任何课程中哪个学生成绩为3
1>;        select student_name from students
2>;        where student# in (select student# from enrolls where grade=3)
3>;        go


例:哪个教师工资低于平均值
1>;        select teacher_name from teachers
2>;        where salary<(select avg(salary) from teachers)
3>;        go

例:将表students复制为表hhh
1>;        select * into hhh from students
2>;        go

b. 插入insert

    insert into table_name(column_1,...,column_n)
    values(value_1,...,value_n)

例:向表teachers中增加教师号为555,姓名为kkk,电话号码为6646988,工资为300
1>;insert into teachers
2>;values(555,'kkk','6646988',300)
1>;        go

c. 修改update

    update table_name
    set column_1=value_1,...column_n=value_n
    where conditions

例:增加kkk的工资到1000
1>;        update teachers set salary=1000
2>;        where teacher_name='kkk'
3>;        go

d. 删除delete

论坛徽章:
0
6 [报告]
发表于 2004-09-30 22:13 |只看该作者

sybase数据库知识(摘自华为学习资料)

delete from table_name
    where conditions

例:删除表teachers中姓名为kkk的记录
1>;        delete from teachers
2>;        where teacher_name='kkk'
3>;        go

e.        清空记录 truncate
truncate table table-name
  例:清空表hhh 中的全部记录
1>;truncate table hhh
2>;go

e.        增加数据表列 alter table
   
    alter table table_name add column_1 datatype,...,column_n datatype
     
例:在表courses中增加数据表列备注一项
1>;        alter table courses add pz char( null
2>;        go

(3) 数据控制语言(DCL)
      a. 系统管理员可以授予其他用户CREATE DATABASE的权限,使其他用户可以成为数据库所有者。
b.        数据库所有者在他所拥有的数据库中,可以授予其他用户的权限有:
l        CREATE TABLE    -------------------      建表
l        CREATE DEFAULT  ------------------      建缺省
l        CREATE RULE     -------------------      建规则
l        CREATE PROCedure ------------------      建存储过程  
l        CREATE VIEW     -------------------      建视图
l        DUMP DATABASE  -------------------      备份数据库
l        DUMP TRANsaction  ------------------      备份日志
c.        数据库对象所有者可以授予其他用户的操作权限有:
l        SELECT
l        UPDATE
l        INSERT
l        EXECute
l        DELETE
l        REFERENCE


l        授权grant
    grant privilege on object_name to username

例:
1>;grant select on teachers
2>;to bob, john
3>;go
    数据库所有者授予用户bob, john在teachers数据库上读取的权限。

l        收回授权revoke
    revoke privilege on object_name from username

例:
1>;revoke all
2>;on students
3>;from public
4>;go
收回用户组public在students表所有权限。

例:授予zhang1在数据库tele114上建表,建视图,建存储过程;对表students有select权;对name,native字段有update权。
1>;        use tele114
2>;        go
3>;        grant creat table,create procedure ,create view to zhang1
4>;        go
5>;        grant select on students to zhang1 with grant option
6>;        go
7>;        grant update on students(name,native) to zhang1
8>;        go
9>;        sp_helprotect
10>;        go
2.函数
(1)        系统函数
db_id([数据库名])
db_name([数据库ID])
host_id()
host_name()
show_role()
user_name([数据库用户ID])
user_id([数据库用户名])
col_length(对象名,列名)

(1)        集合函数
sum(all)
avg(all)
count(*)
max(表达式)
min(表达式)

(1)        字符串函数
substring("abcde",2,2)           bc
right("abcd",3)                 cde
upper("abcde"                 ABCDE
lower("aBcDe"                abcde

(1)        数学函数
abs
cos
sin
exp
sqrt

六、数据库备份与恢复
    SQL Server提供了两种不同类型的恢复:一类是系统自动完成的恢复;另一类是人工完成的恢复。

1.系统软件故障恢复
    系统自动恢复是在系统软件出现故障的情况下通过重新启动SQL Server进行恢复。
    自动恢复从master数据库开始,然后是model数据库,再是temporary数据库,最后是用户数据库。在每个数据库上,恢复机制观察事务日志。如果日志写入比数据库更近的数据,则向前恢复数据库。如果事务尚未完成,则要回退它们。
    所谓事务日志就是一张系统表syslogs。在这张表中记录着对数据库的更新请求,例如插入、修改和删除。查询操作不记入事务日志中。
2.介质故障的恢复
    一旦介质发生故障,只有通过以前备份的数据库和事务日志才能恢复数据库,为此我们需要经常备份数据库和事务日志。备份数据库和事务日志我们使用dump命令,而恢复数据库和事务日志我们使用load命令。
与创建数据库需要一个数据库设备类似,我们备份数据库和事务日志也需要一个卸出设备。增加卸出设备可以通过系统过程sp_addumpdevice来实现。卸出设备可以是磁盘、磁带或操作系统文件。
      sp_addumpdevice  "type",device_name,physicalname
例:创建名为db114的dump设备
sp_addumpdevice  "disk", "db114", "/usr/sybase/zyl114.bak"
   
(1) 备份数据库和事务日志
备份数据库(数据和事务日志)的语法为:

    dump database database_name to dump_device

例如:全备份数据库tele114到设备db114
1>;        dump database tele114 to db114
2>;        go

    备份事务日志(增量备份)的语法为:

    dump transaction database_name to dump_device
    [with truncate_only | with no_log | with no_truncate]
前两项在日志中删除提交的事务,后一项不删除。
    在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库,但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。
备份数据库和备份日志的关系如下所示:




    时刻1              时刻2         时刻3         时刻4

  (2)恢复数据库
要恢复被破坏的数据库,可以按如下步骤进行:
•        用带no_truncate选项的dump命令卸出用户数据库事务日志。
•        用和被破坏的数据库的同样的结构建立一个新的数据库。
•        用load命令重新装入数据库和事务日志。

    装入数据库的语法为:
    load database database_name
    from file_name

    装入事务日志的语法为:
    load transaction database_name
from file_name

例:数据库备份
1>;        dump db_name to file_name
2>;        go
数据库恢复
1>;        load db_name from file_name
2>;        go
日志备份
1>;        dump transaction db_name to file_name with no_truncate
2>;        go
日志恢复
1>;        load transaction db_name from file_name
2>;        go
日志删除
1>;        dump transaction db_name with truncate_only
2>;        go


(3) 监控事务日志空间大小方法
1>;        sp_spaceused syslogs
2>;        go

1>;        dbcc checktable (syslogs)
2>;        go

1>;        sp_helpdb tele114
2>;        go

1>;        select data_pgs(8,doampg) from sysindexes where id=8
2>;        go

七、几个实用程序
1. bcp
    以用户指定的形式将数据库表拷贝到操作系统文件中,或从操作系统文件中拷贝一个数据库表。提供了在数据库表和操作系统文件之间传递数据的一个方便、快速的方法。

    bcp [[database-name.]owner.]table_name {in|out} datafile [各种开关]

    其中,table_name是想要拷贝的数据库表名;{in/out}为拷贝方向,in表示从文件到数据库的拷贝,out表示从数据库到文件的拷贝;datafile是操作系统文件的全路径名。
    常用的开关有:
    -f formatfile----存有上次使用bcp处理同一表时得到的应答文件的全路径名,格式文件名的扩展名为.fmt。使用格式文件,省去了再重复回答前面的问题。
    -U username----允许用户指定一个注册名。
    -P password----允许用户指定当前的SQL Server口令。如果未使用-P选项,bcp将提示输入一个口令。
    -S Server----允许用户指定与其相连的SQL Server的名字。
例:在客户端备份tele114数据库中code_1th表,按照code_1th.fmt的格式
c>;        bcp tele114..code_1th out code_1th.txt - fcode_1th.fmt –Usa 朠
2. isql
是基于字符的最基本的访问SQL Server数据库服务器的实用程序,能够实现与服务器的连接,向服务器发送T-SQL命令,并在屏幕上显示返回的结果信息。

    isql [各种开关]

    常用的开关有:
    -U username----允许用户指定一个注册名。
-P password----允许用户指定当前的SQL Server的口令。
-S Server----允许用户指定与其连接的SQL Server的名称。
-i输入文件
-o输出文件
-W 列宽
    终止一条命令:go
清除查询缓冲:reset
调用编辑器:vi (UNIX),edit (DOS)
执行一条操作系统命令:!!命令
    退出isql:quit或exit

3.showserver
    显示当前在本机上正在运行的SQL Server。
    showserver
4.startserver
启动SQL Server。

    startserver [各种开关]

    常用的开关有:
    -f runserverfile----指定一个运行服务器文件名,每次重启SQL Server时,以这个文件为参考。在我们的实际机器上,这个文件名为RUN_SYBASE或RUN_SYB_BACKUP。
    -m ----以单用户的方式启动SQL Server。这个方式用于恢复master数据库。

5.syman
    显示联机的库例程,系统过程及实用程序手册。
syman [keyword]

syman实用程序的联机文本文件存放在$SYBASE下的doc子目录中。
6.sybinit
作用:a. 建立master设备
      b. 创建各个系统表
      c. 创建sybsystemprocs数据库配置参数


1)以sybase 登录
2)cd/usr/sybase/install
3)sybinit
4)选3
SYBINIT
1.        Release Directory: /sur/u/sybase
2.        2. Edit /View interfaces File
3. Configure  a  server  product
4. Configure  an  Open  Coient/Server  Product
5. Configure  a  Front  End  Product
5)选3
CONFIGURE  SERVER  PRODUCTS
1. Configure  a  new  SQL  Server
2. Configure  an  existing  SQL  Server
3. Upgrade  an  existing  SQL  Server
6)ADD  NEW  SQL  SERVER
        1. SQL  Server  name: lyg114
a. 选1,输入服务器名如:lyg114
b. 按Ctrl-a
7)SQL  SERVER  ONFIGURATION
        1. CONFIGURE  SERVER'S  INTERFACES  FILE  ENTRY  Incomplete
        2. MASTER  DEVICE  CONFIGURATION                 Incomplete
        3. SYBSYSTEMPROCS  DATABASE  CONFIGURATION       Incomplete
        4. SET  ERRORLOG    LOCATION                     Incomplete
        5. CONFIGURE  DEFAULT   BACKUP  SERVER         Incomplete
        6. CONFIGURE    LANGUAGES                        Incomplete
        7. CONFIGURE    CHARACTER    SETS               Incomplete
        8. CONFIGURE   SORT   ORDER                      Incomplete
        9. ACTIVATE   VUDITING                             Incomplete
分别选1,2,3,---9配置参数,使各项Incmplete----->;complete
参数配置如下:(例)
a. SERVER  INTERFACES  FILE  ENTERY  SCREEN
                        Server  name :  lyg114
                1.  Retry   Count: 10
                2.  Retry  Delay: 10
        Listener  services  available:
                Protocol      Address       Port     Name  Alias
                  rcp         scosysv       4114
注意:Port=4114,此参数为1024--65535为间的4个或5个数字
                        Address=scosysv,此参数为UNIX服务器主机名
b. MASTER  DRVICE  CONFIGURATION
        1. Master  Device: /usr /sybase/master.dat
        2. size  (Meg) : 20
c.  SYBSYSTEMPROCS  DATABASE  CONFIGURATION
        1.sybsytemprocs  database  size  (Meg) : 10
        2. sybsystemprocs  logical  device  name:  sysprocsdev
        3. create  new  device  for  the  sybsystemprocs  database :  yes
        4.  physical  name  of  new  device: /usr /sybase/sybtemp.dat
        5. size  of  the  new  device (Meg) : 10
d. SET  ERRORLOG  LOCATION
        1. SQL  Server  errorlog:  /usr/sybase/install/errorlog
e. SET  THE  SQL  ERVER'S  BACKUP  SERVER
        1.SQL  Server  backup  Server  mname:  SYB-BACKUP
        注意:此备份服务器名一定要与后面配置的备份服务器名一致
f. SONFIGURE  LANGUAGES
选    1.  us-english
g.CONFIGURE  CHARACTER  SETS
选  1. SACII,  fro  use   with  unsp 及4.ISO  8859-1  (latin-1)-w (4.为缺省)
h. CONFIGURE  SORT  ORDER
选  1. Binary  ordering ,for  the  ISO  8859/1  or  Latin-1  Charact  
i.  ACTIVATE  AUDITING
        1. Install  auiting:   yes
        2. sybsecurity  database  size  (Meg):  5
        3. sybsecuyty  logical  device  name :  sybsecurity
        4. dreate  new  device  for  the  sybsecurity  database : yes
        5. sybsecurity  physical  device  name :  /usr/sybase/sybsecur.dat
        6. size  of  the new  device (Meg):  5
参数配置完后,按Crtl-a
Execute  the  SQL  Server  Configuraion  now?   y
9)看到下面的信息表示SQL  Server  安装成功
Configrration  completed  successfully.
rpess<return>;  to  continue.(回车)
按Ctrl-x 退出安装程序

论坛徽章:
0
7 [报告]
发表于 2004-09-30 22:14 |只看该作者

sybase数据库知识(摘自华为学习资料)

八、SQL客户端软件
1. DOS状态下SQL客户端软件
  软件位于c:\sqlbin
运行步骤:
£¨1£(C)        运行TCPIP协议程序tcp.bat
c:\nwclient\lsl /c:\nwclient\net.cfg
c:\nwclient\ne2000
c:\nwclient\tcpip
(2)        ping 129.6.114.201 (服务器地址)
返回129.6.114.201 is alive 正常
返回No response from 129.6.114.201 为异常
(3)运行sybclenv.bat------------------ Sybase的DOS接口启动程序,内容如下:
set path=c:\sqlbin\binr;%path%  -------------Sybase的DOS接口程序所在目录
set dsquery=129.6.114.201,4114--------------连接服务器IP地址和端口号
c:\sqlbin\binr\dbnovtcp
C:\sqlbin\binr\rmineti

£¨1£(C)        dbping 129.6.114.201------------检查是否连通SYBASE服务器
连接成功出现“Successfully opened network connection"
(5)        isql –Usa 朠
1>;        sp_help
2>;        go
(6) 练习SQL 命令
2.Windows3.2状态下SQL客户端软件
软件位于:c:\sql10
生成Sybase Open Client 10 组下的WISQL,WSYBPING,SQLEDIT等图标,在SQLEDIT建立与服务器的连接关系,
   
winsql32(及wisql)是isql的Windows应用版本。整个窗口分为两大部分,上半部分为SQL命令输入区,下半部分为显示查询结果的输出区。使用Eidt菜单对SQL语句进行编辑,而Connect菜单是用做对特定的SQL Server和数据库进行连接。
   
练习题
(下列习题参考表enrolls, 表teachers, 表courses, 表sections, 表students)
1.        Select * from zyl where xm='张三' 语句中代表了哪三种含义?
2.        列出表enrolls, 表teachers, 表courses, 表sections, 表students中所有记录。
3.         列出所有来自Chicago地区女生的姓名和地址。
4.         列出地区代码在20000和29999之间的学生姓名、城市名称和地区代码。
5.         列出电话号码不以257开头的所有教师的姓名和电话号码?
6.         怎样查看表students中student_name=jake的记录?
7.         列出所有不来自CA, IL州学生的姓名、城市名和州名。
8.         按反字母顺序查出教师姓名及电话号码。
9.         所有教师工资的平均数为多少?
10.        表students中共有多少学生?
11.         如何启动和关闭SQL SERVER?如何检查?
12.         Sybase 数据库由哪几部分组成?写出各部分的作用?
13.         如何备份数据库zylong ? 恢复其备份?写出命令。
14.         Sybinit 的作用是什么?
15.        列出常用的系统表?系统过程(10个)?说明含义?
16.        Sybase数据库包含哪些系统数据库?作用是什么?
17.        写出将/dev目录下650M的物理设备data112初始化为data112_log数据库的命令?
18.        如何配置SYBASE运行环境?配置SQL Server内存为20M?配置连接数目为50?怎样使配置生效?写出命令。
19.        如何建立表students按student_name的索引?
20.        如何设置显示记录数(SQL)?
21.        有多少来自CA, IL州成绩大于2的学生?
22.        哪个学期有学生选课人数高于平均数?
23.        列出平均成绩大于最低平均成绩的所有学生?
24.        在表courses中增加一条记录(Calculus V, Math,888,4)
25.        在表teachers中给Horn工资定为99999?
26.        删除表enrolls中成绩大于5或小于0的记录?


附录
               
附录1    只有在master数据库中才能有的系统表
系统表名        表中的内容
Sysconfigures        一行记录了用户可设置的配置参数
Syscurconfigs        有关SQL Server当前正使用的配置参数情况
Sysdatabases        一行记录了SQL Server中的一个数据库
Sysdevices        一行记录了数据库的每一磁带转储设备,磁盘转储设备,数据库设备和磁盘分区
Syslocks        有关动态锁的情况
Syslogins        一行记录了每一有效的SQL Server的用户帐号
Sysmessages        一行记录了每一系统错误或警告
Sysprocesses        有关Server进程的情况
Sysremotelogins        一行记录了一个远程用户
Sysservers       
Sysusages        一行记录了一个远程SQL Server


附录2    在用户数据库和系统数据库中都有的系统表
系统表名        表中的内容
Sysalternates        一行记录了SQL Server用户在当前数据库中的标识
syscoumns        一行记录了一个表或视图的每一列,一个存储过程的每一参数
syscomments        一行或多行记录了每一视图、规则、缺省值、触发器和存储过程
sysdepends        一行记录了由一个过程、视图或触发器所参照的每一过程,视图或表
syskeys        一行记录了每一主码,外码或公用码
syslogs        事务日志,是SQL Server用于恢复或向前滚动的
sysobjects        一行记录了每一表、视图、存储过程、日志、规则、缺省值、触发器和临时表(仅在tempdb中)
sysprocedures        一行记录了每一视图、规则、缺省、触发器和过程
syprotects        记录用户的权限信息
sysegments        一行记录了每一片段(命名的的磁盘分片汇集)
systypes        一行记录了每一由系统提供的和用户定义的数据类型
sysusers        一行记录了一个数据库的合法用户,或用户组


附录3    由SQL Server提供的系统过程功能和执行权限
过程名        功能        执行权限
sp_addalias        把数据库中的一个用户映象到另一个用户        数据库所有者
sp_addgroup        向数据库增加分组,在授权和撤权命令中分组被用作聚合名字        数据库所有者
sp_addlanguage        为服务器定义可替换语言,并把它增加到master,dbo,syslanguages中。        系统管理员
sp_addlogin        通过向master.dbo,syslogins中增加表项授权新的SQL Server用户        系统管理员
sp_addremotelogin        通过向master,bo,sysremotelogins增添表项授权新的远程服务器用户        系统管理员
sp_addsegment        在指定的数据库设备上创建一个段        数据库所有者系统管理员
sp_addserver        定义远程服务器,或定义本地服务器名字        数据库所有者系统管理员
sp_addtype        创建用户定义的数据类型        Public
sp_addumpdervce        向SQL Server增加转储设备        系统管理员
sp_adduser        向当前数据库添加新的用户        数据库所有者
sp_bindefault        为一列或用户下义的数据类型定义缺省值        目标(对象)所有者
sp_bindrule        向一列或用户定义的数据类型赋一规则        目标汽有者
sp_changedbowner        改变数据库的所有者        数据库所有者
sp_changegroup        改变用户所属的分组        数据库所有者
sp_checknames        检查当前数据库在7位ASCII码集之外的字符的名字        public
sp_commonkey        在两个表或视图之间定义一公共键――经常被连接的列        两表(或视图)的所有者
sp_configure        显示或改变配置变量        没有参数或只有第一个参数的执行权属于public,否则属于系统管理员
sp_dboption        显示或改变数据库选项        不带参数属于public,带参数时属于数据库所有者
sp_defaultdb        改变一用户的缺省数据库        系统管理员(但每个用户都可以改变他自己的缺省语言)
sp_depends        显示数据库目标相关性的信息        public
sp_diskdefault        设备数据库设备的状态为defaulton或defaultoff(表明一数据设备是否能用于数据库的岂省存储)        系统管理员
sp_dropalias        删除用sp_addalias建立的用户名别名标识        数据库所有者
sp_dropdevice        删除一SQL Server数据库设备或转储设备        系统管理员
sp_dropgroup        从数据库中删除一分组        数据库所有者
sp_droplanguage        从服务器中删除可替换语言,并从master.dbo.syslanguages中删掉相应的行        系统管理员

附录4    常用SQL命令  
   1.load isql -Usa -P  --进入ISQL环境
     quit   ----退出ISQL环境
   2.shutdown (server_name) --关闭SYBASE服务器
     ex. shutdown SYB_BACKUP
   3.use (database_name) --打开数据库  
     ex. use tele114   
   4.set rowcount (number)  -- 设置显示记录条数
     ex. set rowcount 10 (为0则取消设置)
   5.select (select_list) from (table_name) where (search_conditions)
                --查看符合要求的内容
     ex. select max(UnitNo1) from code_1th
   6.update (table_name) set (column_name1)=(value1),column_name2)=value2)
     where (search_conditions) --重新赋值
     ex.update code_1th set Password='12345',
        RevCode1=substring(RevCode1,1,datalength(rtrim(RevCode1))-1)
       where substring(Code1,1,1)='v' and substring(Code1,2,1)!=' '
    7.select (select_list) into (table_name1) from (table_name2)
     where (search_conditions)  
         --将符合要求的table_name2中的内容存在table_name1中
  ex.select * into sample from code_1th where substring(Code1,1, 1)='V'
    8.truncate table (table_name) --删去表
     ex.truncate table sample
     delete (table_name) where (search_conditions)  -- 删去表的一部分
     ex. delete example where County='5'
    9.sp_addumpdevice 'disk',(logicalname),(physicalname)  --定义转储设备
     ex.sp_addumpdevice 'disk','nbdump_1','vol1:\nbdump\nbdump.dat'
   10.sp_dropdevice (device_name) --删去转储设备
      ex.sp_dropdevice nbdump_1
   11.dump tran (database_name) with truncate_only --删去日志
      ex.dump tran tele114 with truncate_only
   12.sp_configure (config_name),(config_value) --更改设置值
      ex.sp_configure 'allow updates',1
   13.reconfigure with override --使更改设置值有效
   14.sp_who  --使用数据库用户列表
   15.kill (spid)   --删去无效的数据库用户  
      ex.kill 9   --删去spid为9的数据库用户
   16.sp_helpindex (tabel_name)  --查看索引情况
   ex. sp_helpindex code_2th
   17.sp_helpdb (database_name)  --查看数据库占用空间情况
        ex. sp_helpdb tele114

附录5    例子数据库  
terchers: 教师表
============================================================
  teacher#   teacher_name       phone              salary     
  (教师号)    (教师姓名)    (电话号码)          (工资)
SMALLINT      CHAR(1        CHAR(10)             FLOAT
-------- ------------------ ---------- --------------------
      303 Dr. Horn           257-3049           27540.000000
      290 Dr.Lowe            257-2390           31450.000000
      430 Dr.Engle           257-4621           38200.000000
      180 Dr.Cooke           257-8088           29560.000000
      560 Dr.Olsen           257-8086           31778.000000
      784 Dr.Sacango         257-3046           32098.000000


enrolls: 成绩表
==================================================
  course#      section#      student#       grade
(课程号)      (学期)      (学号)     (成绩)
SMALLINT      SMALLINT      SMALLINT      SMALLINT
---------- -------------- ------------- ----------
     730        1              148           3
     450        2              210           3
     730        1              210           1
     290        1              298           3
     480        2              298           3
     730        1              348           2
     290        1              349           4
     480        1              358           4
     480        1              410           2
     450        1              473           2
     730        1              473           3
     480        2              473           0
     290        1              548           2
     730        1              558           3
     730        1              649           4
     480        1              649           4
     450        1              654           4
     450        2              548           4


courses: 课程表  
======================================================================
  course            course_name          department       num_credits
(课程号)           (课程名)            (系)            (学分)
SMALLINT              CHAR(20)            CHAR(16)           SMALLINT
------------  -------------------- ------------------ ---------------
    450       Western Civilization       History              3
    730           Calculus IV             Math                4
    290         English Composition      English              3
    480         Compiler Writing     Computer Science         3


sections:学期表
=======================================================
   section#     teachers#     course#      num_students
   (学期)    (教师号)    (课程号)     (学生数)
   SMALLINT     SMALLINT      SMALLINT       SMALLINT
------------ -------------- ---------- ----------------
        2          560          450            2
        2          784          480            2
        1          180          480            3
        1          430          290            3
        1          290          730            6
        1          303          450            2



students:学生表
===============================================================================
student#    student_name         address           zip     city   state  sex
(学号)   (学生姓名)         (地址)        (地区号)(城市) (州)(性别)
SMALLINT    CHAR(1            CHAR(30)        CHAR(5) CHAR(10) CHAR(2) CHAR(1)
-------- ------------------ -------------------- ------- ------- ------ -----
      558 Val Shipp          238 Westport Road    60556      Ch    IL    F   
      148 Susan Powell       534 East River Dr.   19041      Ha    PA    F   
      210 Bob Dawson         120 South jefferson  02891      Ne    RI    M   
      298 Howard Mansfield   290 Wynkoop Drive    22180      Vi    VA    M   
      348 Susan Pugh         534 East Hampton Dr. 06107      Ha    CN    F   
      349 Joe Adams          473 Emmerson Street  19702      Ne    DE    M   
      354 Janet Ladd         441 10th Street      18073      Pe    PA    F   
      410 Bill Jones         120 South Harrison   92660      Ne    CA    M   
      473 Carol Dean         983 Park Avenue      02169      Bo    MA    F   
      548 Allen Thomas       238 West Ox Road     60624      Ch    IL    M   
      649 John Anderson      473Emmory Street     10008      Ne    NY    M   
      654 Janet Thomas       441 6th Street       16510      Er    NY    F

论坛徽章:
0
8 [报告]
发表于 2004-09-30 22:15 |只看该作者

sybase数据库知识(摘自华为学习资料)

附录6    练习题答案
(下列习题参考表enrolls, 表teachers, 表courses, 表sections, 表students)
        1、Select * from zyl where xm='张三' 语句中代表了哪三种含义?
Ÿ        查询什么
Ÿ        从什么地方
Ÿ        条件

        2、列出表enrolls, 表teachers, 表courses, 表sections, 表students中所有记录。
(1)        select * from enrolls
(2)        select * from teachers
(3)        select * from courses
(4)        select * from sections
(5)        select * from student

        3、列出所有来自Chicago地区女生的姓名和地址。
1>;        select student_name,address,city,state from students
2>;        where city='Chicago' and sex='F'

        4、列出地区代码在20000和29999之间的学生姓名、城市名称和地区代码。
1>;        select student_name,city,state,zip from students
2>;        where zip not between '20000' and '29999'

        5、 列出电话号码不以257开头的所有教师的姓名和电话号码?
1>;        select teacher_name,phone from teachers
2>;        where phone not like '257%'

        6、怎样查看表students中student_name=jake的记录?
1>;        select * from students where student_name='jake'

        7、 列出所有不来自CA, IL州学生的姓名、城市名和州名。
1>;        select student_name,city,state from students
2>;        where state not in ('CA', 'IL')

        8、 按反字母顺序查出教师姓名及电话号码。
1>;        select teacher_name,phone from teachers
2>;        order by teacher_name DESC

        9、所有教师工资的平均数为多少?
1>;        select avg(salary) from teachers

        10、表students中共有多少学生?
1>;        select count(*) from students

        11、 如何启动和关闭SQL SERVER?如何检查?
Startserver –fRUN_SYBASE –fRUN_SYB_BACKUP
Showserver

        12、 Sybase 数据库由哪几部分组成?写出各部分的作用?
  (1) Sybase SQL Server
    Sybase SQL Server是进行数据库管理和维护的一个联机的关系数据库管理系统,是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用。

    (2) Sybase SQL Toolset
数据库应用系统的建立与开发的一组前端工具。由ISQL,DWB和APT组成。
ISQL是与SQL Server进行交互的一种SQL句法分析器。ISQL接收用户发出的SQL语言,将其发送给SQL Server,并将结果以形式化的方式显示在用户的标准输出上。
    DWB是数据工作台,是Sybase SQL Toolset的一个主要组成部分,它的作用在于使用户能够设置和管理SQL Server上的数据库,并且为用户提供一种对数据库的信息执行添加、更新和检索等操作的简便方法。在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜单的,因此操作比ISQL简单,是一种方便实用的数据库管理工具。
    APT是Sybase客户软件部分的主要产品之一,也是从事实际应用开发的主要环境。APT工作台是用于建立应用程序的工具集,可以创建从非常简单到非常复杂的应用程序,它主要用于开发基于表格(Form)的应用。其用户界面采用窗口和菜单驱动方式,通过一系列的选择完成表格(Form)、菜单和处理的开发。

    (3) Sybase Open Client/Open Server
通过Open Client的DB-LIB库,应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB,应用程序可以访问其它的数据库管理系统。其是任何应用软件和任何类型的数据连接在一起的接口。

        13、 如何备份数据库zylong ? 恢复其备份?写出命令。
1>;        dump database zylong to zzz
2>;        go
3>;        load database zylong from zzz
4>;        go

        14、 Sybinit 的作用是什么?
作用:        a. 建立master设备
                b. 创建各个系统表
                c. 创建sybsystemprocs数据库配置参数
       
        15、列出常用的系统表?系统过程(10个)?说明含义?

        16、Sybase数据库包含哪些系统数据库?作用是什么?
● 主数据库master;
● 模型数据库model;
● 系统过程数据库sybsystemprocs;
● 临时数据库tempdb。

        17、写出将/dev目录下650M的物理设备data112初始化为data112_log数据库的命令?
1>;        disk init
2>;        name= "data112_log"
3>;        physname= "/dev/data112"
4>;        vdevno=7
5>;        size=332800
6>;        go

        18、如何配置SYBASE运行环境?配置SQL Server内存为20M?配置连接数目为50?怎样使配置生效?写出命令。
1>;        sp_configure "memory",10240
2>;        sp_configure "user connections" ,50
3>;        go
4>;        reconfigure with override
5>;        go

        19、如何建立表students按student_name的索引?
1>;        create index sss on students(student_name)

        20、如何设置显示记录数(SQL)?
1>;        set rowcount 10

        21、有多少来自CA, IL州成绩大于2的学生?
1>;        select student_name,state,grade from students,enrolls
2>;        where state in ('CA', 'IL') and grade>;2 and students.student#=enrolls.student#

        22、哪个学期有学生选课人数高于平均数?
1>;        select course#,section#,num_students from sections
2>;        where num_students>;(select avg(num_students)
3>;        from sections)

        23、列出平均成绩大于最低平均成绩的所有学生?
1>;        select student_name,avg(grade) from students,enrolls
2>;        where students.student#=enrolls.student#
3>;        group by student_name having avg(grade)>;any
4>;        (select avg(grade) from enrolls group by student#)

        24、在表courses中增加一条记录(Calculus V, Math,888,4)
1>;        insert into courses(course_name,department,course#,num_credits)
2>;        values('Calculus','Math',730,4)

        25、在表teachers中给Horn工资定为99999?
1>;        update teachers set salary =99999 where teacher_name='Dr.Horn'

        26、删除表enrolls中成绩大于5或小于0的记录?
   1>;delete from enrolls where grde>;5 or grade<0

论坛徽章:
0
9 [报告]
发表于 2004-10-08 19:59 |只看该作者

sybase数据库知识(摘自华为学习资料)

很好!我要学学

论坛徽章:
0
10 [报告]
发表于 2004-10-09 08:18 |只看该作者

sybase数据库知识(摘自华为学习资料)

好好學習!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP