Oracle基礎之保留字和關鍵字
在Oracle之中,有分為保留字和關鍵字,所謂關鍵字就是Oracle中有實際意義的,而保留字(比如DESC、ORDER等等)是Oracle中不能隨便使用的,比如不能隨便用來做表的列名,當然關鍵字(比如KEY等等)也是不推薦的,不過使用的話是不會報錯的,而保留字被使用不當的話是會報錯的
然后如何區分保留字和關鍵字?Oracle中可以通過查詢v$reserved_words表得知
查詢Oracle保留字SQL:
SELECT * FROM v$reserved_words m WHERE m.RESERVED='Y'
我測試的是Oracle11.2版本,有100條記錄
Oracle中的關鍵字就多了,Oracle11.2版本有1730條記錄,Oracle關鍵字查詢SQL:
SELECT * FROM v$reserved_words m WHERE m.RESERVED='N';
雖然Oracle官方是不推薦保留字和關鍵字來使用的,比如被用於做表的列名,不過還是會被使用,我就曾遇到過
比如表A有列(KEY(key值),DESC(描述)),這個就是一個很不規范的命名,其中KEY是Oracle的關鍵字,不推薦使用,但是還是不會報錯的,而DESC就是一個保留字了,使用的話是會報錯的
比如我insert一條數據:
insert into A(KEY,DESC) values('TEST_KEY','這是一個key值');
執行之后,是會報錯的,解決方法是針對保留字DESC加上雙引號
insert into A(KEY,"DESC") values('TEST_KEY','這是一個key值');
而在MySQL中也是有保留字和關鍵字的說法,不過解決方法是加上 ` 符號,比如
insert into A(`KEY`,`DESC`) values('TEST_KEY','這是一個key值');