sybase数据库查询语句
软件: sybase
Sybase数据库查询语句主要涉及系统信息查询、表结构查看、数据检索及分页操作,以下是常用语句及说明:
一、系统信息查询
数据库对象查看
SELECT * FROM sysobjects:列出数据库中所有表、索引等对象
SELECT * FROM sysdatabases:显示数据库列表及属性
sp_helpdb:查看数据库使用情况
空间使用统计
sp_spaceused:显示数据库空间使用情况
SELECT reserved_pages(db_id(),id)/1024.0 AS "Allocated MB" FROM sysobjects ORDER BY reserved_pages(db_id(),id) DESC:按分配空间排序表

二、表结构与数据检索
基础查询
SELECT d.name AS 表名, a.name AS 字段名, UPPER(b.name) AS 字段类型, a.length AS 长度:结合系统视图查询表结构
SELECT * FROM table_a A, table_b B WHERE A.code *= B.code:使用 *= 代替 LEFT JOIN(适用于Sybase 11.9.2及上面版本)
分页查询
SELECT TOP 20 name, row_count(db_id(),id) FROM sysobjects ORDER BY row_count(db_id(),id) DESC:按行数排序并限制结果
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY id ASC) AS RN FROM table_name) WHERE RN BETWEEN (currentpage-1)*pagesize+1 AND currentpage*pagesize:实现分页逻辑
三、动态SQL与存储过程
动态查询 :通过拼接字符串生成SQL语句,例如:
DECLARE @sql NVARCHAR(200);
SET @sql = 'SELECT ' + @columns + ' FROM ' + @table + ' WHERE ' + @where;
EXEC sp_executesql @sql;
适用于根据参数动态生成查询
四、其他常用操作
数据校验 :SELECT pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business')`:使用子查询更新或删除数据
数据库切换 :
sp_select_db('database_name'):切换当前活动数据库
注意事项 :
Sybase 早期版本(如11.9.2以下)不支持 LEFT JOIN,需使用 *= 语法;
动态SQL需注意SQL注入风险,建议使用参数化查询。
一、系统信息查询
数据库对象查看
SELECT * FROM sysobjects:列出数据库中所有表、索引等对象
SELECT * FROM sysdatabases:显示数据库列表及属性
sp_helpdb:查看数据库使用情况
空间使用统计
sp_spaceused:显示数据库空间使用情况
SELECT reserved_pages(db_id(),id)/1024.0 AS "Allocated MB" FROM sysobjects ORDER BY reserved_pages(db_id(),id) DESC:按分配空间排序表

二、表结构与数据检索
基础查询
SELECT d.name AS 表名, a.name AS 字段名, UPPER(b.name) AS 字段类型, a.length AS 长度:结合系统视图查询表结构
SELECT * FROM table_a A, table_b B WHERE A.code *= B.code:使用 *= 代替 LEFT JOIN(适用于Sybase 11.9.2及上面版本)
分页查询
SELECT TOP 20 name, row_count(db_id(),id) FROM sysobjects ORDER BY row_count(db_id(),id) DESC:按行数排序并限制结果
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY id ASC) AS RN FROM table_name) WHERE RN BETWEEN (currentpage-1)*pagesize+1 AND currentpage*pagesize:实现分页逻辑
三、动态SQL与存储过程
动态查询 :通过拼接字符串生成SQL语句,例如:
DECLARE @sql NVARCHAR(200);
SET @sql = 'SELECT ' + @columns + ' FROM ' + @table + ' WHERE ' + @where;
EXEC sp_executesql @sql;
适用于根据参数动态生成查询
四、其他常用操作
数据校验 :SELECT pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business')`:使用子查询更新或删除数据
数据库切换 :
sp_select_db('database_name'):切换当前活动数据库
注意事项 :
Sybase 早期版本(如11.9.2以下)不支持 LEFT JOIN,需使用 *= 语法;
动态SQL需注意SQL注入风险,建议使用参数化查询。