在C语言中,关键字与保留字表示同一个概念,都是表示C语言提供的特殊识别符号,不能用作变数名。
C语言一共有32个关键字(或称保留字),各关键字及其含义如下:
auto:指定变数的储存型别,是预设值
break:跳出回圈或switch语句
case:定义switch中的case子句
char:定义字元型变数或指标
const:定义常量或引数
continue:在回圈语句中,回到回圈体的开始处重新执行回圈
default:定义switch中的default子句
do:定义do-while语句
double:定义双精度浮点数变数
else:与if连用
enum:定义列举型别
extern:宣告外部变数或函式
float:定义浮点型变数或指标
for:定义for语句
goto:定义goto语句
if:定义if语句或if-else语句
int:定义整型变数或指标
long:定义长整型变数或指标
register:指定变数的储存型别是暂存器变数,Turbo c中用自动变数代替
return:从函式返回
short:定义短整型变数或指标
signed:定义有符号的整型变数或指标
sizeof:获取某种型别的变数或资料所占记忆体的大小,是运算子
static:指定变数的储存型别是静态变数,或指定函式是静态函式
struct:定义结构体型别
switch:定义switch语句
typedef:为资料型别定义别名
union:定义联合体型别
unsigned:定义无符号的整型变数或资料
void:定义空型别变数或空型别指标,或指定函式没有返回值
volatile:变数的值可能在程式的外部被改变
while:定义while或do-while语句
Reserved Words
Oracle SQL Reserved Words
如果不加转移字元是无法用作定义符的,比如说表名,列名,trigger名称等。
KeyWord
Oracle SQL keyword 为非保留字,oracle内部使用, 是可以用作定义符的,但是不推荐,因为可读性差,维护体验差。
不建议过分纠结这个问题,多看官方文件就好了。
V$RESERVED_WORDS
这个视图里面详细介绍了Oracle资料库里面的保留字相关资讯,根据场景不同,限制条件也不同。记住一些常用的即可。
保留字是关键字,关键字不一定是保留字。保留字是指在Oracle的新版本已经弃用,但还是会出现在Oracle的新版本中。
但是这里要提一下的是mysql是支援使用关键字做栏位名的,但是针对保留关键字是必须要加引用。mysql官网提供了三个例子是可以很好的说明这些的。
interval begin、end都是关键字,interval是保留关键字,因此会报错
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...
near 'interval (begin INT, end INT)'
当给interval加上引用''后便可以正确执行该sql语句,也不会报begin、end的错,因为这是mysql允许的,但是不推荐这个用法,谁知道升级之后会不会变成保留字。。。。。。
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
(这个可以略过,,,,,反正不推荐使用关键字做这些事,)还有一种情况——内建函式的名字,官网是这样说的:
Names of built-in functions are permitted as identifiers but may require care to be used as such
mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
找本书 看看 太多了
c语言中的关键字和保留字含义是一样的,共有 32 个保留字或关键字,这些保留字或关键字是不能用来作为c程式中的识别符号的。
由ANSI标准定义的C语言关键字共32个 : auto double int struct break else long switchcase enum register typedef char extern return unionconst float short unsigned continue for signed voiddefault goto sizeof volatile do if while static
Java的关键字对java的编译器有特殊的意义,他们用来表示一种资料型别,或者表示程式的结构等。保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
Java 关键字列表 (依字母排序 共50组):
abstract, assert,boolean, break, byte, case, catch, char, class, continue, default, do, double, else, enum,extends, final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while
Java 保留字列表 (依字母排序 共14组) : Java保留字是指现有Java版本尚未使用 但以后版本可能会作为关键字使用。
byValue, cast, false, future, generic, inner, operator, outer, rest, true, var,goto,const, null
两者其实差不了多少,可以当一个概念理解
保留字: 系统留用(可能永远也不会用, 但是你不能用)。
关键字: 系统规定有特殊意义的词。
关键字, 一定是保留字。
保留字一般是等同于关键字的。
从字面含义上理解,保留字是语言中已经定义过的字,使用者不能再将这些字作为变数名或过程名使用。而关键字则指在语言中有特定含义,成为语法中一部分的那些字。在一些语言中,一些保留字可能并没有应用于当前的语法中,这就成了保留字与关键字的区别。