-
1 # 電腦使用技巧
-
2 # 點點小萱
MySQL
MySQL是一個關係型資料庫管理系統。因為MySQL是開放原始碼的,所以一般的中小型網站的開發都選擇將MySQL作為網站資料庫,這樣可以大大降低總體擁有的成本。
那麼下面來看看,MySQL中,是怎麼判斷資料庫中表或者欄位是否存在的。
查看錶是否存在總共有3種方法:
先進入到要查看錶的某個資料庫
①檢視資料庫所有的表:
SHOW TABLES;
這個會列出所有的資料庫表名。
②根據資料庫名稱查看錶是否存在
SHOW TABLES LIKE "table_name";
SELECT COUNT(*) FROM information_schema.TABLES WHERE table_name = "table_name";
注意:另外我們在建立表的時候,會經常用到這樣的一句sql:
drop table if exists table_name;
查看錶中某個欄位是否存在有3種方法:
①describe命令查看錶的詳細設計
describe table_name;
該語句會列出表中所有的欄位資訊。
②describe命令查詢具體列(欄位)的資訊
describe table_name column;
表中某列的具體資訊。
show columns from database_name.table_name
或者show columns form table_name from database_name
OracleOracle是一個關係資料庫管理系統。Oracle資料庫可移植性好、使用方便、功能強大,使用於各個領域的大、中、小、微機環境,在資料庫領域一直處於領先地位。
查看錶是否存在有2種方法:
①檢視當前登入使用者中的所有表中是否存在該表
select count(*) from user_tables where table_name =upper("table_name");
注意表名區分大小寫,如果引數不限制,那這裡就必須要加上函式。
②查詢某個使用者下的表中是否存在該表
select count(*) from all_tables where owner = UPPER("使用者") and table_name = upper("table_name");
這個語句可以在當前使用者下查詢其他使用者下的表資訊。
查看錶中某個欄位是否存在有2種方法:
①透過獲取表中的欄位來判斷
select * from user_tab_columns where table_name="表名" order by column_name;
會列出該表中所有的欄位資訊。
②直接根據欄位名稱來查詢
select count(*) from user_tab_columns where table_name= "表名" and column_name= "欄位名";
如果存在count的值就是1,如果不存在就是0。
PostgreSqlPostgreSql是一個物件關係型資料庫管理系統。它支援大部分的SQL標準語法,並且支援複雜查詢、外來鍵、觸發器、檢視、事務完整性、多版本併發控制等特性。
查看錶是否存在有2種方法:
①使用pg_class系統表來查詢
select count(*) from pg_class where relname = "table_name";
②
information_schema.tables
來查詢select count(*) from information_schema.tables where table_schema="public" and table_type="BASE TABLE" and table_name="table_name";
查看錶中某個欄位是否存在有2種方法:
①透過獲取表中所有的欄位來判斷
select column_name,data_type,character_maximum_length,numeric_precision,
numeric_scale from information_schema.COLUMNS WHERE table_schema = "public" and table_name = "table_name" GROUP BY column_name,data_type,character_maximum_length,numeric_precision,numeric_scale;
會列出該表中所有的欄位資訊。
②直接根據欄位名稱來查詢
select count(*) from information_schema.columns WHERE table_schema = "table_schema" and table_name = "table_name" and column_name = "column_name";
如果存在count的值就是1,如果不存在就是0。
回覆列表
這幾個資料庫呢,SQL語句都是通用的,其實,判斷表或者欄位是否存在,最簡單的方法就是遍歷庫中的表或者遍歷表中的欄位。遍歷表使用show tables 檢視所有的表,然後挨個比對字串即可。遍歷欄位呢,使用desc 某表表名,然後檢視所有的欄位及其型別,對比字串也就可以了。