sybase数据库的“like”用法是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sybase数据库的“like”用法是啥?相关的知识,希望对你有一定的参考价值。

想在SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符。

SQL里提供了 escape子句来处理这种情况,escape可以指定like中使用的转义符是什么,而在转义符后的字符将被当成原始字符,这和C里的'\\'很像,但是escape要求自定义一个转义符,而不是指定了'\\’字符。

美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。

系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。

参考技术A 想在SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符。SQL里提供了 escape子句来处理这种情况,escape可以指定like中使用的转义符是什么,而在转义符后的字符将被当成原始字符,这和C里的'\'很像,但是escape要求自定义一个转义符,而不是指定了'\’字符。
如:
select * from user_all_tables where table_name like 'YW__%' escape '_'
含义是查出当前用户表下所有以'YW_'开头的表,其中第一个'_'是转义符,第二个是被转义的字符,等效可以写成:
select * from user_all_tables where table_name like 'YW\_%' escape '\'

sybase表结构导出方法

sybase ASE自带了一个导出对象结构的命令行工具:ddlgen

比较详细的用法,请参照:用DDLGEN从ASE数据库中提取对象的定义语法

如果对象结构中包含中文,使用参数: -Jcp936

比较实用的用法如下:

1、导出数据库tpchdb内所有表的表结构(包括索引):

    ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TU -N%.% -Jcp936 -O./tables.sql

2、导出数据库tpchdb内所有视图的创建语法:

    ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TV -N%.% -Jcp936 -O./views.sql

3、导出数据库tpchdb内所有存储过程的创建语法:

    ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TP -N%.% -Jcp936 -O./procs.sql

4、只导出表结构(不包含索引):

    ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TU -N%.% -FI -Jcp936 -O./tables.sql

5、仅仅导出表上的索引的语法:

    ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TI -N%.% -Jcp936 -O./indexes.sql

注意常见的对象类型:

I    ---    索引

U   ----  表

TR ---   触发器

P   ---   存储过程

V   ---   视图


以上是关于sybase数据库的“like”用法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Sybase 中神秘的“时间戳”数据类型是啥?

Sybase中的load table的用法

sybase表结构导出方法

oracle中INTERSECT,MINUS的用法是啥?

SQL中like的用法

关于sql查询中的like用法疑问?