扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
MySQL包含了一些可能在其他SQL数据库找不到的扩充。要注意如果你使用他们,你的代码将不与其他SQL服务器兼容。在一些情况下,你可以编写包括MySQL扩展的代码,但是仍然是可移植的,通过使用/*! ... */形式的注释。在这种情况下,MySQL将进行词法分析并且执行在注释内的代码,好像它是任何其它MySQL语句,但是其他SQL服务器将忽略扩展。例如: 
SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...
如果你在'!'后增加一个版本数字,该语法将仅在MySQL版本是等于或比使用的版本数字新时才执行:
CREATE /*!32302 TEMPORARY */ TABLE (a int);
上面的意思是如果你有3.23.02或更新,那么MySQL将使用TEMPORARY关键词。 
MySQL扩展被列在下面:
MEDIUMINT、SET、ENUM和不同的BLOB和TEXT类型。 
AUTO_INCREMENT、BINARY、UNSIGNED和ZEROFILL。 
BINARY属性或使用BINARY强制符声明列,它导致根据MySQL服务器主机的ASCII顺序进行排序。 
db_name.tbl_name语法访问不同数据库中的表。一些SQL服务器提供同样的功能但是称它们为这User space(用户空间)。MySQL不支持类似在create table ralph.my_table...IN my_tablespace中的表空间。 
LIKE在数字列上被允许。 
SELECT语句里面使用INTO OUTFILE和STRAIGHT_JOIN。见7.12 SELECT句法. 
SELECT语句中SQL_SMALL_RESULT选项。 
EXPLAIN SELECT得到如何联结表的描述。 
CREATE TABLE语句里面使用索引、在字段前缀上的索引和使用INDEX或KEY。见7.7 CREATE TABLE 句法。 
CREATE TABLE使用TEMPORARY或IF NOT EXISTS。 
COUNT(DISTINCT list),这里“list”超过一个元素。 
ALTER TABLE语句里面使用CHANGE col_name、DROP col_name或DROP INDEX。见7.8 ALTER TABLE句法。 
ALTER TABLE里面语句使用IGNORE。 
ALTER TABLE语句中使用多重ADD、ALTER、DROP或CHANGE子句。 
IF EXISTS的DROP TABLE。 
DROP TABLE语句抛弃多个表。 
DELETE语句的LIMIT子句。 
INSERT和REPLACE语句的DELAYED子句。 
INSERT, REPLACE, DELETE和UPDATE语句的LOW_PRIORITY子句。 
LOAD DATA INFILE。在多数情况下,这句法与Oracle的LOAD DATA INFILE兼容。见7.16 LOAD DATA INFILE 句法。 
OPTIMIZE TABLE语句。见7.9 OPTIMIZE TABLE句法。 
SHOW语句。见7.21 SHOW句法(得到表、列等的信息)。 
SET OPTION语句。见7.25 SET OPTION句法。 
GROUP BY部分的被选择的列。这为一些很特定的情况给出更好的性能,而不是一般的查询。见7.4.13 用于GROUP BY子句的函数。 
||和&&意味着逻辑的OR和AND,就像在C程序语言中。在MySQL中,||和OR是同义词,&&和AND是同义词。正因为这个好的句法,MySQL对字符串并置的不支持ANSI SQL ||操作符;相反使用CONCAT(),因为CONCAT()接受任何数量的参数,很容易把||操作符使用变换到MySQL。 
CREATE DATABASE或DROP DATABASE。见7.5 CREATE DATABASE句法。 
%操作符是MOD()一个同义词,即,N % M等价于MOD(N,M)。%支持C程序员并与PostgreSQL兼容。 
=, <>, <=,<, >=,>, <<, >>, <=>, AND, OR或LIKE操作符可以放在SELECT语句的FROM左边用于比较列。例如: mysql> SELECT col1=1 AND col2=2 FROM tbl_name;
LAST_INSERT_ID()函数。见20.4.29 mysql_insert_id()。 
REGEXP和NOT REGEXP。 
CONCAT()或CHAR()有一个参数或超过2个参数。(在MySQL中,这些函数可取任何数量的参数。) 
BIT_COUNT(), CASE, ELT(), FROM_DAYS(), FORMAT(), IF(), PASSWORD(), ENCRYPT(), md5(), ENCODE(), DECODE(), PERIOD_ADD(), PERIOD_DIFF(), TO_DAYS(),或WEEKDAY()函数。 
TRIM()整修子串。ANSI SQL 只支持单个字符的删除。 
GROUP BY函数STD(), BIT_OR()和BIT_AND()。 
REPLACE而不是DELETE+INSERT。见7.15 REPLACE句法。 
FLUSH flush_option语句。 
:=设置变量的可能性: SELECT @a:=SUM(total),@b=COUNT(*),@a/@b AS avg FROM test_table; SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。