crash-me生成的数据库对比表

  你可以从http://www.mysql.com 的MySQL3.23发行版本中得到一份crash-me的拷贝.


crash-me是一个能够自动检测SQL服务器缺陷和性能的程序。我们TCX的成员尽了很大的努力使crash-me尽可能地公平和准确,但总是存在这样一种微小的可能性,即对于一些数据库的特殊的测试会失败,即使这种数据库具有这种性能。我们希望这种 错误能够一发现就立刻纠正。有一些测试可能会失败,因为这种数据库并不遵循 ANSI SQL 92ODBC3.0标准,而在这种情况下我们认为数据库在这项测试中失败。
TCX努力使crash-me能够做更多的测试,但总是可能有一些数据库的生产产商使用的特殊函数/查询不能被测试。如果你发现某个数据库的语句不能被测试,请告知我们并尽力自己来修正crash-me程序或者把一些查询的例子交给我们这样我们就能加入这些 语句。我们很乐意听取完善crash-me的各种意见。crash-me程序也是MySQL测试的输 入参考 。
注意:crash-me表是根据使用不同参数的数据库产生的。如果不是这种情况,会在注释行指出。一些已知的缺陷也是可以根据操作系统、Perl DBI驱动程序和使用的数据库版本的许可证进行配置的。

在对比表中使用以下标记:

标记 描述
yes 函数被支持
no 函数不被支持
error 函数存在但不返回期望值。通常这意味着数据库对于一些查询选项使用了非标准的 扩展。
忽略 函数不在服务器端产生错误,但它什么也不做。一个函数可能对 其他一些命令执行相同的动作。
非标准 函数存在但不依照ANSI SQL 92ODBC 3.0工作。
  没有相关项或在这个数据库中没有测试。
+number 至少number操作被支持。
warning 任何使用正常方式访问数据库的人都可能使服务器瘫痪,也许是永远!

crash-me对比

功能 MySQL 3.23.12c alpha MySQL 3.22.29 debug Informix 7.30C1 Access 97 Adabas 10.01.00 IBM DB2 5 EMPRESS Version 6.10 Microsoft SQL Server 7.00 - 7.00.623 (Intel X86) mSQL server version 2.0.11 Oracle 8.0.5.0.0 PostgreSQL 6.5 SOLID Server - v.02.30.0026 (Linux ix86) Sybase enterprise 11.5 NT
Crash-me 信息
crash-me安全性 yes yes warning yes warning warning warning yes yes yes yes yes yes
crash-me版本 1.38 1.36 1.19a 1.17 1.20b 1.19a 1.18a 1.31 1.32 1.32 1.32 1.19a 1.19a
crash-me测试平台 Linux 2.2.12-20smp i686 Linux 2.2.13-my-SMP i686 Windows NT Version 4.0 Windows 95. [Version 4.00.1111] Linux 2.0.35 i686 Windows NT Version 4.0 Linux 2.0.33 i586 Windows NT Version 4.0 Linux 2.2.10 i686 Linux 2.2.10 i686 Linux 2.2.10 i686 Linux 2.0.34 i586 Windows NT Version 4.0
ANSI SQL 92 类型
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Type bit yes yes no yes no no no yes no no no no yes
Type bit(1 arg) yes no no no no no no no no no no no no
Type bit varying(1 arg) no no no no no no no no no no no no no
Type char(1 arg) yes yes yes yes yes yes yes yes yes yes yes yes yes
Type char varying(1 arg) yes yes yes no no yes no yes no yes yes no yes
Type character(1 arg) yes yes yes no yes yes yes yes yes yes yes yes yes
Type character varying(1 arg) yes yes yes no no yes no yes no yes yes yes yes
Type date yes yes yes yes yes yes yes no yes yes yes yes no
Type dec(2 arg) yes yes yes no yes yes yes yes no yes no yes yes
Type decimal(2 arg) yes yes yes no yes yes yes yes no yes yes yes yes
Type double precision yes yes yes no yes yes yes yes no yes yes yes yes
Type float yes yes yes yes yes yes yes yes yes yes yes yes yes
Type float(1 arg) yes yes yes   yes yes   yes no yes yes yes yes
Type int yes yes yes yes yes yes yes yes yes yes yes yes yes
Type integer yes yes yes yes yes yes yes yes yes yes yes yes yes
Type interval day to second no no           no no no yes    
Type interval year no no no no no no no no no no yes no no
Type interval year to month no no           no no no yes    
Type national char varying(1 arg) yes no           yes no yes no    
Type national character(1 arg) yes no           yes no yes yes    
Type national character varying(1 arg) yes no           yes no yes yes    
Type nchar(1 arg) yes no yes no no no no yes no yes yes no yes
Type nchar varying(1 arg) yes no                      
Type numeric(2 arg) yes yes yes no no yes no yes no yes yes yes yes
Type real yes yes yes yes yes yes yes yes yes yes yes yes yes
Type smallint yes yes yes yes yes yes yes yes yes yes yes yes yes
Type time yes yes no yes yes yes yes no yes no yes yes no
Type timestamp yes yes no yes yes yes no yes no no yes yes yes
Type timestamp with time zone no no           no no no yes    
Type varchar(1 arg) yes yes yes yes yes yes no yes no yes yes yes yes
ODBC3.0类型
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Type bigint yes yes no no no no no no yes no no no no
Type binary(1 arg) yes yes no yes yes no no yes no no no yes yes
Type datetime yes yes no yes no no no yes no no yes no yes
Type tinyint yes yes no no no no no yes yes no no yes yes
Type varbinary(1 arg) yes yes no yes no no no yes no no no yes yes
其他类型
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Type abstime no no no no no no no no no no yes no no
Type bfile no no no   no no   no no yes no no no
Type blob yes yes no no no no no no no yes no no no
Type bool yes yes no no no no no no no no yes no no
Type box no no no no no no no no no no yes no no
Type byte no no yes yes no no no no no no no no no
Type char(1 arg) binary yes yes no no no no no no no no no no no
Type char16     no no no no no         no no
Type char2     no no no no no         no no
Type char4     no no no no no         no no
Type char8     no no no no no         no no
Type circle no no no no no no no no no no yes no no
Type clob no no no   no no   no no yes no no no
Type datetime yes yes no yes no no no yes no no yes no yes
Type double yes yes no yes no yes no no yes no no no no
Type enum(1 arg) yes yes no no no no no no no no no no no
Type float(2 arg) yes yes no no no no no no no no no yes no
Type float4 yes yes no yes no no no no no no yes no no
Type float8 yes yes no yes no no no no no no yes no no
Type image no no no   no no no yes no no no no yes
Type int(1 arg) zerofill yes yes no no no no no no no no no no no
Type int1 yes yes no no no no no no no no no no no
Type int2 yes yes no no no no no no no no yes no no
Type int3 yes yes no no no no no no no no no no no
Type int4 yes yes no no no no no no no no yes no no
Type int8 yes yes no no no no no no no no yes no no
Type int not null auto_increment yes yes no no no no no no no no no no no
Type int unsigned yes yes           no no no no    
Type interval no no           no no no yes    
Type line no no no no no no no no no no yes no no
Type long no no no   yes no   no no yes no no no
Type long raw no no no   no no   no no yes no no no
Type long varbinary yes yes no no no no no no no no no yes no
Type long varchar(1 arg) no no no no no no no no no no no yes no
Type lseg no no no no no no no no no no yes no no
Type mediumint yes yes no no no no no no no no no no no
Type mediumtext yes yes no no no no no no no no no no no
Type middleint yes yes no no no no no no no no no no no
Type mlslabel no no no   no no   no no yes no no no
Type money no no yes yes no no no yes yes no yes no yes
Type nclob no no no   no no   no no yes no no no
Type number no no no   no no   no no yes no no no
Type number(1 arg) no no no   no no   no no yes no no no
Type number(2 arg) no no           no no yes no    
Type nvarchar(2 arg)     yes no no no no         no no
Type nvarchar2(1 arg) no no no   no no   no no yes no no no
Type path no no no no no no no no no no yes no no
Type point no no no no no no no no no no yes no no
Type polygon no no no no no no no no no no yes no no
Type raw(1 arg) no no no   no no   no no yes no no no
Type reltime no no no no no no no no no no yes no no
Type rowid no no no   no no   no no yes no no no
Type serial no no yes no no no no no no no no no no
Type set(1 arg) yes yes no no no no no no no no no no no
Type smalldatetime no no no   no no no yes no no no no yes
Type smallfloat no no yes no no no no no no no no no no
Type smallmoney no no no   no no no yes no no no no yes
Type text yes yes yes yes no no yes yes no no yes no yes
Type text(1 arg) no no no yes no no yes no yes no no no no
Type timespan no no no no no no no no no no yes no no
Type uint no no           no yes no no    
Type varchar2(1 arg) no no no   no no   no no yes no no no
Type year yes yes no no no no no no no no no no no
Constraints
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
CHECK constraint no no                      
NULL constraint (SyBase style) yes yes                      
foreign keys no no yes   yes yes   yes   yes no yes yes
foreign key syntax yes yes yes no yes yes no yes no yes yes yes yes
ANSI SQL 92 functions
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Function +, -, * and / yes yes yes yes yes yes yes yes   yes yes yes yes
Function BIT_LENGTH no no no no no no no no   no no yes no
Function CASE yes no yes no no yes no yes   no yes yes yes
Function CAST no no no no no yes no yes   no yes yes no
Function CHAR_LENGTH yes yes yes no no no no no   no   yes yes
Function CHAR_LENGTH(constant) yes yes               no      
Function CHARACTER_LENGTH yes yes yes no no no no no   no no yes yes
Function concatenation with || error error yes no yes yes no no   yes yes yes no
Function CURRENT_DATE yes yes no no no no no no   no yes no no
Function CURRENT_DATE()     no no no no no no   no no no no
Function CURRENT_TIME yes yes no no no no no no   no yes no no
Function CURRENT_TIME()     no no no no no no   no no no no
Function CURRENT_TIMESTAMP yes yes no no no no no yes   no yes no no
Function CURRENT_TIMESTAMP()     no no no no no no   no no no no
Function CURRENT_USER no no                      
Function LOWER yes yes yes no yes no no yes   yes yes yes yes
Function OCTET_LENGTH yes yes yes no no no no no   no yes yes yes
Function POSITION yes yes no no no no no no   no yes yes no
Function SESSION_USER no no no no no no no no   no no no no
Function ANSI SQL SUBSTRING yes yes no no no no no no   no yes no no
Function SYSTEM_USER no no no no no no no no   no no no no
Function TRIM yes yes no no no no no no   no yes no no
Function UPPER yes yes yes no yes no no yes   yes yes yes yes
Function USER no no                      
ODBC3.0函数
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Function ABS yes yes yes yes yes yes yes yes   yes yes yes yes
Function ACOS yes yes yes no yes yes yes yes   yes no yes yes
Function ASCII yes yes no no error yes no yes   yes no yes yes
Function ASIN yes yes yes no yes yes yes yes   yes no yes yes
Function ATAN yes yes yes no yes yes yes yes   yes no yes yes
Function ATAN2 yes yes yes no yes error yes no   yes no yes no
Function CEILING yes yes no no yes yes yes yes   no no yes yes
Function CHAR yes yes no no no error no yes   no no yes yes
Function CONCAT(2 arg) yes yes no no no yes no no   yes no yes no
Function COS yes yes yes yes yes yes yes yes   yes no yes yes
Function COT yes yes no no yes yes no yes   no no yes yes
Function CURDATE yes yes no no yes no no no   no no yes no
Function CURTIME yes yes no no yes no no no   no no yes no
Function DATABASE yes yes no no yes no no no   no no yes no
Function DAYNAME yes yes no no yes no no no   no no yes no
Function DAYOFMONTH yes yes no no yes no no no   no no yes no
Function DAYOFWEEK yes yes no no error no no no   no no yes no
Function DAYOFYEAR yes yes no no yes no no no   no no yes no
Function DEGREES yes yes no no yes yes no yes   no no yes yes
Function DIFFERENCE() no no no no no yes no yes   no no no yes
Function EXP yes yes yes yes yes yes yes yes   yes yes yes yes
Function EXTRACT yes no no no no no no no   no no yes no
Function FLOOR yes yes no no yes yes yes yes   yes yes yes yes
Function ODBC syntax LEFT & RIGHT yes yes no yes no yes no yes   no no yes yes
Function HOUR yes yes no yes yes yes no no   no no yes no
Function ANSI HOUR yes yes no no no no no no   no no yes no
Function IFNULL yes yes no no yes no no no   no no yes no
Function INSERT yes yes no no no yes no no   no no no no
Function LCASE yes yes no yes yes yes no no   no no yes no
Function LEFT yes yes no yes yes yes no yes   no no no no
Function REAL LENGTH yes yes error no error yes yes no   yes no yes no
Function ODBC LENGTH error error yes no yes error error no   error no error no
Function LOCATE(2 arg) yes yes no no no yes no no   no no yes no
Function LOCATE(3 arg) yes yes no no no yes no no   no no yes no
Function LOG yes yes no yes yes yes yes yes   no no yes yes
Function LOG10 yes yes yes no yes yes yes yes   no no yes yes
Function LTRIM yes yes no yes yes yes yes yes   yes yes yes yes
Function MINUTE yes yes no yes yes yes no no   no no yes no
Function MOD yes yes yes no no yes no no   yes yes yes no
Function MONTH yes yes no no yes no no yes   no no yes no
Function MONTHNAME yes yes no no yes no no no   no no yes no
Function NOW yes yes no yes yes no no no   no yes yes no
Function PI yes yes no no yes no no yes   no no yes yes
Function POWER yes yes no no yes yes no yes   yes yes yes yes
Function QUARTER yes yes no no no no no no   no no yes no
Function RADIANS yes yes no no yes yes no error   no no yes error
Function RAND yes yes no no no yes no yes   no no no yes
Function REPEAT yes yes no no no yes no no   no no yes no
Function REPLACE yes yes yes no yes yes no yes   yes no yes no
Function RIGHT yes yes no yes yes yes no yes   no no no yes
Function ROUND(2 arg) yes yes yes no yes yes yes yes   yes yes yes yes
Function RTRIM yes yes no yes yes yes yes yes   yes yes yes yes
Function SECOND yes yes no yes yes yes no no   no no yes no
Function SIGN yes yes no no yes yes yes yes   yes yes yes yes
Function SIN yes yes yes yes yes yes yes yes   yes no yes yes
Function SOUNDEX yes yes no no yes yes no yes   yes no no yes
Function SPACE yes yes no yes no yes no yes   no no yes yes
Function SQRT yes yes yes no yes yes yes yes   yes yes yes yes
Function ODBC SUBSTRING yes yes no no no no no yes   no no yes yes
Function TAN yes yes yes yes yes yes yes yes   yes no yes yes
Function TIMESTAMPADD no no no no no no no no   no no no no
Function TIMESTAMPDIFF no no no no no no no no   no no no no
Function TRUNCATE yes yes no no yes yes no no   no no yes no
Function UCASE yes yes no yes yes no no no   no no yes no
Function USER     yes no yes yes no         yes yes
Function USER() yes yes no   yes no   no   no no no no
Function WEEK yes yes no no no no no no   no no yes no
Function YEAR yes yes no no yes no no yes   no no yes no
其他函数
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Function NOT as '!' in SELECT yes yes no no no no no no   no no no no
Function MOD as % yes yes no no no no yes yes   no yes no yes
Function & (bitwise and) yes yes no error no no no yes   no no no yes
Function AND as '&&' yes yes no no no no no no   no no no no
Function <> in SELECT yes yes no yes no no no no   no yes no no
Function = yes yes no yes no no no no   no yes no no
Function ADD_MONTHS no no no   no no   no   no no no no
Function AND and OR in SELECT yes yes no yes no no no no   no yes no no
Function ATN2 no no no   no no no yes   no no no yes
Function automatic num->string convert yes yes no no no no no no   yes no no no
Function automatic string->num convert yes yes yes yes no no no yes   yes yes no no
Function BETWEEN in SELECT yes yes no yes no no no no   no yes no no
Function << and >> (bitwise shifts) yes yes no   no no   no   no no no no
Function BIT_COUNT yes yes no no no no no no   no no no no
Function CEIL no no no   yes yes   no   yes yes no no
Function CHARINDEX no no no   no no no yes   no no no yes
Function CHR no no no   error yes   no   yes no no no
Function COALESCE yes no           yes   no no    
Function concatenation with + error error no   no no no yes   no no yes yes
Function CONCAT(list) yes yes no no no no no no   no no no no
Function CONVERT no no no no no no no yes   no no no yes
Function COSH no no no   yes no   no   yes no no no
Function DATE_FORMAT yes yes no no no no no no   no no no no
Function DATEADD no no no   no no no yes   no no no yes
Function DATEDIFF no no no   no no no yes   no no no yes
Function DATENAME no no no   no no no yes   no no no yes
Function DATEPART no no no   no no no yes   no no no yes
Function ELT yes yes no no no no no no   no no no no
Function ENCRYPT yes yes no no no no no yes   no no no no
Function FIELD yes yes no no no no no no   no no no no
Function FORMAT yes yes no no no no no no   no no no no
Function FROM_DAYS yes yes no no no no no no   no no no no
Function FROM_UNIXTIME yes yes no no no no no no   no no no no
Function GETDATE no no no   no no no yes   no no no yes
Function GREATEST yes yes no   yes no   no   yes no no no
Function IF yes yes no no no no no no   no no no no
Function IN on numbers in SELECT yes yes no yes no no no no   no yes no no
Function IN on strings in SELECT yes yes no yes no no no no   no no no no
Function INITCAP no no yes   yes no   no   yes yes no no
Function LOCATE as INSTR yes yes no yes no no no no   yes no no no
Function INSTR (Oracle syntax) no no           no   yes no    
Function INSTRB no no no   no no   no   error no no no
Function INTERVAL yes yes no no no no no no   no no no no
Function LAST_DAY no no no   no no   no   no no no no
Function LAST_INSERT_ID yes yes no no no no no no   no no no no
Function LEAST yes yes no   yes no   no   yes no no no
Function LENGTHB no no no   no no   no   error no no no
Function LIKE in SELECT yes yes no yes no no no no   no no no no
Function LIKE ESCAPE in SELECT yes yes no no no no no no   no no no no
Function LN no no no   yes yes   no   yes yes no no
Function LOG(m,n) no no no   no no   no   yes yes no no
Function LOGN no no yes   no no   no   no no no no
Function LPAD yes yes yes no no no no no   yes yes no no
Function MAX on numbers     no no no no no         no no
Function MDY no no yes   no no   no   no no no no
Function SUBSTRING as MID yes yes no yes no no no no   no no no no
Function MIN on numbers     no no no no no         no no
Function MONTHS_BETWEEN no no no   no no   no   no no no no
Function NOT in SELECT yes yes no yes no no no no   no no no no
Function NOT BETWEEN in SELECT yes yes no no no no no no   no yes no no
Function NOT LIKE in SELECT yes yes no yes no no no no   no no no no
Function ODBC CONVERT no no no no no no no no   no no no no
Function PASSWORD yes yes no no no no no no   no no no no
Function PATINDEX no no no   no no no yes   no no no yes
Function PERIOD_ADD yes yes no no no no no no   no no no no
Function PERIOD_DIFF yes yes no no no no no no   no no no no
Function POW yes yes yes no no no yes no   no no no no
Function RANGE no no yes   no no   no   no no no no
Function REGEXP in SELECT yes yes no no no no no no   no no no no
Function REPLICATE no no no   no no no yes   no no no yes
Function REVERSE yes yes no   no no no yes   yes no no yes
Function ROOT no no yes   no no   no   no no no no
Function ROUND(1 arg) yes yes yes no yes no yes no   yes yes no no
Function RPAD yes yes yes no no no no no   yes yes no no
Function SEC_TO_TIME yes yes no no no no no no   no no no no
Function SINH no no no   yes no   no   yes no no no
Function STR no no no   no no no yes   no no no yes
Function STRCMP yes yes no no no no no no   no no no no
Function STUFF no no no   no no no yes   no no no yes
Function SUBSTRB no no no   no no   no   error no no no
Function SUBSTRING_INDEX yes yes no no no no no no   no no no no
Function SYSDATE yes yes no no no no no no   no no no no
Function TANH no no no   error no   no   error no no no
Function TIME_TO_SEC yes yes no no no no no no   no no no no
Function TO_DAYS yes yes no no no no no no   no no no no
Function TRANSLATE no no no no yes error no no   yes error no no
Function TRIM; Many char extension error error no no no no no no   no yes no no
Function TRIM; Substring extension yes yes no no no no no no   no error no no
Function TRUNC no no yes   yes yes   no   yes no no no
Function UID no no no   no no   no   yes no no no
Function UNIX_TIMESTAMP yes yes no no no no no no   no no no no
Function USERENV no no no   no no   no   no no no no
Function VERSION yes yes no no no no no no   no yes no no
Function WEEKDAY yes yes no no no no no no   no no no no
Function | (bitwise or) yes yes no no no no no yes   no no no yes
Function OR as '||' yes yes no no no no no no   no no no no
WHERE子句中的函数
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Function BETWEEN yes yes yes yes yes yes yes yes no yes yes yes yes
Function = ALL no no yes yes yes yes yes yes no yes yes yes yes
Function = ANY no no yes yes yes yes yes yes no yes yes yes yes
Function = SOME no no yes yes yes yes yes yes no yes no yes yes
Function EXISTS no no yes yes yes yes yes yes no yes yes yes yes
Function IN on numbers yes yes yes yes yes yes yes yes no yes yes yes yes
Function LIKE yes yes yes yes yes yes yes yes yes yes yes yes yes
Function LIKE ESCAPE yes yes yes no yes yes yes yes no yes no yes yes
Function MATCH no no no no no no yes no no no no no no
Function MATCH UNIQUE no no no no no no no no no no no no no
Function MATCHES no no no   no no   no no no no no no
Function NOT BETWEEN yes yes yes no yes yes yes yes no yes yes yes yes
Function NOT EXISTS no no yes yes yes yes yes yes no yes yes yes yes
Function NOT LIKE yes yes yes yes yes yes yes yes yes yes yes yes yes
Function NOT UNIQUE no no no no no no no no no no no no no
Function UNIQUE no no no no no no no no no no no no no
ANSI SQL 92 组函数
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Group function AVG yes yes yes yes yes yes yes yes   yes yes yes yes
Group function COUNT (*) yes yes yes yes yes yes yes yes   yes yes yes yes
Group function COUNT column name yes yes yes yes yes yes no yes   yes yes yes yes
Group function COUNT(DISTINCT expr) yes no yes no yes yes yes yes   yes no yes yes
Group function MAX on numbers yes yes yes yes yes yes yes yes   yes yes yes yes
Group function MAX on strings yes yes yes yes yes yes yes yes   yes yes yes yes
Group function MIN on numbers yes yes yes yes yes yes yes yes   yes yes yes yes
Group function MIN on strings yes yes yes yes yes yes yes yes   yes yes yes yes
Group function SUM yes yes yes yes yes yes yes yes   yes yes yes yes
其他组函数
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Group function BIT_AND yes yes no no no no no no   no no no no
Group function BIT_OR yes yes no no no no no no   no no no no
Group function COUNT(DISTINCT expr,expr,...) yes no           no   no no    
Group function STD yes yes no no no no no no   no no no no
Group function STDDEV yes yes no no yes yes no no   yes no no no
Group function VARIANCE no no no no yes yes no no   yes no no no
函数使用
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
update of column= -column yes yes yes yes yes yes yes yes no yes no yes yes
column LIKE column yes yes yes no yes no yes yes yes yes yes yes yes
LIKE on numbers yes yes no no no no yes yes no yes no no no
Calculate 1--1 yes yes no yes yes no no no no no yes no no
Is concat('a',NULL) = NULL yes yes no no yes no no yes   error no yes error
Is 1+NULL = NULL yes yes no yes yes no no yes   yes no yes yes
排序和分组
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
number of columns in group by +64 +64     16     +64   +64 +64    
number of columns in order by +64 +64     16     +64 +64 +64 +64    
Group by yes yes yes yes yes yes yes yes no yes yes yes yes
Group by alias yes yes no   no no   no no no yes yes no
group on column with null values yes yes yes   yes yes   yes no yes yes yes yes
Group by position yes yes yes no no no no no no no yes no no
Having yes yes yes yes yes yes yes yes no yes no yes yes
Having on alias yes yes no no no no no no no no no no no
Having with group function yes yes yes yes yes yes yes yes no yes yes yes yes
Order by yes yes yes yes yes yes yes yes yes yes yes yes yes
Order by alias yes yes yes no yes yes   yes   yes yes yes yes
Order by function yes no           yes no yes yes    
Order by position yes yes yes yes yes yes yes yes no yes yes yes yes
Order by DESC is remembered no no           no no no no    
连接方法
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
cross join (same as from a,b) yes yes no no no no no yes no no yes yes no
full outer join no no no no no yes no yes no no no yes no
tables in join 31 32 +64 32 16 +64 63 +64 +64 +64 +64 +64 16
left outer join yes yes no yes no yes no yes no no no yes no
left outer join using yes yes no no no no no no no no no no no
DELETE FROM table1,table2... no no no no no no no no no no no no no
Update with many tables no no no yes no no no no no no no no no
natural join no no no no no no no no no no no no no
natural left outer join yes yes no no no no no no no no no no no
left outer join odbc style yes yes yes yes yes yes no yes no no no yes yes
recursive subqueries     10 49 223 22 49 40   254 25 14 15
right outer join no no no yes no yes no yes no no no yes no
Update with sub select no no yes no no yes no yes no yes no yes yes
ANSI SQL simple joins yes yes yes yes yes yes yes yes yes yes yes yes yes
subqueries no no yes yes yes yes yes yes no yes yes yes yes
字符串处理
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
case insensitive compare yes yes no yes no no no yes no no no no no
String functions on date columns yes yes no no yes no no no       no no
Double '' as ' in strings yes yes no yes yes yes yes yes no yes yes yes yes
ignore end space in compare yes yes yes   yes yes   yes no yes yes yes yes
insert empty string yes yes yes yes yes yes no yes yes no yes yes yes
Multiple line strings yes yes no no no no no no no no yes no no
Allows ' and " as string markers yes yes yes no no no yes no no no no no yes
Remembers end space in char() no no no error no no error no yes no no no no
Remembers end space in varchar() no no no   no yes   yes no yes yes yes no
return string size from function 1048576 1048576       4000           254  
Select constants yes yes yes yes yes yes yes yes no yes yes yes yes
constant string size in SELECT 1048565 1048565 256 16379 4023 4000 32753 16777080   4000 16373 252 65526
constant string size in where 1048540 1048540 32452 16368 4023 4000 nonstandard 8000 131035 4000 8104 254 255
引用
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
" as identifier quote (ANSI SQL) error error                      
[] as identifier quote no no                      
` as identifier quote yes no                      
命名限制
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Alter table rename table yes yes no   no no   no no no no no no
different namespace for index yes yes no no no no yes yes yes no no no yes
column name length 64 64 18 64 +512 18 31 128   30 227 254 30
index name length 64 64 18 64 +512 18 32 128 35 30 +512 254 30
select alias name length +512 +512 18 255 +512 18   128   30 +512 254 30
table alias name length +512 +512 18 253 +512 18 +512 128 34 30 +512 +512 30
table name length 64 64 18 64 +512 18 32 128 35 30 +512 254 30
case independent table names no no     no     yes no yes yes    
索引限制
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
create index yes yes yes yes yes yes yes yes yes yes yes yes yes
drop index with 'ON' with 'ON' yes with 'ON' yes yes yes with 'table.index' with 'FROM' yes yes yes with 'table.index'
index in create table yes yes no no no no no no no no no no no
index on column part (extension) yes yes no no no no no no no no no no no
max index 32 16 +64 33 +64 +64 +64 +64 +64 +64 +64 +64 +64
index length 500 256 255 2000 254 255 2710 900 +8192 749 8104 +8192 600
max index part length 255 255 255 255 254 254 2710 900 +8192 749 8104 65485 255
index parts 16 16 15 10 15 15 +64 15 9 31 7 63 15
index varchar part length 255 255 254   254 251   900   749 8100 65485 255
unique indexes 32 16 +64 32 +64 +64 +64 +64 +64 +64 +64 +64 +64
Tables without primary key yes yes yes yes yes yes yes yes yes yes yes yes yes
null in index yes no yes no yes yes no yes no yes yes yes yes
null in unique yes no yes   yes no   yes   yes yes no yes
primary key in create table yes yes yes no yes yes no yes no yes yes yes yes
unique in create table yes yes yes no yes yes no yes no yes yes yes yes
unique null in create yes no no   yes no   no   yes yes no no
类型限制
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
atomic updates no no no no no yes no yes no no no yes yes
atomic_updates_with_rollback           yes   yes       yes yes
binary items (0x41) yes yes yes yes yes no no yes no no no yes yes
char are space filled no no no   no no   no   no no no no
Supports YY-MM-DD 2000 compilant dates yes yes no yes no no no no no no yes yes no
Supports 0000-00-00 dates yes yes no no no no no no no no no yes no
mixing of integer and float in expression yes yes yes yes yes yes yes yes   yes yes yes yes
max char() size 255 255 256 255 4000 254 7930634 8000 131038 2000 8104 65489 255
max text or blob size 1048543 1048543   255     4095 +8000000     8104   65504
max varchar() size 255 255 255 255 4000 4000   8000   4000 8100 65489 255
表达式限制
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
big expressions 10 10 1 1 1 1 1 3   2 1 1 10
OR and AND in WHERE 85660 85660 1204 78 252 418 628 10922 72 2464 7 5886 250
simple expressions 1381 1392 16372 8190 1723 9820 4092 5704   22663 8187 126 1051
stacked expressions 1381 1392 47 14 1022 1363 131 164   4829 3331 48 97
SELECT with LIMIT yes yes           no yes no yes    
SELECT with LIMIT #,# yes yes           no no no yes    
注释
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
# as comment yes yes no no no no no no yes no no no no
-- as comment yes no yes no no yes yes yes no yes no yes yes
/* */ as comment yes yes yes no no no yes yes no yes yes no yes
// as comment no no                      
其他特性
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
Alter table add column yes yes yes   yes yes   yes no yes yes yes yes
Alter table add many columns yes yes     without add     without add no no no    
Alter table alter column yes yes     no     no no no no    
Alter table change column yes yes no   no no   no no no no no no
Alter table drop column yes yes yes   yes no   no no no no yes yes
Alter table modify column yes yes yes   yes no   no no yes no no no
Automatic rowid _rowid                        
Column alias yes yes yes yes yes yes no yes no yes yes yes yes
Compute no no no   no no no yes no no no no yes
default value for column yes yes no no yes yes no yes no no yes no no
default value function for column no no           no no no no    
create table if not exists yes no           no no no no    
create table from select yes no           no no no no    
drop table if exists yes yes           no no no no    
allows end ';' yes yes     no     yes no no yes    
except no no no no yes yes no no no no yes yes no
except all no no no no yes yes no no no no no yes no
insert INTO ... SELECT ... yes yes yes yes yes yes yes no no yes no yes yes
INSERT with set syntax yes yes     yes     no no no no    
intersect no no no no yes yes no no no yes yes yes no
intersect all no no no no yes yes no no no no no yes no
lock table yes yes yes no yes yes yes no no yes yes no no
minus no no no   no no   yes no yes no no yes
many tables to drop table yes yes no no no no no yes no no yes no yes
Value lists in INSERT yes yes     no     no no no no    
Correct rounding when storing float values yes yes     yes     yes   yes yes    
Type for row id auto_increment auto_increment           no no rowid oid    
SELECT without FROM yes yes no no no no no yes no no yes yes yes
Table alias yes yes yes yes no yes no yes yes no yes yes no
Select table_name.* yes yes yes yes yes yes no yes no yes yes yes yes
temporary tables yes no           no no no yes    
transactions no no error yes yes yes yes yes no yes yes yes error
union no no yes yes yes yes no yes no yes yes yes yes
union all no no yes yes yes yes no yes no yes yes yes yes
views no no yes no yes yes yes yes no yes yes yes yes
其他限制
  MySQL MySQL Informix Access Adabas IBM EMPRESS Microsoft mSQL Oracle PostgreSQL SOLID Sybase
同时连接数 99 101 269 64 1 125 10 1000 200 40 32 248 25
逻辑操作值(1=1) 1 1 不支持 -1 不支持 不支持 不支持 不支持 不支持 不支持 1 不支持 不支持
表的列数 3398 2364 994 255 254 500 2419 1024 75 1000 1248 1000 250
最大记录长度(不含大对象) 65534 65534 32356 2000 3991 4005 62696 8036 19125 255000 7949 2634 1960
使用空值的记录长度(不含大对象) 65502 65501 32356 2000 3991 3989 62702 8036 19125 255000 7949 2634 1941
查询语句长度 1048574 1048574 32766 16402 8202 19662 16777216 16777216 131069 8094203 16382 65520 65535


这些信息是由TCX提供的,所以用户可以得到不同数据库的真实情况(而不是销售商提供的信息)。 希望以上的信息能够使你容易地找到具有你需要的功能而你有能够放心使用的这么一个数据库服务器。

TCX将继续开发crash-me并把更多的数据库服务器加入到上表中。我们也对新的测试很有兴趣,如果 你有任何建议,请发电子邮件给我们(或把代码用信件寄给我们)。
我们会继续努力使MySQL测试测试帮助用户了解数据库在 做不同的典型的工作时的运行速度。
==============================================

你可以直接在 MySQL邮件列表中询问关于crash-me和测试的问题。