函数
于MYSQL完全兼容约70个函数,部分兼容约 15个函数,
操作符:
绝大部分的操作符都是兼容的,具体包括下面这些:
一元操作符: not, ~
二元操作符: =, !=, <>, >, <, >=, <=, is NULL, is not null, +, -, * ,/, %, and, nor, &, |, ^, <<, >>, like
多元操作符: case when, between
别名可见性
mysql中别名仅group by和order by、having语句中可见。
Unified SQL中的别名具有更加广泛的可见性。比如SELECT list和WHERE 条件中也可以使用别名
详情见语法概述
SELECT 语句
兼容SELECT语句中的这些元素: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT
示例:
SELECT `t1`.`column1`, `t1`.`column2`, COUNT(1) AS `CNT`, SUM(`column4`) AS `CSUM` FROM ( SELECT `column1`, `column2`, `column3` FROM (select 1 as column1, 2 as column2, 'value' as column3 union all select 2 as column1, 3 as column2, 'value' as column3 ) WHERE `column3` = 'value' ) AS `t1` LEFT JOIN ( SELECT `column1`, `column2`, `column4` FROM (select 1 as column1, 2 as column2, 9 as column4 union all select 2 as column1, 3 as column2, cast(100 as int) as column4 ) WHERE `column4` > 10 ) AS `t2` ON (`t1`.`column1` = `t2`.`column1` AND `t1`.`column2` = `t2`.`column2`) GROUP BY `t1`.`column1`, `t1`.`column2` HAVING `CNT` < 100 ORDER BY `column1`
详情见: SELECT 语法
JOIN 语句
兼容 LEFT JOIN \ RIGHT JOIN\INNER JOIN,可以使用USING 和ON 两种形式连接表
多表JOIN的情况可以两两JOIN,在和第三个表JOIN,依此类推。
详情见: SELECT 语法
UNION ALL 语句
详情见: SELECT 语法
标识符
兼容
类型转换
部分兼容, 仅不支持CAST AS TIME
Mysql 支持这些类型的CAST, 除了TIME 不支持外,其余的都支持CAST。 但是BINARY被映射到CHAR,UNSINGED被映射到SIGNED。
DATE | Converts value to DATE. Format: "YYYY-MM-DD" |
---|---|
DATETIME | Converts value to DATETIME. Format: "YYYY-MM-DD HH:MM:SS" |
TIME | Converts value to TIME. Format: "HH:MM:SS" |
CHAR | Converts value to CHAR (a fixed length string) |
SIGNED | Converts value to SIGNED (a signed 64-bit integer) |
UNSIGNED | Converts value to UNSIGNED (an unsigned 64-bit integer) |
BINARY | Converts value to BINARY (a binary string) |