日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于oracle sql语句查询时表名和字段名要加双引号的问题

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于oracle sql语句查询时表名和字段名要加双引号的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
oracle初學者一般會遇到這個問題。
用navicat可視化創建了表,可是就是不能查到! 后來發現②語句可以查詢到

①select * from user;

但是,我們如果給user加上雙引號就可以查到了!

②select * from "user";

?

難道oracle跟mysql等不同,查詢時候一定要加雙引號?那這樣不是很麻煩!于是經過查找資料得出如下結論:

1、oracle表和字段是有大小寫的區別。oracle默認是大寫,如果我們用雙引號括起來的就區分大小寫,如果沒有,系統會自動轉成大寫。

2、我們在使用navicat使用可視化創建數據庫時候,navicat自動給我們加上了“”。這樣我們在創建數據庫時實際的代碼是這樣的:(通過到處sql語句的文件,這樣就不難理解我們為什么找不到表了。)

?

1 2 3 4 5 DROP TABLE "ROOT"."user"; CREATE TABLE "ROOT"."user" ( "userid" NUMBER(2) NOT NULL? ) -------到這里,我想那些總是用可視化來創建表和字段的人該吐槽navicat了。
3、我用sql語句進行創建表和字段呢?
①不加雙引號創建變:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE "ROOT".personal_user_table ( personal_id NUMBER(10) NOT NULL , login_name VARCHAR2(20 BYTE) NOT NULL , login_password VARCHAR2(20 BYTE) NOT NULL , register_time DATE NOT NULL , fullname VARCHAR2(20 BYTE) NOT NULL , sex CHAR(1 BYTE) NULL , id_card CHAR(18 BYTE) NULL , email VARCHAR2(30 BYTE) NULL , tel CHAR(11 BYTE) NULL , address VARCHAR2(64 BYTE) NULL , work_units VARCHAR2(64 BYTE) NULL , monthly_income NUMBER(8,2) NULL , bank_account CHAR(20 BYTE) NULL , credit_rating NUMBER(1) NULL )

結果是查詢正常:

?

②加雙引號,跟我們使用navicat可視化操作的結果一樣:

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE "ROOT"."personal_user_table" ( "personal_id" NUMBER(10) NOT NULL , "login_name" VARCHAR2(20 BYTE) NOT NULL , "login_password" VARCHAR2(20 BYTE) NOT NULL , "register_time" DATE NOT NULL , "fullname" VARCHAR2(20 BYTE) NOT NULL , "sex" CHAR(1 BYTE) NULL , "id_card" CHAR(18 BYTE) NULL , "email" VARCHAR2(30 BYTE) NULL , "tel" CHAR(11 BYTE) NULL , "address" VARCHAR2(64 BYTE) NULL , "work_units" VARCHAR2(64 BYTE) NULL , "monthly_income" NUMBER(8,2) NULL , "bank_account" CHAR(20 BYTE) NULL , "credit_rating" NUMBER(1) NULL )


?

結果如下:

?

因此建議:

1.建議我們的可視化操作者還是養成手寫sql語句的習慣,我們在創建的時候就不要使用了雙引號!這樣我們就可以到達像mysql等一樣不區分大小寫了。

3、比較笨的方法是數據表名字大寫,這樣也可以避免此問題

轉載于:https://www.cnblogs.com/fuchen/p/5680478.html

總結

以上是生活随笔為你收集整理的关于oracle sql语句查询时表名和字段名要加双引号的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。