回覆列表
  • 1 # 電腦使用技巧

    這幾個資料庫呢,SQL語句都是通用的,其實,判斷表或者欄位是否存在,最簡單的方法就是遍歷庫中的表或者遍歷表中的欄位。遍歷表使用show tables 檢視所有的表,然後挨個比對字串即可。遍歷欄位呢,使用desc 某表表名,然後檢視所有的欄位及其型別,對比字串也就可以了。

  • 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

    Oracle

    Oracle是一個關係資料庫管理系統。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。

    PostgreSql

    PostgreSql是一個物件關係型資料庫管理系統。它支援大部分的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。

  • 中秋節和大豐收的關聯?
  • 龍蝦池水老綠,用石灰潑灑行嗎?