最近在从Oracle迁移数据到MySQL的过程中,遇到了一些问题,包括关键词。下面这篇文章主要介绍了MySQL 5.7中关键字和保留字的相关信息,非常详细。有需要的朋友可以借鉴一下。让我们一起来看看吧。
前言
MySQL和Oracle的关键词还是有区别的。在Oracle数据库中,我们的数据表中定义了大量的代码字段来表示主键。但是在MySQL中,code是关键字,所以用以前的处理方式有些难以接受。
我们来看看MySQL中的关键词和保留字。
什么是关键字和保留字
关键字是指在SQL中有意义的单词。有些关键字(如SELECT、DELETE或BIGINT)是保留的,需要特殊处理才能用作标识符,如表名和列名。这也适用于内置函数的名称。
如何使用关键字和保留字
允许非保留关键字作为不带引号的标识符。如果要将保留字用作标识符,必须使用引号。
比如BEGIN和END是关键字,但不是保留字,所以作为标识符的时候不需要引号。INTERVAL是保留关键字,必须用引号括起来才能用作标识符。
关系型数据库
mysql用hoegh
数据库已更改
关系型数据库
mysql创建表间隔(begin INT,end INT);
错误1064 (42000):
关系型数据库
mysql创建表` interval` (begin INT,end INT);
查询正常,0行受影响(0.42秒)
关系型数据库
mysql显示创建表‘interval ’;
- -
|表格|创建表格
- -
| interval |创建表` interval `(
` begin int(11)默认为NULL,
` end int(11)默认为空
)ENGINE=InnoDB DEFAULT CHARSET=latin1 |
- -
集合中的1行(0.00秒)
关系型数据库
我们看到第一条语句中的表名使用了保留字区间,执行失败;
第二条语句引用了interval,并成功执行。
这里需要注意的是,引号必须是后引号,不能是单引号。否则,将会报告如下错误:
关系型数据库
mysql删除表“interval ”;-使用反引号。
查询正常,0行受影响(0.11秒)
关系型数据库
mysql创建表‘interval’(begin INT,end INT);-使用单引号并报告错误。
错误1064 (42000):
关系型数据库
有一个例外
如果标识符在限定名(数据库名)的句点之后,即使保留的关键字也不需要引号。
让我们以hoegh数据库为例。如果表名是hoegh.interval,就不需要用保留字interval来引号。
关系型数据库
mysql创建表hoegh.interval (begin INT,end INT);
查询正常,0行受影响(0.19秒)
关系型数据库
MySQL show create table hoe GH . interval;
- -
|表格|创建表格
- -
| interval |创建表` interval `(
` begin int(11)默认为NULL,
` end int(11)默认为空
)ENGINE=InnoDB DEFAULT CHARSET=latin1 |
- -
集合中的1行(0.00秒)
关系型数据库
关于使用内置函数名称
允许将内置函数的名称用作标识符,但最好谨慎使用。例如,COUNT作为列名是合法的。但是,默认情况下,函数调用中函数名和后面的(.这种限制使解析器能够区分名称是在函数调用中使用还是在非函数上下文中使用。
附录
在某些时候,你可能需要升级到更高的版本,所以最好检查一下未来的保留字。您可以在涵盖MySQL更高版本的手册中找到这些内容。对于表中的大多数保留字,在标准SQL中禁止作为列或表(例如,组)的名称。有些保留字是因为MySQL需要它们,使用了一个yacc解析器。
以下列出三张表格:
第一个表10.2显示了MySQL 5.7中的关键字和保留字。保留的关键字标记为(r)。此外,_FILENAME是保留的。
第二个表格10.3显示MySQL 5.7相比5.6版本新增的保留字。
第三个表格10.4显示MySQL 5.7相比5.6版本删除的保留字。
Table 10.2 Keywords and Reserved Words in MySQL 5.7
可访问(R)
账户[a]
行为
添加(R)
在.之后
反对
总计
算法
所有(R)
改变
总是[b]
分析
分析(R)
和(R)
任何的
AS(R)
ASC(R)
美国信息交换标准代码
敏感的
在(某时间或时刻);在(学习或工作地点);在(某处)
自动扩展_大小
自动递增
AVG
AVG _行_长度
支持
之前(R)
开始
在(R)之间
比金特
二进制
BINLOG
少量
斑点(R)
街区
布尔
布尔型
两者(R)
BTREE
作者(R)
字节
隐藏物
呼叫(R)
级联
级联的
案例(R)
目录名称
链条
变化(R)
改变的
频道[c]
字符(R)
字符(R)
字符集
检查(R)
校验和
零
类别_来源
客户
关闭
联合
密码
校对(R)
校对
列(R)
列
列格式
列名
评论
犯罪
坚定的
小型的,紧凑的
完成
压缩的
压缩
同时发生的
条件(R)
关系
一致的
约束(R)
约束_目录
约束名称
约束模式
包含
语境
继续(R)
转换(R)
中央处理器
创建(R)
十字符号
立方
目前的
当前日期(R)
当前时间
当前时间戳(R)
当前用户
光标(右)
光标名称
数据
数据库
数据库(R)
数据文件
日期
日期时间
天
日小时
日微秒(R)
日分钟
日秒(R)
重新分配
决定草案
十进制
宣布(R)
默认(R)
默认身份验证
定义者
延迟(R)
延迟_键_写
删除(R)
DESC
描述(R)
DES_KEY_FILE
决定性的
诊断学
目录
使残废
抛弃
唱片
独特(R)
区分线
DIV(R)
防御命令(国防令)
双精度
下降(R)
双重(R)
转储文件
复制
动态的
每个(R)
其他(R)
埃尔塞夫
使能够
封闭式(R)
加密[e]
结束
结束
发动机
发动机
枚举
错误
错误
逃跑
逸出(R)
事件
事件
每个
交换
执行
存在(R)
出口(右)
膨胀
期满
解释(R)
出口
延长
范围大小
FALSE(R)
快的
错误
获取(R)
田地(复数);场;域;字段
文件
文件块大小[f]
过滤器[g]
第一
固定的;不变的
浮动
浮动4(右)
浮动第八条(R)
脸红
跟随[h]
FOR(R)
力(R)
外国(R)
格式
找到
从(R)开始
全部
全文(R)
功能
一般
生成[i](R)
几何学
几何收藏
获取(R)
获取格式
全球的
格兰特(R)
同意
组(R)
GROUP_REPLICATION[j]
处理者
混杂
有(R)
帮助
高优先级(R)
宿主
主机
小时
小时微秒(R)
小时分钟
小时秒(R)
辨认
IF(R)
忽略(R)
忽略服务器标识
进口
在(R)中
索引(R)
指数
INFILE(R)
初始大小
内部(R)
输入输出
不敏感
插入(R)
插入方法
安装
实例[k]
INT(R)
INT1(R)
INT2(R)
INT3(R)
INT4(R)
INT8(R)
整数(R)
间隔(R)
变成(R)
祈求者
超正析象管(图片Orthicon)
IO _ AFTER _ GTIDS)
IO _ BEFORE _ GTIDS)
IO _线程
工业程序控制(工业过程控制的缩写)
是(R)
隔离
发行者
迭代(R)
加入(R)
JSON[l]
钥匙(R)
按键(R)
密钥块大小
杀死(R)
语言
最后的
领先(R)
离开(R)
离开
左(右)
较少的
水平
喜欢(R)
极限(R)
线性(R)
线条(R)
线串
目录
负载(R)
当地的
本地时间
本地时间戳(R)
锁定(R)
锁
登录档
日志
长整型
LONGBLOB(R)
长文本(R)
循环(R)
低优先级(R)
掌握
主_自动_位置
主_绑定(R)
主连接重试
主机_延迟
主心跳周期
主控_主机
主日志文件
主日志位置
主密码
主端口
主机重试次数
主服务器标识
主控_SSL
MASTER_SSL_CA
MASTER_SSL_CAPATH
主控_ SSL _证书
主机_ SSL _密码
MASTER_SSL_CRL
MASTER_SSL_CRLPATH
主密钥加密套接字协议层密钥
主机_ SSL _验证_服务器_证书(R)
MASTER _ TLS _版本[m]
主用户
匹配(R)
最大值
每小时最大连接数
每小时最大查询数
最大行数
最大尺寸
MAX_STATEMENT_TIME[n]
每小时最大更新次数
最大用户连接数
中等
中等偏上
中等的
中等文本(R)
记忆
合并
消息_文本
微秒
米德兰特
移动
分钟
分微秒(R)
分钟秒(R)
最小行数
MOD(R)
方式
修改(R)
修改
月
多重字符串
多点
多重多边形
互斥(体)…
MYSQL_ERRNO
名字
名称
国家的
自然(R)
恩查尔
全向信标(非定向信标)
NDBCLUSTER
从不
新的
然后
不
节点组
非阻塞[p]
没有人
非(R)
不_等等
NO_WRITE_TO_BINLOG
零(R)
数字
数字型
NVARCHAR
抵消
旧密码[问]
开(R)
一个
仅仅
打开
优化(R)
OPTIMIZER_COSTS[r](R)
选项(R)
任选地(R)
选择
或(R)
订单(R)
输出(R)
外部(R)
输出文件
物主
打包钥匙
页,面,张,版
句法分析程序
解析EXPRGCOL
部分的
分区(R)
分割
划分
密码
阶段
插件
插件
插件目录
要点
多边形
港口
在[t]之前
精度(R)
准备
保护
上一个
初级(R)
特权
程序(R)
进程列表
轮廓
轮廓
代理人
净化(R)
四分之一
询问
快的
范围(R)
阅读(R)
读数(R)
只读
读_写(R)
实数(R)
重建
恢复
重做文件
重做缓冲区大小
多余的
参考文献(R)
正则表达式(R)
继电器
RELAYLOG
中继日志文件
继电器_日志_位置
中继_线程
释放(R)
再装
去除
重命名(R)
改组
修理
重复(R)
可重复的
替换(R)
复制数据库[u]
REPLICATE_DO_TABLE[v]
复制忽略数据库[w]
复制_忽略_表[x]
复制_重写_数据库[y]
REPLICATE_WILD_DO_TABLE[z]
replication _ WILD _ IGNORE _ TABLE[aa]
复制
要求(R)
重置
再签名
恢复
限制(R)
简历
返回(R)
RETURNED_SQLSTATE
返回
反面的
撤销(R)
右(R)
RLIKE(R)
反转
卷曲
旋转[ab]
例行的
排
行
行计数
行格式
RTREE
保存点
日程安排
模式(R)
模式(R)
架构名称
第二
秒微秒(R)
安全
选择(R)
敏感(R)
分隔符(R)
连续的
可序列化
计算机网络服务器
会议
集合(R)
分享
显示(R)
关机
信号(R)
签名
简单的
奴隶
慢的
SMALLINT(R)
快照
(电源)插座
一些
SONAME
声音
来源
空间(R)
特定(R)
SQL(R)
结构化查询语言异常(R)
SQLSTATE
结构化查询语言警告(R)
SQL _ AFTER _ GTIDS
SQL _ AFTER _ MTS _ GAPS
SQL _ BEFORE _ GTIDS
SQL _大_结果(R)
SQL _缓冲区_结果
SQL_CACHE
SQL _ CALC发现_行(R)
SQL_NO_CACHE
SQL _ SMALL _结果
SQL _线程
SQL_TSI_DAY
SQL_TSI_HOUR
结构化查询语言分钟
SQL _ TSI _月
SQL _ TSI _季度
SQL _ TSI _秒
SQL _ TSI _周
SQL _ TSI _年
SSL(R)
叠放在一起的
开始
开始(R)
开始
统计_自动_重新计算
统计_持久
统计_样本_页面
状态
停止
储存;储备
存储[ac](R)
直线连接(R)
线
子类_来源
科目
子分区
子分区
极好的
暂停
交换
开关
表(R)
桌子
表空间
表_校验和
表名
暂时的
可诱惑的
终止(R)
文本
比
然后(R)
时间
时间戳
TIMESTAMPADD
TIMESTAMPDIFF
TINYBLOB(R)
TINYINT(R)
小文本(R)
至(R)
尾随(R)
交易
触发器(R)
扳机
真(R)
缩短
类型
类型
不受约束的
不明确的
撤消(R)
撤消文件
撤消缓冲区大小
采用双字节对字符进行编码
从计算机上卸载
联合
唯一(R)
未知的
解锁(R)
无符号(R)
直到
更新(R)
提升
用法(R)
使用(R)
用户
用户资源
使用_FRM
使用(R)
UTC_DATE(R)
UTC_TIME(R)
协调世界时。亦称COORDINATED UNIVERSAL TIME时间戳(R)
验证[广告]
价值
值(R)
VARBINARY(R)
VARCHAR(R)
可变字符(R)
变量
变化的(R)
视角
虚拟的
等待
警告信息
周
重量_字符串
何时(R)
其中(R)
WHILE(R)
带(R)
没有[af]
工作
包装材料
写(R)
X509
辅助放大器(辅助放大器的缩写)
XID
可扩展标记语言
异或运算
年
年月(R)
零填充
[a]账户:在5.7.6中增加(不保留)
[b]始终:在5.7.6中添加(不保留)
[c]频道:在5.7.6中添加(不保留)
[d]压缩:在5.7.8中添加(不保留)
[e]加密:在5.7.11中添加(不保留)
[f]文件块大小:在5.7.6中添加(不保留)
[g]过滤器:在5.7.3中添加(不保留)
[h]如下:在5.7.2中添加(不保留)
[我]已生成:在5.7.6中添加(保留)
[j]组_复制:在5.7.6中添加(非保留)
[k]实例:在5.7.11中添加(无保留)
[l]JSON:在5.7.8中添加(不保留)
[m]主控_ TLS _版本:在5.7.10中添加(不保留)
最大语句时间:5。7 .四增加(不保留);在5.7.8中删除
[o]从不:在5.7.4中添加(不保留)
[p]非阻塞:在5.7.6中删除
[问]旧密码:在5.7.5中删除
[r]优化器_成本:在5.7.5中添加(保留)
EXPR GCOL解析:5。7 .6增加(保留);在5.7.8中不再保留
[t]在前:在5.7.2中添加(不保留)
[u]replication _ DO _ DB:在5.7.3中添加(非保留)
[v]replication _ DO _ TABLE:在5.7.3中添加(不保留)
[w]复制_忽略_数据库:在5.7.3中添加(非保留)
[x]replication _ IGNORE _ TABLE:在5.7.3中添加(不保留)
[y]复制_重写_数据库:在5.7.3中添加(非保留)
[z]REPLICATE_WILD_DO_TABLE:在5.7.3中添加(非保留)
[aa]replication _ WILD _ IGNORE _ TABLE:在5.7.3中添加(无保留)
[ab]旋转:在5.7.11中添加(不保留)
[交流]存储:在5.7.6中添加(保留)
[广告]验证:在5.7.5中添加(不保留)
[AE]虚拟:在5.7.6中添加(保留)
[af]无:在5.7.5中添加(无保留)
[ag]XID:在5.7.5中添加(无保留)
Table 10.3 Keywords and Reserved Words Added in MySQL 5.7 Compared to MySQL 5.6
账户
总是
频道
压缩
加密
文件块大小
过滤器
遵照
已生成(R)
组_复制
情况
JSON
主控_ TLS _版本
从不
优化器_成本(R)
EXPRGCOL解析
优于
复制数据库
复制_做_表
复制_忽略_数据库
复制_忽略_表格
复制_重写_数据库
replication _ WILD _ DO _ TABLE
复制_通配符_忽略_表
辐状的
叠放在一起的
存储(R)
确认
虚拟的
没有
XID
Table 10.4 Keywords and Reserved Words Removed in MySQL 5.7 Compared to MySQL 5.6
旧密码
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。