当先锋百科网

首页 1 2 3 4 5 6 7
mysql内置查询,如何判断MySQLOraclePostgreSql数据库中某表或字段是否存在?

我是点点小萱,这个问题我来回答。

MySQL

MySQL是一个关系型数据库管理系统。因为MySQL是开放源码的,所以一般的中小型网站的开发都选择将MySQL作为网站数据库,这样可以大大降低总体拥有的成本。

那么下面来看看,MySQL中,是怎么判断数据库中表或者字段是否存在的。

查看表是否存在总共有3种方法:

先进入到要查看表的某个数据库

①查看数据库所有的表:

SHOW TABLES;

这个会列出所有的数据库表名。

②根据数据库名称查看表是否存在

SHOW TABLES LIKE 'table_name';

③通过MySql自带的数据库information_schema查看表

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 comnus"命令来查看数据库中表的列名:

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。

以上就是小编的回答了,纯属个人观点,如有不足之处,欢迎点评、建议。

我是点点小萱。