MySQL 中的关键字和保留字

今天在执行一个SQL语句的时候,在我本地数据库一直报语法错误,仔细检查了下,发现有个别名使用了groups,之前在博客园写过一篇关于MySQL关键字的文章,我记得保留字里面没有这个GROUPS啊,只有个GROUP,难道保留字的复数也不能直接使用(需要加撇号,一般是键盘上位于数字键1左边那个键)?然后就去MySQL官网上看了下,还真找到了相关说明。GROUPSMySQL 8.0版本新增的保留关键字。

下面是我的SQL语句:

其中name是非保留关键字,不需要加撇号,groups是保留关键字,需要加撇号,否则报语法错误。

SELECT `groups`.name, COUNT(*) num_customers FROM (
	SELECT SUM(a.avail_balance) cust_balance FROM account a 
	INNER JOIN product p ON a.product_cd = p.product_cd 
	WHERE p.product_type_cd = 'ACCOUNT' GROUP BY a.cust_id
) cust_rollup 
INNER JOIN (
	SELECT 'Small Fry' name, 0 low_limit, 4999.99 high_limit
	UNION ALL
	SELECT 'Average Joes' name, 5000 low_limit, 9999.99 high_limit
	UNION ALL
	SELECT 'Heavy Hitters' name, 10000 low_limit, 9999999.99 high_limit
) `groups` ON cust_rollup.cust_balance BETWEEN `groups`.low_limit AND `groups`.high_limit
GROUP BY `groups`.name;

这是我的数据库版本:

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.11    |
+-----------+
1 row in set

mysql> 

明确一个概念:关键字包括非保留关键字和保留关键字。保留关键字又简称为保留字。

可以参考我翻译的官方文档:9.3 关键字和保留字

你可能感兴趣的:(MySQL,mysql,数据库,sql)