你是要写存储过程?还是建表的约束条件啊?大于多少个汉字或多少个字节 比较简单, LENGTH( 列名 ) > 数字。 基本上就是长度判断了。注: Oracle,DB2 ,MySQL, SQLite 函数名字是 LENGTHSQL Server 函数名字是 LEN不能出现数字, 恐怕需要用正则表达式处理,比较方便。这个要看你的数据库, 是什么数据库了。因为不同的数据库, 正则表达式 的那个函数不一样的。对于 Oracle,使用 REGEXP_INSTR ( 列名, '[0-9]+') = 0 来实现对于 SQL Server 使用 PATINDEX(‘%[0-9]%’, 指定字符串) = 0 来实现 追问 数据库用的是pgAdmin,要做查询数据的约束条件, 我这边是这样写的:((octet_length(i_value)>3 and octet_length(i_value)=length(i_value)) or (length(i_value)>1 and octet_length(i_value)length(i_value))) or i_value ~ '[0-9]+'