问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中“关键字”和“保留字”是一个概念吗?

发布网友 发布时间:2022-04-13 03:48

我来回答

3个回答

懂视网 时间:2022-04-13 08:10

最近在将数据从Oracle迁移到MySQL的过程中,遇到一些问题,其中就包括关键字。下面这篇文章主要给大家介绍了MySQL 5.7中的关键字与保留字的相关资料,文中介绍的非常详细,需要的朋友可以参考学习,下面来一起看看吧。

前言

MySQL和Oracle的关键字还是不尽相同的,在Oracle数据库中,我们的数据表中定义了大量的code字段用来表示主键,但是在MySQL中code是关键字,使用以前的处理方法就有些“水土不服”。

下面我们来了解一下MySQL中的关键字和保留字。

什么是关键字和保留字

关键字是指在SQL中有意义的字。 某些关键字(例如SELECT,DELETE或BIGINT)是保留的,需要特殊处理才能用作表和列名称等标识符。 这一点对于内置函数的名称也适用。

如何使用关键字和保留字

非保留关键字允许作为标识符,不需要加引号。 如果您要适用保留字作为标识符,就必须适用引号。

举个例子,BEGIN和END是关键字,但不是保留字,因此它们用作标识符不需要引号。 INTERVAL是保留关键字,必须加上引号才能用作标识符。

mysql>
mysql> use hoegh;
Database changed
mysql>
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000):
mysql>
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.42 sec)

mysql>
mysql> show create table `interval`;
+----------+---------------------------------------------------------
| Table | Create Table
+----------+---------------------------------------------------------
| interval | CREATE TABLE `interval` (
 `begin` int(11) DEFAULT NULL,
 `end` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+----------+---------------------------------------------------------
1 row in set (0.00 sec)

mysql>

我们看到,第一条语句中表名使用了保留字interval,执行失败;

第二条语句对interval加了引号,执行成功。

在这里需要注意的是,引号必须是反引号,而非单引号。否则会报错,如下所示:

mysql>
mysql> drop table `interval`;--使用反引号
Query OK, 0 rows affected (0.11 sec)

mysql>
mysql> create table 'interval' (begin INT, end INT);--使用单引号,报错
ERROR 1064 (42000):

mysql>

有一个例外

如果标识符在限定名称(数据库名)的句点之后,即使是保留关键字也不需要引号。

我们以hoegh数据库为例,如果表名写为hoegh.interval就不需要对保留字interval加引号了。

mysql>
mysql> create table hoegh.interval (begin INT, end INT);
Query OK, 0 rows affected (0.19 sec)

mysql>
mysql> show create table hoegh.interval;
+----------+---------------------------------------------------------
| Table | Create Table
+----------+---------------------------------------------------------
| interval | CREATE TABLE `interval` (
 `begin` int(11) DEFAULT NULL,
 `end` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+----------+---------------------------------------------------------
1 row in set (0.00 sec)

mysql>

关于使用内置函数名称

允许内置函数的名称可以作为标识符,但最好谨慎使用。例如,COUNT作为列名称是合法的。但是,默认情况下,在函数名和后面的(之间的函数调用中不允许有空格。这个限制使解析器能够区分名称是用于函数调用还是用在非函数上下文中。

附录

在某些时候,您可能需要升级到更高版本,因此最好查看一下未来的保留字。您可以在涵盖更高版本的MySQL的手册中找到这些。对于表中的大多数保留字,在标准SQL中禁止作为列或表的名称(例如,GROUP)。其中一些保留字,是由于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

ACCESSIBLE (R)ACCOUNT[a]ACTION














































ADD (R)AFTERAGAINST














































AGGREGATEALGORITHMALL (R)














































ALTER (R)ALWAYS[b]ANALYSE














































ANALYZE (R)AND (R)ANY














































AS (R)ASC (R)ASCII














































ASENSITIVE (R)ATAUTOEXTEND_SIZE














































AUTO_INCREMENTAVGAVG_ROW_LENGTH














































BACKUPBEFORE (R)BEGIN














































BETWEEN (R)BIGINT (R)BINARY (R)














































BINLOGBITBLOB (R)














































BLOCKBOOLBOOLEAN














































BOTH (R)BTREEBY (R)














































BYTECACHECALL (R)














































CASCADE (R)CASCADEDCASE (R)














































CATALOG_NAMECHAINCHANGE (R)














































CHANGEDCHANNEL[c]CHAR (R)














































CHARACTER (R)CHARSETCHECK (R)














































CHECKSUMCIPHERCLASS_ORIGIN














































CLIENTCLOSECOALESCE














































CODECOLLATE (R)COLLATION














































COLUMN (R)COLUMNSCOLUMN_FORMAT














































COLUMN_NAMECOMMENTCOMMIT














































COMMITTEDCOMPACTCOMPLETION














































COMPRESSEDCOMPRESSION[d]CONCURRENT














































CONDITION (R)CONNECTIONCONSISTENT














































CONSTRAINT (R)CONSTRAINT_CATALOGCONSTRAINT_NAME














































CONSTRAINT_SCHEMACONTAINSCONTEXT














































CONTINUE (R)CONVERT (R)CPU














































CREATE (R)CROSS (R)CUBE














































CURRENTCURRENT_DATE (R)CURRENT_TIME (R)














































CURRENT_TIMESTAMP (R)CURRENT_USER (R)CURSOR (R)














































CURSOR_NAMEDATADATABASE (R)














































DATABASES (R)DATAFILEDATE














































DATETIMEDAYDAY_HOUR (R)














































DAY_MICROSECOND (R)DAY_MINUTE (R)DAY_SECOND (R)














































DEALLOCATEDEC (R)DECIMAL (R)














































DECLARE (R)DEFAULT (R)DEFAULT_AUTH














































DEFINERDELAYED (R)DELAY_KEY_WRITE














































DELETE (R)DESC (R)DESCRIBE (R)














































DES_KEY_FILEDETERMINISTIC (R)DIAGNOSTICS














































DIRECTORYDISABLEDISCARD














































DISKDISTINCT (R)DISTINCTROW (R)














































p (R)DODOUBLE (R)














































DROP (R)DUAL (R)DUMPFILE














































DUPLICATEDYNAMICEACH (R)














































ELSE (R)ELSEIF (R)ENABLE














































ENCLOSED (R)ENCRYPTION[e]END














































ENDSENGINEENGINES














































ENUMERRORERRORS














































ESCAPEESCAPED (R)EVENT














































EVENTSEVERYEXCHANGE














































EXECUTEEXISTS (R)EXIT (R)














































EXPANSIONEXPIREEXPLAIN (R)














































EXPORTEXTENDEDEXTENT_SIZE














































FALSE (R)FASTFAULTS














































FETCH (R)FIELDSFILE














































FILE_BLOCK_SIZE[f]FILTER[g]FIRST














































FIXEDFLOAT (R)FLOAT4 (R)














































FLOAT8 (R)FLUSHFOLLOWS[h]














































FOR (R)FORCE (R)FOREIGN (R)














































FORMATFOUNDFROM (R)














































FULLFULLTEXT (R)FUNCTION














































GENERALGENERATED[i] (R)GEOMETRY














































GEOMETRYCOLLECTIONGET (R)GET_FORMAT














































GLOBALGRANT (R)GRANTS














































GROUP (R)GROUP_REPLICATION[j]HANDLER














































HASHHAVING (R)HELP














































HIGH_PRIORITY (R)HOSTHOSTS














































HOURHOUR_MICROSECOND (R)HOUR_MINUTE (R)














































HOUR_SECOND (R)IDENTIFIEDIF (R)














































IGNORE (R)IGNORE_SERVER_IDSIMPORT














































IN (R)INDEX (R)INDEXES














































INFILE (R)INITIAL_SIZEINNER (R)














































INOUT (R)INSENSITIVE (R)INSERT (R)














































INSERT_METHODINSTALLINSTANCE[k]














































INT (R)INT1 (R)INT2 (R)














































INT3 (R)INT4 (R)INT8 (R)














































INTEGER (R)INTERVAL (R)INTO (R)














































INVOKERIOIO_AFTER_GTIDS (R)














































IO_BEFORE_GTIDS (R)IO_THREADIPC














































IS (R)ISOLATIONISSUER














































ITERATE (R)JOIN (R)JSON[l]














































KEY (R)KEYS (R)KEY_BLOCK_SIZE














































KILL (R)LANGUAGELAST

热心网友 时间:2022-04-13 05:18

关键字(key words)和保留字(reserved words)都是指C语言里规定不能在代码中用作标志符的字,但是在宏定义中是可以使用关键字的,比如
#define void int
二者只是叫法不同,概念上是统一回事。

热心网友 时间:2022-04-13 06:36

是一个概念。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
y53s手机参数及价格 vivoy53s5g手机参数 五粮液五粮印象精制52度浓香型白酒500ml 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-详细介绍 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-购买最佳价格 五粮液 五粮印象 精制 52度 浓香型白酒 整箱装-详细介绍 五粮液五粮印象珍品-适用对象 白酒推荐-五粮液五粮印象珍品52%vol浓香型白酒500ml单瓶装 五粮液五粮印象精制52度浓香型白酒-适用对象 星座血型生肖分析摩羯座属蛇A型 想自己找工厂做衣服都需要什么,怎么做,麻烦说详细一点? 红尘路上我付出了真情是什么歌 久醉红尘君莫笑、能入心者有几人什么意思 今夜喝醉谁来陪是什么歌 举杯望月低头思念我爱的人是什么歌? 求高品质,无损音质:清清婉儿-久醉红尘情难了.mp3,感激不尽! 久醉红尘情难了mp3下载? 动态乐谱《久醉红尘情难了》低音A调竹笛翻奏 简谱+五线谱 久醉红尘情难了心情说说? 久醉红尘情难了什么电视剧歌曲? 今夜我举杯喝醉红尘琐事心好累是什么歌的歌词 如何知道qq好友的ip 推荐一个好用的IP扫描器(免费就行)和获取qq在线好友ip的软件(FolkOicq) 久醉红尘情难了下联? 下载什么版本的QQ可以看到好友的IP位置 去日本留学有什么用?? 巧用资源管理器查看Win7QQ好友IP地址 日本短期留学有什么好处 十年日本留学经验揭秘:去日本留学有什么好处 三年级钓鱼作文怎么写 怎么做衣服 电子产品折旧年限怎么计算 笔记本电脑是不是固定资产,如果是按多少年提折旧 服装打版的步骤 固定资产的折旧年限是多少,像电子类。家居类,电器类等,最好列的全些。 有知道电子产品的折旧率是怎么算的么? 电子产品怎么提折旧呢 孕妇梦见下大雨,在雨中行走被雨水淋湿了裤子 孕妇梦见下大雨把妹妹淋湿什么意思 孕妇梦见下雨把鸡淋湿了还淋死俩个 男子行纳粹礼入狱 纳粹礼是什么 为什么要禁止 举手礼是二战德国的军礼吗 伊丽莎白二世纳粹礼风波是什么? 行纳粹礼为什么会被打伤? 微信客户端链接怎么打开? 拯救者y520能加ddr5内存条吗? 如何用热恋同城约 怎样破解同城约爱视频? 我在玩同城约会吧,怎么和对方发送不了信息。 R9000p内存是多加1个16g还是多加2个8g?