sybase基础语法

在安装配置好的Sybase服务器,可以通过以下操作开始访问SQL Server进行数据的查询和控制等操作:
isql -U 用户名 -P 密码 -S 服务名 -J 字符集名
例子:isql -U sa -P whty123456 -S sybase_01 -J cp936
说明:U 用户名;P 密码;S 服务名(客户端配置文件服务名,linux一般是interface,windows一般是sql.ini);J 字符集(sybase如果是utf8,使用isql连接使用cp936可正确存取中文)

启动Sybase数据库
%$SYBASE/ASE-12_5/install/startserver -f RUN_服务名
%$SYBASE/ASE-12_5/install/Startserver –f RUN_服务名_BAKUP

关闭Sybase数据库
使用isql命令登录Sybase数据库系统,在查询sysservers表查看可关闭的服务,如
isql   –Usa -Sjoli
Password:
1> select * from sysservers
2> go
一般需要关闭的服务有:系统备份服务、系统主服务
在isql提示里先关闭系统备份服务(默认为SYB_BACKUP),再关闭主服务(默认可以不输入主服务名),如:
1>shutdown SYB_BACKUP
2>go
1>shutdown
2>go

Sybase用户管理
创建登录用户
sp_addlogin login_name,passwd[,defaultdb[,deflanguage[,fullname]]]
例子:
1> sp_addlogin joli,joli,joli_db
2> go
删除登录用户
例子:
1> sp_droplogin test
2> go
创建数据库用户(user)
sp_adduser login_name[,name_in_db[,grpname]]
例子:
1> sp_adduser joli,joli
2> go
除数据库用户(user)
例子:
1> sp_dropuser test
2> go
修改该用户为该数据库dbo
例子:
1>use joli_db
3> sp_changedbowner joli
查看数据库用户信息
sp_displaylogin [login_name]
sp_helpuser
例子:
1> sp_helpuser
2> go
1> sp_displaylog joli
2> go
1> sp_who
2> go
修改用户口令
如果是修改sa口令,可用sa用户登录,然后执行以下命令修改
1>sp_password “旧命令 | null”,”new_password”
2>go
如果不是sa用户,则使用希望修改口令的user登录数据库,然后执行
1> sp_password 旧命令,新命令
2> go

创建设备
例子:
1> disk init
2> name="joli_dev",
3> physname="/opt/sybase/joli/joli_dev.dat",
4> vdevno=9,
5> size=51200
6> go

说明:
物理设备名称为:joli_dev
物理设备文件路径为:/opt/Sybase/joli/joli_dev.dat
设备编号(该号不能重复)为:9
大小(单位为2K)为:100M
(一般为用户数据库创建一个数字设备后,再单独为用户数据库创建一个日志设备)

删除设备
需要确定该设备上没有数据库。
例子:
1> sp_dropdevice test_dev
2> go
再删除操作系统设备文件。

查看设备状态
例子:
1> sp_helpdevice   [设备名]
2> go
说明:
可查看设备是否镜像(相关镜像类型、是否有临时取消镜像等)等配置。

创建数据库
例子:
1> create database joli_db on joli_dev=50 log on joli_log_dev=20
2> go

说明:
创建用户数据库joli_db,该数据库数据存储在设备joli_dev设备上,可使用大小为50M;日志存储在joli_log_dev设备上,可使用大小为20M。

扩展数据库:
alter database db_name on device_name=size,device_name =size log on device_name=size,device_name=size
例子:
1> alter database joli_db on joli_dev=10 log on joli_log_dev=5
2> go
说明:
   数据库joli_db在设备数字joli_dev上扩展10M,在日志设备joli_log_dev上扩展5M。

删除数据库:
drop database db_name
例子:
3> drop database joli_db
4> go

检查数据库状态
n 一般性检查
1>sp_helpdb
2>go
n 系统性检查
所有库检查:
1> dbcc checkdb
2> go
指定用户数据库检查:
1> dbcc checkalloc(joli_db)
2> go

Sybase日志管理
在创建用户数据库的时候,应尽量为事务日志创建独立的日志设备(一般创建为数据库大小的20%),这样可以单独备份事务日志、防止数据库溢满、可以看到事务日志的占用情况及可以镜像等。
dump transaction db_name with truncate_only      //不备份事务日志,直接清除。
    dump transaction db_name with no log
    dump transaction db_name to “路径/名字”     //备份事务日志
n 检查log大小
1> dbcc checktable(syslogs)
2> go
快速查看log大小
1> select data_pgs(8,doa mpg)
2> from sysindexes where id=8
3> go

修改Sybase系统缺省参数
可修改$SYBASE/ASE-12_5目录 “服务名.cfg”文件,重新启动Sybase服务来修改Sybase系统参数。
也可使用Sp_configure来修改部分动态参数。
n 查询当前所有的参数配置
1>sp_configure
2>go
n 查询可动态修改的参数
1>sp_configure “abcdef”
2>go
n 查询特定参数的配置情况
1>sp_configure “参数名
2>go”
n 修改可动态配置的参数
1> sp_configure “参数名”,值
2> go

一般可视情况酌情修改以下参数:
cache size、number of open databases、number of open objects、number of open indexes、 partition groups、number of large i/o buffers、 number of devices、default network packet size、 max network packet size、number of remote connections、number of remote logins、number of worker processes。

检查数据库的版本
1> Select @@version
2> go

备份到磁盘
本地磁盘备份
例子:
1> dump database joli_db to “备份目标绝对路径/备份文件名”
2> go

还可使用如下命令进行远程备份
dump database_name to “/u01/data/0102.dmp” at remote_server
dump transaction database_name to “/u01/log/0102.dmp” at remote_server

恢复数据库
v load database 数据库名 from “dev/rmt/0”

sybase数据库修改表的列名
sp_rename   '表名.列名','新的列名','column'

查看SYBASE数据库中的所有表名
select name from sysobjects where type="U"

自增ID相关操作
create table test_table (
id                              numeric(18,0)                    identity ,
str1                            varchar(20)                      not null  
)
lock allpages
with identity_gap = 1 on 'default'
go


set identity_insert test_table on
go
insert into test_table(id,str1) values(1000,'bbb')

go
set identity_insert test_table off
go


set identity_update test_table on
go
update test_table set id=id+1000 where id<1000
go
set identity_update test_table off
go


insert into test_table(str1) values('ccc')

关键字使用[]括起来

posted on 2012-03-23 16:55  kudosharry  阅读(2436)  评论(0编辑  收藏  举报

导航