在sql數(shù)據(jù)庫中怎么判斷某張表是否已經(jīng)存在了?
數(shù)據(jù)庫存儲的數(shù)據(jù)單位對象是基于數(shù)據(jù)表而來的,如果沒有數(shù)據(jù)表那么項(xiàng)目實(shí)沒有辦法來存儲、更改數(shù)據(jù)庫的。所以一般操作之前都會來判斷數(shù)據(jù)庫中是否存在數(shù)據(jù),但是每個(gè)數(shù)據(jù)庫當(dāng)中檢查的方式也是不一樣的,常用的數(shù)據(jù)庫分別為 Oracle 、mysql、sql server。在數(shù)據(jù)庫使用排版榜是上分別是1 2 3名。
MySQL的判斷方式SHOW TABLES LIKE '%tb_bp_d_case%'; 根據(jù)表名來進(jìn)行表的模糊查詢,在不知道表全名的情況下作為快速匹配類似表的選擇。
select from . where ='dbname' and ='tablename' ;
TABLE_SCHEMA 指定查詢數(shù)據(jù)庫名
TABLE_NAME 指定查詢數(shù)據(jù)庫表名
3. select * from INFORMATION_SCHEMA.TABLES
INFORMATION_SCHEMA這張數(shù)據(jù)表保存了MySQL服務(wù)器所有數(shù)據(jù)庫的信息。如數(shù)據(jù)庫名,數(shù)據(jù)庫的表,表欄的數(shù)據(jù)類型與訪問權(quán)限等。所以可以查看到所有數(shù)據(jù)表內(nèi)容
或者show tables 查看當(dāng)前指定數(shù)據(jù)庫下面的數(shù)據(jù)表
4. 如果表不存在就建立這個(gè)表,那么可以直接用 create table if not exists tablename 這樣的指令來建立,不需要先去查詢表是否存在。
或者可以用PHP的mysql客戶端來連接MySQL 如果報(bào)錯(cuò)就不存在數(shù)據(jù)表
5、查詢數(shù)據(jù)表的表結(jié)構(gòu):show table status like '表名'
SQL server判斷是否存在1、IF EXISTS(SELECT * FROM sysobjects WHERE name='tb_name' ;
通過 exists判斷表是否存在
Oracle判斷select table_name from user_tables where upper (table_name) = upper('query_tb_name')根據(jù)數(shù)據(jù)庫的系統(tǒng)表來檢查是否存在數(shù)據(jù)表。
user_tables是oracle當(dāng)前用戶的系統(tǒng)表,在工作中有時(shí)需要對現(xiàn)有數(shù)據(jù)庫進(jìn)行清理,統(tǒng)計(jì),分析,想要知道庫里有那些表,都有多少數(shù)據(jù),就可以查詢user_tables這個(gè)表。
upper()是將查詢的表名query_tb_name全部轉(zhuǎn)化成大寫,table_name是user_tables的一個(gè)字段
綜上:檢查數(shù)據(jù)表是否存在,可以用對應(yīng)數(shù)據(jù)庫里面專門記錄數(shù)據(jù)表的系統(tǒng)表;顯示數(shù)據(jù)庫的表結(jié)構(gòu) ;通過程序客戶端來連接數(shù)據(jù)表進(jìn)行判斷;基于查詢表的常用命令測試如有感悟,歡迎關(guān)注