不同数据库的差异(MySQL对ANSI SQL的扩充)
2、MySQL对ANSI SQL的扩充
MySQL包含了一些在ANSI SQL中找不到的功能。下面将简要介绍其中的几项。
⑴ 注释
由于使用MySQL专门的SQL语句将导致SQL语句不再与其他的数据库管理系统兼容。因此,MySQL提供了一种注释形式,可以使用"/*!...*/"形式的注释将MySQL专门的代码写
在注释内。这样,在其他的数据库管理系统上运行SQL时将不会被运行,而在MySQL中,注释内的代码也将被MySQL执行。例如以下代码将TEMPORARY关键字放入了注释中。
CREATE /*! TEMPORARY */ TABLE MyTable (coll int);
这时,在MySQL中实际上执行的SQL语句是没有注释的SQL,如下所示。
CREATE TEMPORARY TABLE MyTable (coll int);
而在其他的数据库管理系统中,实际上执行的SQL语句如下所示。
CREATE TABLE MyTable (coll int);
对于MySQL的不同版本,也可以通过注释的方法来实现区分。其方法是在叹号"!"后面写上版本号,这样,注释内的代码将只在该版本号以上的MySQL版本下运行,如以下代码
所示。
CREATE /*!40102 TEMPORARY */ TABLE MyTable (coll int);
上面的SQL语句在MySQL版本大于等于4.1.2下运行时的SQL语句如下所示。
CREATE TEMPORARY TABLE MyTable (coll int);
而在更早期的版本中,实际上执行的SQL语句如下所示。
CREATE TABLE MyTable (coll int);
⑵SELECT语句中的逻辑判断
MySQL提供了在SELECT语句中进行逻辑判断的功能。其逻辑判断操作符主要包括=、<>、<=、<、>=、>、AND、OR和LIKE等。当逻辑成立时,其返回值为1,否则为0。
⑶Limit语句
MySQL提供了一个Limit子句用于选择查询结果中的记录,该子句一般放在SELECT或者DELETE语句的末尾,需要注意的是使用limit子句时,第一条记录的编号为0。