Sybase ASE 数据库基础知识

Sybase ASE 数据库基础知识

准备Sybase ASE 环境

因公司业务使用的数据库是Sybase,不得不快速学习该知识。安装一个Sybase数据库我个人感觉是比较复杂的,不过网上有一个
docker镜像[chernov/sybase:latest]可以直接安装使用

docker run -d -t -p 5000:5000 -e "SYBASE_USER=guest" -h dksybase --name sybase157 chernov/sybase:latest

镜像创建好实例后,会默认有一个sa用户,它的密码是:password
你需要使用下面的命令修改密码

sp_password 'password','your new password',sa
-- sp_password是一个存储过程,后面跟三个参数,第一个参数是原密码,第二个参数是新密码,第三个参数是用户名

Sybase ASE 必须知道的基础知识

1.显示当前版本

select @@version
go
sp_version
go

2.根据条件插入数据,且表不存在

create table #order like order
go
insert into #order select * from order where order_no = 1234564
go
-- 等价于下面这条SQL
select * into #order
from order where order_no = 1234564
go

3.删除对象前先进行判断

if object_id('sp_test') is not null
   drop proc sp_test
go

或者
if exists ( select 1 from sysobjects where name = 'sp_test' )
drop proc sp_test
go

或者
if exists (select 1 from sysobjects s inner join sysusers u
 on s.uid = u.uid and s.name = 'sp_test' and s.type = 'P'
 and u.name = 'dbo'
)
begin
  setuser 'dbo'
  drop proc sp_test
end
go

4.授权给所有人

GRANT ALL ON sample_details
TO public
GO

5.存储过程中的临时表

在存储过程或应用程序里,带#的临时表必须显式删除,先truncate table,然后drop table

truncate table #test
drop table #test 
go

6.创建存储过程

-- 创建存储过程
CREATE PROC  procedure_name    
as   
begin       

SQL_statements       
         .         .
[return]   
end
-- 执行存储过程
[exec[ute]] procedure_name [参数]

-- 查看存储过程代码
sp_helptext procedure_name

--切换到存储过程所在数据库,直接双击查看
--注释
--使用斜杠星号对/* 注释内容*/
--使用双连字符 --注释内容

7.获取前10条数据

sybase 不支持分页查询,只能取前多少条,一些报表都是直接load,或者使用存储过程来处理

select top 10 * from tbl_name;