下面是小编给大家带来Sybase命令研究数据库,本文共6篇,一起来阅读吧,希望对您有所帮助。

篇1:Sybase命令研究数据库
目的:解决系统从 Oracle 到Sybase的迁移, 命令纵览: C:Documents and Settingsnewuesrisql -help Syntax Error in '-help'. usage: isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q] [-a display_charset] [-A packet_size] [-c cmdend] [-D databas
目的:解决系统从Oracle到Sybase的迁移。
命令纵览:
C:Documents and Settingsnewuesr>isql -help
Syntax Error in '-help'.
usage: isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q]
[-a display_charset] [-A packet_size] [-c cmdend] [-D database]
[-E editor [-h header [-H hostname [-i inputfile]
[-I interfaces_file] [-J client_charset] [-K keytab_file]
[-l login_timeout] [-m errorlevel] [-M labelname labelvalue]
[-o outputfile] [-P password] [-R remote_server_principal]
[-s col_separator] [-S server_name] [-t timeout] [-U username]
[-V [security_options]] [-w column_width] [-z localename]
[-Z security_mechanism]
登录到指定ip地址的数据库里面:
isql -H 192.168.3.143 -U sa -P zfvims -D zfv -S newuser
C:Documents and Settingsnewuesr>isql -H 192.168.3.143 -U sa -P zfvims -D zfv -S newuser
接着创建表进行测试:
1> create table test(mom varchar(20))
2> insert into test values('aaa')
3> insert into test values('bbb')
4> insert into test values('ccc')
5> select * from test
6> go
(1 row affected)
(1 row affected)
(1 row affected)
mom
--------------------
aaa
bbb
ccc
(3 rows affected)
1>
(责任编辑:铭铭 mingming_ky@126.com TEL:(010)68476636)
原文转自:www.ltesting.net
篇2:更改Sybase数据库
1.改变数据库属主
通常用户数据库有系统管理员创建,它的默认属主是dbo,系统过程sp_changeddbowner可改变数据库的属主关系,它必须由数据库管理员在要改变属主关系的数据库中执行。语法如下:
sp_changeddbowner login_name[,True]
其中参数True用于将权限一半传递给新属主。
2.扩展数据库
(1)扩展数据库空间
alter database 数据库名
on 设备名=扩展空间 //单位:M
如果扩展的设备对于数据库是新的,System和Default段会自动扩展到该设备上,
(2)扩展事务日志到新的设备上
sp_logdevice 数据库名,设备名
举例:将数据库另外扩充5M,用于存储日志
alter database my_db
on my_dev=5
go
sp_logdevice my_db,my_dev
go
3.删除数据库
drop database 数据库名
删除设备前必须删除其上的所有数据库,删除设备的命令是:sp_dropdevice
篇3:Sybase数据库简介数据库
一、Sybase数据库简介 1.版本 1984年,MarkB.Hiffman和RobertEpstern创建了Sybase公司,并在1987年推出了Sybase数据库产品,SYBASE主要有三种版本,一是 UNIX 操作系统下运行的版本,二是NovellNetware环境下运行的版本,三是 Windows NT环境下运行的版本。
一、Sybase数据库简介
1.版本
1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是WindowsNT环境下运行的版本。现在最新版本已经是 12.5,在各主流Unix操作系统中均有广泛应用。IBM AIX,HPunix,Digital Unix,Sun solaris等等。
2.Sybase数据库的特点
(1)它是基于客户/服务器体系结构的数据库
一般的关系数据库都是基于主/从式的模型的。在主/从式的结构中,所有的应用都运行在一台机器上。用户只是通过终端发命令或简单地查看应用运行的结果。 而在客户/服务器结构中,应用被分在了多台机器上运行。一台机器是另一个系统的客户,或是另外一些机器的服务器。这些机器通过局域网或广域网联接起来。客户/服务器模型的好处是:
● 它支持共享资源且在多台设备间平衡负载
● 允许容纳多个主机的环境,充分利用了企业已有的各种系统
(2) 它是真正开放的数据库
由于采用了客户/服务器结构,应用被分在了多台机器上运行。更进一步,运行在客户端的应用不必是Sybase公司的产品。对于一般的关系数据库,为了让其它语言编写的应用能够访问数据库,提供了预编译。Sybase数据库,不只是简单地提供了预编译,而且公开了应用程序接口DB-LIB,鼓励第三方编写DB-LIB接口。由于开放的客户DB-LIB允许在不同的平台使用完全相同的调用,因而使得访问DB-LIB的应用程序很容易从一个平台向另一个平台移植。
(3) 它是一种高性能的数据库
Sybase真正吸引人的地方还是它的高性能。体现在以下几方面:
● 可编程数据库
通过提供存储过程,创建了一个可编程数据库。存储过程允许用户编写自己的数据库子例程。这些子例程是经过预编译的,因此不必为每次调用都进行编译、优化、生成查询规划,因而查询速度要快得多。
● 事件驱动的触发器
触发器是一种特殊的存储过程。通过触发器可以启动另一个存储过程,从而确保数据库的完整性。
● 多线索化
Sybase数据库的体系结构的另一个创新之处就是多线索化。一般的数据库都依靠操作系统来管理与数据库的连接。当有多个用户连接时,系统的性能会大幅度下降。Sybase数据库不让操作系统来管理进程,把与数据库的连接当作自己的一部分来管理。此外,Sybase的数据库引擎还代替操作系统来管理一部分硬件资源,如端口、内存、硬盘,绕过了操作系统这一环节,提高了性能。
3.Sybase数据库的组成
Sybase数据库主要由三部分组成:
(1) 进行数据库管理和维护的一个联机的关系数据库管理系统Sybase SQL Server;
Sybase SQL Server是个可编程的数据库管理系统,它是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用。
(2) 支持数据库应用系统的建立与开发的一组前端工具Sybase SQL Toolset;
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、段
数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),一数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。当用户创建一个数据库时,SQL SERVER 会自动在该数据库中创建三个段: SYSTEM、LOGSEGMENT 、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象 。
在数据库中创建段的步骤是:
x 先用Disk init 初始化物理设备
x 通过使用Create database 和alter database 的on 子句,使数据库设备对数据库可用,于是新设备自动增加到数据库的default 和system段。
一旦数据库设备存在并对数据库可用,使用存储过程Sp_addsegment 定义数据库的段。语法如下:
Sp_addsegment 段名,数据库名,设备名
3、 系统数据库
安装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
共3页: 1 [2] [3] 下一页
原文转自:www.ltesting.net
篇4:sybase数据库恢复
使用load database加载备份到现有数据库,数据库可以是用于创建转储的数据库,也可以不是,语法为:
load database 数据库名 from 转储设备名/物理文件名
load transaction数据库名 from 转储设备名/物理文件名
●利用备份恢复数据库举例:
某数据库数据和日志分别存储在两个独立的磁盘上,正常运转时的执行的备份计划如下,每天的17:00执行整个数据库的备份,每天的10:00、12:00、14:00、16:00点执行增量备份:
周一17:00磁带1(100M)周二10:00磁带2(30M)周二12:00磁带3(30M)周二14:00磁带4(30M)周二16:00磁带5(30M)周二17:00磁带6(30M)
DumpdatabaseDumptransactionDumptransactionDumptransactionDumptransactionDumpdatabase
若数据磁盘在周二的下午六点损坏,可以采用如下步骤恢复数据库:
(1)使用dump transaction with no_truncate获得当前的事务日志转储,磁带7;
(2)使用load database最新的数据库转储,磁带6;(offline)
(3)使用load transaction提交最新的事务日志转储,磁带7;
(4)使用online database把数据库状态设置为online,
若数据磁盘在周二的下午4:50损坏,恢复过程如下:
(1)使用dump transaction with no_truncate获得当前的事务日志转储,磁带7;
(2)使用load database转载最新的数据库转储,磁带6;(offline)
(3)使用load transaction依次装载磁带2、3、4、5上的事务日志;
(4)使用load transaction提交最新的事务日志转储,磁带7;
(5)使用online database把数据库状态设置为online。
篇5:SYBASE事务数据库
事务 本篇文章描述了 数据库 事务隔离级对锁的影响,通过对比事务隔离级0和1,理解锁与脏读的关系, 实验内容:分别设置0和1级隔离级,执行两个不同但又有相关的事务。本实验环境如下: 1、有权访问用户数据库(在此是aca_database)和对数据库表有修改和查
事务
本篇文章描述了数据库事务隔离级对锁的影响,通过对比事务隔离级0和1,理解锁与脏读的关系。
实验内容:分别设置0和1级隔离级,执行两个不同但又有相关的事务。本实验环境如下:
1、 有权访问用户数据库(在此是aca_database)和对数据库表有修改和查询权限。
2、 数据库中有表auths,包含salary列(数据类型是money),有一定数据量(在此有1万行)。
步骤:
1、 如在同一台机器,可分别执行两次“SQLAdvantage”,分别用合法帐号登录,准备各自执行一个事务。
2、 在各自界面打开用户数据库aca_database,设置隔离级为1(此亦为缺省值):
set transaction isolation level 1,查看当前隔离级别用select @@isolation
3、 执行第一个事务的前两句,暂不执行后面的提交或回滚。
begin transaction
update auths set salary=salary+100
commit transaction
(rollback transaction)
4、 执行第二个事务 select sum(salary) from auths
5、 第一个事务正常执行结束,但只在内存缓冲区完成修改,事务并没有真正结束,相应也不释放锁,第二个事务处于等待状态,
可执行sp_lock和sp_who命令查看。
6、 执行第3步中的提交或回滚命令,第二个事务得到执行。
7、 改变事务隔离级为0,重复执行3-4步。第一个事务没有任何变化,第二个事务很快出来根据第一个事务修改数据而成的结果,似乎在执行响应上并不受第一个事务的影响。
8、 重复第6步结束。
通过上面的实验我们知道:
1、 隔离级0时事务允许脏读,隔离级1时事务不允许脏读,而只是等待前一个修改事务真正结束并释放锁。
2、 隔离级为0时,如果在修改事务的最后是回滚操作,则查询读事务将不能读到正确的数据。
3、 在确信事务中没有回滚操作的可能,并要求更高的执行效率和并行性,只有这时可考虑设置隔离级为0。
原文转自:www.ltesting.net
篇6:Sybase数据库函数库
这个函数库和 SQL Server 数据库函数库几乎完全相同,实际上是本函数先出现,之后才出现 SQL Server 数据库函数库,
而就用户观点 Sybase 和 MS SQL Server 6.x 也是几乎相同的。当然 MS SQL Server 7.0 之后的差异就比较大了。
sybase_affected_rows: 取得最后 query 影响的列数。
sybase_close: 关闭与数据库的连接。
sybase_connect: 连上数据库。
sybase_data_seek: 移动列指针。
sybase_fetch_array: 返回数组资料。
sybase_fetch_field: 取得字段信息。
sybase_fetch_object: 返回类资料。
sybase_fetch_row: 返回单列的各字段。
sybase_field_seek: 配置指针到返回值的某字段。
sybase_free_result: 释放返回占用内存。
sybase_num_fields: 取得返回字段的数目。
sybase_num_rows: 取得返回列的数目。
sybase_pconnect: 打开服务器持续连接。
sybase_query: 送出一个 query 字符串。
sybase_result: 取得查询 (query) 的结果。
sybase_select_db: 选择一个数据库。
sybase_affected_rows
取得最后 query 影响的列数。
语法: int sybase_affected_rows(int [link_identifier]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来取得最后一次对数据库下 query 指令所影响的列数,会影响的为 INSERT、UPDATE 或 DELETE 等指令,而 SELECT 不会影响。参数 link_identifier 可省略,为打开数据库的连接代号。返回值即为列数。
sybase_close
关闭与数据库的连接。
语法: boolean sybase_close(int link_identifier);
返回值: 布尔值
函数种类: 数据库功能
内容说明: 本函数用来关闭与 Sybase 数据库的连接,能关闭的为使用 sybase_connect() 函数打开的数据库,若使用 sybase_pconnect() 打开的数据库则不能以本函数关闭。参数 link_identifier 可省略,为打开数据库的连接代号。关闭成功则返回 true 值。
参考: sybase_connect() sybase_pconnect()
sybase_connect
连上数据库。
语法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数用来打开与 Sybase 数据库的连接。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略,分别为连接使用的帐号及密码。使用本函数需注意早点关闭数据库,以减少系统的负担。连接成功则返回数据库的连接代号,失败返回 false 值。
参考: sybase_close() sybase_pconnect()
sybase_data_seek
移动列指针。
语法: boolean sybase_data_seek(int result_identifier, int row_number);
返回值: 布尔值
函数种类: 数据库功能
内容说明: 本函数用来移动 Sybase 资料表中的列指针到指定的列上,可供 sybase_fetch_row() 等函数使用。参数 result_identifier 为查询的代号值。参数 row_number 则为欲移往的列数。若失败则返回 false 值。
参考: sybase_close() sybase_pconnect()
sybase_fetch_array
返回数组资料。
语法: array sybase_fetch_array(int result);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 拆到数组变量中,
若 result 没有资料,则返回 false 值。而本函数可以说是 sybase_fetch_row() 的加强函数,除可以将返回列及数字索引放入数组之外,还可以将文字索引放入数组中。
使用范例
这是 joey@samaritan.com (22-Feb-1999) 所提出的例子
$q = sybase_query(“SELECT COUNT(DISTINCT OPPORTUN99vY_ID) FROM M_OPP_INTERESTS WHERE INTEREST_ID = $i_id”, $db);
while ($op_by_int = sybase_fetch_arr
ay($q)) {
while (list($k, $v) = each($op_by_int)) {
echo “$op[$k] => $vn”;
}
?>
返回资料如下
$op[0] => 2164
$op[computed] => 2164 sybase_fetch_field
取得字段信息。
语法: object sybase_fetch_field(int result, int field_offset);
返回值: 类
函数种类: 数学运算
内容说明: 本函数返回的类资料为 result 的字段 (Column) 信息。返回类的属性如下:
name - 字段名称
column_source -字段所在表格的资料表名称
max_length - 字段的最大长度
numeric - 若为 1 表示本字段为数字类型 (numeric)
参考: sybase_field_seek()
sybase_fetch_object
返回类资料。
语法: object sybase_fetch_object(int result);
返回值: 类
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 拆到类变量中。使用方法和 sybase_fetch_array() 几乎相同,不同的地方在于本函数返回资料是类而不是数组。若 result 没有资料,则返回 false 值。另外值得注意的地方是,取回的类资料的索引只能是文字而不能用数字,这是因为类的特性。类资料的特性中所有的属性 (property) 名称都不能是数字,因此只好乖乖使用文字字符串当索引了。关于速度方面,本函数的处理速度几乎和 sybase_fetch_array() 及 sybase_fetch_row() 二函数差不多,要用哪个函数还是看使用的需求决定。
参考: sybase_fetch_array() sybase_fetch_row()
sybase_fetch_row
返回单列的各字段。
语法: array sybase_fetch_row(int result);
返回值: 数组
函数种类: 数据库功能
内容说明: 本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引,第一个的索引值是 0。若 result 没有资料,则返回 false 值。
参考: sybase_fetch_array() sybase_fetch_object() sybase_data_seek() sybase_result()
sybase_field_seek
配置指针到返回值的某字段。
语法: int sybase_field_seek(int result, int field_offset);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数配置目前的指针到返回值的特定字段中。参数 result 为返回值代码。参数 field_offset 则为指定的字段序数。
参考: sybase_fetch_field()
sybase_free_result
释放返回占用内存。
语法: int sybase_free_result(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以释放目前 Sybase 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。
sybase_num_fields
取得返回字段的数目。
语法: int sybase_num_fields(int result);
返回值: 整数
函数种类: 数据库功能
内容说明: 本函数可以得到返回字段的数目。参数 result 为返回值代码。
★sybase数据库中numeric数据类型字段出现跳号的问题
★命令公文
文档为doc格式