• ORACLE: 查询(看)表的主键、外键、唯一性约束和索引


    ORACLE: 查询()表的主键、外键、唯一性约束和索引

    1、查找表的所有索引(包括索引名,类型,构成列)
    select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 表名

    2、查找表的主键(包括名称,构成列):
    select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 表名

    3、查找表的唯一性约束(包括名称,构成列):
    select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 表名

    4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
    select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 表名

    外键约束的列名:
    select * from user_cons_columns cl where cl.constraint_name = 外键名称

    引用表的键的列名:
    select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名

    5、查询表的所有列及其属性:
    select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 表名

    [@more@]

    6、Oracle 中查看用户建立的所有触发器 

    SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='TRIGGER';

    SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='TRIGGER' AND OWNER='SCOTT';

    SELECT NAME FROM USER_SOURCE WHERE TYPE='TRIGGER'GROUP BY NAME ;

    1、禁用 table_name 表的所有 trigger

    alter table table_name disable all triggers;

    2、启用 table_name 表的所有 trigger

    alter table table_name enable all triggers;

    3、禁用指定 trigger

    alter trigger trigger_name disable;

    4、启用指定 trigger

    alter trigger trigger_name enable;

     

    Oracle  获取当前日期及日期格式化

      Oracle 获取当前日期及日期格式:
      获取系统日期:  SYSDATE

      格式化日期:  TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS)
                          或 TO_DATE(SYSDATE, 'YY/MM/DD HH24:MI:SS)
      格式化数字:  TO_NUMBER

      注: TO_CHAR  把日期或数字转换为字符串 
      TO_CHAR(number, '格式') 
      TO_CHAR(salary, '$99,999.99') 
      TO_CHAR(date, '格式')

      TO_DATE  把字符串转换为数据库中的日期类型 TO_DATE(char, '格式')

      TO_NUMBER  将字符串转换为数字  TO_NUMBER(char, '格式')
      

      注:格式化串中,yyyy是四位年份,yy是年份后两位,MM是月份,HH是12小时制,HH24是24小时制,MI是分钟,SS是秒。

     

      例如:返回系统日期,2016-09-26 14:23:31
      select sysdate from dual;
      select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

      
      select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual 
    而如果把上式写作:
     select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual
    则会报错,因为小时hh是12进制,14为非法输入,不能匹配。

    输出 $10,000,00 :
    select to_char(1000000,'$99,999,99') from dual;
    输出 RMB10,000,00 : 
    select to_char(1000000,'L99,999,99') from dual;
    输出 1000000.12 :
    select trunc(to_number('1000000.123'),2) from dual;
    select to_number('1000000.123') from dual;

    转换的格式:

    表示 year 的:y 表示年的最后一位 、
                         yy 表示年的最后2位 、 
                         yyy 表示年的最后3位 、
                         yyyy 用4位数表示年

    表示month的: mm 用2位数字表示月 、
                           mon 用简写形式, 比如11月或者nov 、
                           month 用全称, 比如11月或者november

    表示day的:dd  表示当月第几天 、
                      ddd 表示当年第几天 、
                      dy  当周第几天,简写, 比如星期五或者fri 、
                      day 当周第几天,全称, 比如星期五或者friday

    表示hour的:hh   2位数表示小时 12进制 、 
                       hh24 2位数表示小时 24小时

    表示minute的:mi 2位数表示分钟

    表示second的:ss 2位数表示秒 60进制

    表示季度的:q 一位数 表示季度 (1-4)

    另外还有ww 用来表示当年第几周 w用来表示当月第几周。

    24小时制下的时间范围:00:00:00-23:59:59
    12小时制下的时间范围:1:00:00-12:59:59

    数字格式:  9  代表一个数字 
                   0  强制显示0 
                   $  放置一个$符 
                   L  放置一个浮动本地货币符 
                   .  显示小数点 
                   ,  显示千位指示符

    补充:
    当前时间减去7分钟的时间 
    select sysdate,sysdate - interval '7' MINUTE from dual; 
    当前时间减去7小时的时间 
    select sysdate - interval '7' hour from dual; 
    当前时间减去7天的时间 
    select sysdate - interval '7' day from dual; 
    当前时间减去7月的时间 
    select sysdate,sysdate - interval '7' month from dual; 
    当前时间减去7年的时间 
    select sysdate,sysdate - interval '7' year from dual; 
    时间间隔乘以一个数字 
    select sysdate,sysdate - 8*interval '7' hour from dual;

    含义解释: 
      Dual伪列
          Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。
          不同系统可能返回日期的格式不一样。
          返回当前连接的用户:select user from dual;

     

  • 相关阅读:
    jquery 删除cookie失效的解决方法
    SQL Server 抛出自定义异常,由C#程序俘获之并进行相应的处理
    SqlServer中的自增的ID的最后的值:
    Stream/Bytes[]/Image对象相互转化
    TextBox禁止复制粘贴和数字验证,小数验证,汉字验证
    扩展WPF的DataGrid按方向键移动焦点
    WPF 中获取DataGrid 模板列中控件的对像
    IIS设置文件 App_Offline.htm 网站维护
    IIS设置文件 Robots.txt 禁止爬虫
    js中的整除运算
  • 原文地址:https://www.cnblogs.com/jxgzCHforever/p/6718724.html
Copyright © 2020-2023  润新知