MySQL
MySQL是一个关系型数据库管理系统。因为MySQL是开放源码的,所以一般的中小型网站的开发都选择将MySQL作为网站数据库,这样可以大大降低总体拥有的成本。
那么下面来看看,MySQL中,是怎么判断数据库中表或者字段是否存在的。
查看表是否存在总共有3种方法:
先进入到要查看表的某个数据库
①查看数据库所有的表:
SHOWTABLES;
这个会列出所有的数据库表名。
②根据数据库名称查看表是否存在
SHOWTABLESLIKE’table_name’;
③通过MySql自带的数据库information_schema查看表
SELECTCOUNT(*)FROMinformation_schema.TABLESWHEREtable_name=’table_name’;
注意:另外大家在创建表的时候,会经常用到这样的一句sql:
droptableifexiststable_name;
如果存在表则先删除该表。
查看表中某个字段是否存在有3种方法:
①describe命令查看表的详细设计
describetable_name;
该语句会列出表中所有的字段信息。
②describe命令查询具体列(字段)的信息
describetable_namecolumn;
表中某列的具体信息。
③通过”showcomnus”命令来查看数据库中表的列名:
showcolumnsfromdatabase_name.table_name
或者showcolumnsformtable_namefromdatabase_name
Oracle
Oracle是一个关系数据库管理系统。Oracle数据库可移植性好、使用方便、功能强大,使用于各个领域的大、中、小、微机环境,在数据库领域一直处于领先地位。
查看表是否存在有2种方法:
①查看当前登录用户中的所有表中是否存在该表
selectcount(*)fromuser_tableswheretable_name=upper(‘table_name’);
注意表名区分大小写,如果参数不限制,那这里就必须要加上函数。
②查询某个用户下的表中是否存在该表
selectcount(*)fromall_tableswhereowner=UPPER(‘用户’)andtable_name=upper(‘table_name’);
这个语句可以在当前用户下查询其他用户下的表信息。
查看表中某个字段是否存在有2种方法:
①通过获取表中的字段来判断
select*fromuser_tab_columnswheretable_name=’表名’orderbycolumn_name;
会列出该表中所有的字段信息。
②直接根据字段名称来查询
selectcount(*)fromuser_tab_columnswheretable_name=’表名’andcolumn_name=’字段名’;
如果存在count的值就是1,如果不存在就是0。
PostgreSql
PostgreSql是一个对象关系型数据库管理系统。它支持大部分的SQL标准语法,并且支持复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等特性。
查看表是否存在有2种方法:
①使用pg_class系统表来查找
selectcount(*)frompg_classwhererelname=’table_name’;
②
information_schema.tables
来查找
selectcount(*)frominformation_schema.tableswheretable_schema=’public’andtable_type=’BASETABLE’andtable_name=’table_name’;
查看表中某个字段是否存在有2种方法:
①通过获取表中所有的字段来判断
selectcolumn_name,data_type,character_maximum_length,numeric_precision,
numeric_scalefrominformation_schema.COLUMNSWHEREtable_schema=’public’andtable_name=’table_name’GROUPBYcolumn_name,data_type,character_maximum_length,numeric_precision,numeric_scale;
会列出该表中所有的字段信息。
②直接根据字段名称来查询
selectcount(*)frominformation_schema.columnsWHEREtable_schema=’table_schema’andtable_name=’table_name’andcolumn_name=’column_name’;
如果存在count的值就是1,如果不存在就是0。
以上就是小编的回答了,纯属个人观点,如有不足之处,欢迎点评、建议。
偶是点点小萱。