数据库内置视图或者表结构在开发中的使用场景

1.查询用户的所有表

2.查询表关系,外键,主键,约束条件

=========================================================

oracle数据库:

String reSql = "SELECT A.TABLE_NAME AS P_TABLE_NAME,B.COLUMN_NAME AS P_COLUMN_NAME,C.TABLE_NAME AS F_TABLE_NAME,"+
   "D.COLUMN_NAME AS F_COLUMN_NAME FROM USER_CONSTRAINTS A LEFT JOIN USER_CONS_COLUMNS B ON A.CONSTRAINT_NAME=B.CONSTRAINT_NAME "+
   "LEFT JOIN USER_CONSTRAINTS C ON C.R_CONSTRAINT_NAME = A.CONSTRAINT_NAME LEFT JOIN USER_CONS_COLUMNS D ON C.CONSTRAINT_NAME= "+
   "D.CONSTRAINT_NAME WHERE A.CONSTRAINT_TYPE=‘P‘ AND NVL(C.TABLE_NAME,‘ ‘)!=‘ ‘ AND NVL(D.COLUMN_NAME,‘ ‘)!=‘ ‘ ORDER BY A.TABLE_NAME";

String rsSql = "SELECT COL.COLUMN_NAME FROM USER_CONSTRAINTS CON,USER_CONS_COLUMNS COL "
   + "WHERE CON.CONSTRAINT_NAME = COL.CONSTRAINT_NAME AND CON.CONSTRAINT_TYPE=‘P‘ AND COL.TABLE_NAME=‘"
   + tableName + "‘ ORDER BY COLUMN_NAME";

String sql = "(select TABLE_NAME AS name,‘U‘ as xtype from ALL_TABLES where OWNER IN (‘DBO‘,‘VHBIYF‘) "+
  "union all "+
  "select VIEW_NAME AS name,‘V‘ as xtype from all_views where owner IN (‘DBO‘,‘VHBIYF‘) ) result";
  return sql;

=========================================================

sqlserver:

String rsSql = "SELECT C.NAME AS COLUMN_NAME FROM SYSINDEXES I JOIN SYSINDEXKEYS K ON I.ID=K.ID AND I.INDID=K.INDID "
    + "JOIN SYSOBJECTS O ON I.ID = O.ID JOIN SYSCOLUMNS C ON I.ID=C.ID AND K.COLID=C.COLID "
    + "WHERE O.XTYPE=‘U‘ AND EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE=‘PK‘ AND NAME=I.NAME) "
    + "AND O.NAME=‘"+tableName+"‘ ORDER BY O.NAME,K.COLID";

String reSql="select oMain.name  AS  P_TABLE_NAME,MainCol.name AS P_COLUMN_NAME,oSub.name  AS  F_TABLE_NAME,SubCol.name AS F_COLUMN_NAME "+
    "from sys.foreign_keys fk JOIN sys.all_objects oSub ON (fk.parent_object_id = oSub.object_id) JOIN sys.all_objects oMain "+ 
    "ON (fk.referenced_object_id = oMain.object_id) JOIN sys.foreign_key_columns fkCols ON (fk.object_id = fkCols.constraint_object_id) "+
    "JOIN sys.columns SubCol ON (oSub.object_id = SubCol.object_id AND fkCols.parent_column_id = SubCol.column_id) JOIN sys.columns MainCol "+ 
    "ON (oMain.object_id = MainCol.object_id AND fkCols.referenced_column_id = MainCol.column_id)";

=========================================================

时间: 2024-11-10 10:57:09

数据库内置视图或者表结构在开发中的使用场景的相关文章

数据库内置表常见SQL记录

学习数据库内置的一些视图或者表来查询数据库的具体信息. 比如 用户,表空间,表,字段,主外键,索引,数据文件,日志文件,控制文件 耗时SQL 客户端连接 死锁的SQL等 通过这些内置数据了解oracle,进而对其优化. ========================================================== SELECT * FROM user_tables --查询表 --all_tables dba_tables SELECT * FROM user_tab_co

SQL server数据库内置账户SA登录设置

SQL server数据库内置账户SA登录不了 设置SQL Server数据库给sa设置密码的时候  提示18456 解决步骤: 第二步:右击sa,选择属性: 第三步:点击状态选项卡:勾选授予和启用.然后确定. 第四步:右击实例名称(就是下图画红线的部分),选择属性 第五步:点安全性,确认选择了SQL SERVER 和Windows身份验证模式. 最后验证sa用户登录  成功~

PostgreSQL查看表、表索引、视图、表结构以及参数设置

-- 表索引select * from pg_indexes where tablename='person_wechat_label';select * from pg_statio_all_indexes where relname='person_wechat_label';-- 所有表SELECT * FROM pg_tables;-- 所有视图SELECT * FROM pg_views;-- 表结构SELECT a.attnum,a.attname AS field,t.typnam

数据库中快速备份一个表的数据,或者只备份表结构

将表结构和数据一块块备份 select * into 备份表名称 from 源表名称 只备份表结构 select * into 备份表名称 from 源表名称 where 1 < 1  (1<1 是指错误条件 查不到数据往备份表里添加自然就只备份表结构了)

反向读取Mysql数据库表结构到PowerDesigner中

转自:https://www.cnblogs.com/soinve/p/9776306.html 使用PowerDesigner挺长时间了,只是一些简单的表结构设计,因需要对当前数据库进行再设计,需要看一下数据库中所有的表,及表之间的关系,并重新修改表结构,因此需求就是怎么把数据库中的表结构反向生成到PowerDesigner中,以下是对该过程的实践,当前也搜索了其他同学的方法,便于后期使用即其他同学需要,整理该文章. 一.首先确认一下版本和环境 Mysql使用的版本(我用的是5.1) Powe

oracle常用数据库内置函数

函数 返回值 样例 显示 CEIL(n) 大于或等于数值n的最小整数 SELECT CEIL(10.6) FROM TABLE_NAME; 11 FLOOR(n) 小于等于数值n的最大整数 SELECT FLOOR (10.6) FROM TABLE_NAME; 10 MOD(m,n) m除以n的余数,若n=0,则返回m SELECT MOD (7,5) FROM TABLE_NAME l; 2 POWER(m,n) m的n次方 SELECT POWER (3,2) FROM TABLE_NAM

数据库内置审计功能

作为一名dba,有时候,总会遇到数据库某个库,某个表,某个字段异常,或者数据被莫名的删除了,这个时候大家各种推断是不是bug了啊,是不是被黑了啊...这个时候一个审计功能就凸显出来了. mariadb数据库对审计插件(server_audit.so)支持比较良好,今天我们进行一个简单安装和测试 安装方法也很简单:INSTALL SONAME "server_audit.so" 这样就安装完成了,我们可以看看对应的参数变量 这些参数和变量都是可以动态设置的,具体参数说明,见官网:http

Oracle数据库内置函数

--ORACLE内置函数:单行函数,集合函数--1.绝对值,取余,判断数据正负函数,SELECT ABS(100),ABS(-100),ABS('100') FROM DUAL;SELECT MOD(5,2) MOD(8/3,5),MOD('10',5),MOD(-10,6),MOD(1,0) FROM DUAL;SELECT SIGN('9'),SIGN(-9),SIGN(0.00),SIGN(-2*'9') FROM DUAL; --三角函数SELECT COS(3.1415926),COS

mysql 复制表结构 / 从结果中导入数据到新表

这只会复制结构: mysql> create table a like mysql1; Query OK, 0 rows affected (0.03 sec) mysql> desc a; +----------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+----------+------+-----+---------+----