oracle触发器对照表 如何判断MySQL、Oracle、PostgreSql数据库中某表或字段是否存在?

[更新]
·
·
分类:互联网
4922 阅读

oracle触发器对照表

如何判断MySQL、Oracle、PostgreSql数据库中某表或字段是否存在?

如何判断MySQL、Oracle、PostgreSql数据库中某表或字段是否存在?

我是点点小萱,这个问题我来回答。
MySQL
MySQL是一个关系型数据库管理系统。因为MySQL是开放源码的,所以一般的中小型网站的开发都选择将MySQL作为网站数据库,这样可以大大降低总体拥有的成本。
那么下面来看看,MySQL中,是怎么判断数据库中表或者字段是否存在的。
查看表是否存在总共有3种方法:
先进入到要查看表的某个数据库
①查看数据库所有的表:
SHOW TABLES;
这个会列出所有的数据库表名。
②根据数据库名称查看表是否存在
SHOW TABLES LIKE table_name
③通过MySql自带的数据库information_schema查看表
SELECT COUNT(*) FROM information_ 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
或者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_
来查找
select count(*) from information_ where table_schemapublic and table_typeBASE TABLE and table_nametable_name
查看表中某个字段是否存在有2种方法:
①通过获取表中所有的字段来判断
select column_name,data_type,character_maximum_length,numeric_precision,
numeric_scale from information_ 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_ WHERE table_schema table_schema and table_name table_name and column_name column_name
如果存在count的值就是1,如果不存在就是0。
以上就是小编的回答了,纯属个人观点,如有不足之处,欢迎点评、建议。
我是点点小萱。

SQL SERVER 2000触发器如何实现一个字段的值随着另一个字段的变化而产生相应的变化,(加,减)?

oracle select * from 表名 where rowid in(select distinct rowid, count(1) over(partition by 可能存在重复值的字段) from 表名 where count(1) over(partition by 可能存在重复值的字段) 1)