查询所有表、索引、视图信息的SQL语句-Mysql/oracle/sql server的不同实现方式
注:所有查询默认在管理员用户下进行
----------------------------------Mysql中--------------------------------------------
一、查询数据库内所有表的基本信息
在Mysql中information_schema.TABLES表存储了数据表的元数据信息,下面对常用的字段进行介绍:
- TABLE_SCHEMA 记录数据库名;
- TABLE_NAME 记录数据表名;
- ENGINE 存储引擎;
- TABLE_ROWS 关于表的粗略行估计;
- DATA)LENGTH 记录表的大小(单位字节);
- INDEX_LENGTH 记录表的索引的大小;
- ROW_FORMAT 可以查看数据表是否压缩过;
对应sql语句:
全部属性查询
|
1.14日下午,我想抓取数据库所有表的建表语句失败
对应版:
|
注:information_schema.TABLES t 或者 information_schema.`TABLES` 这两种写法都可以。
二、查询数据库内所有表的字段(列)信息
在Mysql中information_schema.COLUMNS表存储了数据表所有列的信息,下面对常用的字段进行介绍:
- TABLE_CATALOG 这一列的值总是DEF;
- TABLE_SCHEMA 记录数据库名;
- TABLE_NAME 记录表名;
- COLUMN_NAME 记录列名;
- COLUMN_DEFAULT 记录列默认值;
- IS_NULLABLE 是否可以取空;
- COLUMN_TYPE 记录列数据类型(详细);
- COLUMN_KEY 记录列索引类型;
- CHARACTER_MAXIMUM_LENGTH CHAR/VARCHAR 最大长度;
对应SQL语句:
全部属性查询:
|
对应版:
|
三、查询数据库内所有表的索引信息
在Mysql中information_schema.STATISTICS表存储了数据表所有索引的信息,下面对常用的字段进行介绍:
- TABLE_CATALOG 包含索引的表所属的目录的名称。 该值始终为def;
- TABLE_SCHEMA 包含索引的表所属的结构(数据库)的名称;
- TABLE_NAME 包含索引的表的名称;
- NON_UNIQUE 如果索引不能重复,则为0;如果可以,则为1;
- INDEX_SCHEMA 索引所属的结构(数据库)的名称;
- INDEX_NAME 索引的名称。 如果是主键,则始终为PRIMARY;
- SEQ_IN_INDEX 索引中的列序列号,以1开头;
- COLUMN_NAME 列名称;
- COLLATION 列在索引中排序方式:A(升序),D(降序),NULL(未排序);
- CARDINALITY 估计索引中唯一值的数量,该值不一定精确;
- SUB_PART 索引前缀。 如果列仅被部分索引,则索引字符的数量,如果整列被索引,则为NULL;
- PACKED 指示密钥的打包方式。 如果不是,则为NULL;
- NULLABLE 如果列可能包含NULL值,则包含YES,否则包含’’;
- INDEX_TYPE 索引类型(BTREE,FULLTEXT,HASH,RTREE);
- COMMENT 有关未在其自己的列中描述的索引的信息,例如在禁用索引时禁用;
- INDEX_COMMENT 索引注释;
对应SQL语句:
全部属性查询:
|
对应:
|
四、查询库名得建立的所有视图信息
在Mysql中information_schema.STATISTICS表存储了数据表所有索引的信息,下面对常用的字段进行介绍:
- TABLE_SCHEMA 视图所属的SCHEMA(数据库)的名称
- TABLE_NAME 表名称
- VIEW_DEFINITION 视图定义语句
- DEFINER 创建触发器的用户的帐户
- IS_UPDATABLE MYSQL在CREATE VIEW时设置一个标志,称为视图可更新性标志。
- CHECK_OPTION CHECK_OPTION属性的值。该值是NONE,CASCADE或LOCAL之一
- SECURITY_TYPE 视图SQL SECURITY特性。该值是DEFINER或INVOKER之一
- COLLATION_CONNECTION 排序规则
- CHARACTER_SET_CLIENT 编码格式
对应SQL语句:
全部属性查询:
|
查询所有视图创建语句:
|
中文对应版:
|
----------------------------------SQL SERVER 中-----------------------------------------
有一张系统视图
sys.object
在数据库内创建的每个用户定义的架构范围内的对象(包括本机编译的标量用户定义函数)都包含一行。
- 在开发文档里有具体描述:https://docs.microsoft.com/zh-cn/sql/relational-databases/system-catalog-views/sys-objects-transact-sql?view=sql-server-ver15
几乎所有对象信息都存在于sys.objects系统视图中,同时又在不同的系统视图中保留了相应的副本,对于函数、视图、 存储过程、触发器等相应的文本对象,把相应的对象的详细资料存于新的sys.sql_modules视图中。
- 表视图:https://docs.microsoft.com/zh-cn/sql/relational-databases/system-catalog-views/sys-tables-transact-sql?view=sql-server-ver15
一、查询数据库所有表和字段的基本信息
|
查询数据库所有建表语句:
|
查询整个数据库包括系统表所有的字段信息
|
二、查询数据库所有表的索引信息
注:还可以生成创建和删除语句
|
结果图:
三、查询建立的所有视图信息
|
在SQL server的可视化工具Microsoft SQL Server Management Studio 中右键点击视图,设计中可查看创建语句
----------------------------------ORACLE 中-----------------------------------------
一、查询所有表,视图的基本信息,字段信息,索引信息
在数据字典与识图中可以找到相应的视图,来查询数据库基本信息;详细字段信息需要到视图中的查看里都有描述
在DBA_TAB_COLS视图中中有详细的表的描述下面是字段信息
- TABLE_NAME是表名,视图名或者集群名;
- COLUMN_NAME是'列名';
- DATA_TYPE是“列的数据类型”;
- DATA_TYPE_MOD是'列的数据类型修饰符';
- DATA_TYPE_OWNER是“列的数据类型的所有者”;
- DATA_LENGTH是'列的长度,以字节为单位';
- DATA_PRECISION是'长度:十进制数字(数字)或二进制数字(浮点数)';
- DATA_SCALE是“数字小数点右侧的数字”;
- NULLABLE是'列允许空值吗?';
- COLUMN_ID是'创建的列的序列号';
- DEFAULT_LENGTH是'列的默认值的长度';
- DATA_DEFAULT是'列的默认值';
- NUM_DISTINCT是'列中不同值的个数';
- LOW_VALUE是'列中的低值';
- HIGH_VALUE是'列中的高值';
- 密度为“柱的密度”;
- NUM_NULLS是' null的数量在列';
- NUM_BUCKETS是'该列柱状图中的桶数';
- LAST_ANALYZED是'The date of The last time this column was analyzed';
- SAMPLE_SIZE是“用于分析本列的样本大小”;
- CHARACTER_SET_NAME是'字符集名称';
- CHAR_COL_DECL_LENGTH是'声明长度字符类型列';
- GLOBAL_STATS是“统计数据在没有合并基础分区的情况下计算吗?”;
- USER_STATS是'是用户直接输入的数据吗?';
- AVG_COL_LEN是“列的平均长度(以字节为单位)”;
- CHAR_LENGTH是'列的最大字符长度';
- CHAR_USED为'C if width was specified in characters, B if in bytes';
- V80_FMT_IMAGE is ' is column data in 8.0 image format?';
- data_updated is '列数据是否已升级到最新的类型版本格式?';
- HIDDEN_COLUMN是'这是一个隐藏的列吗?';
- VIRTUAL_COLUMN是“这是一个虚拟列吗?”;
- SEGMENT_COLUMN_ID是‘在段中的列的序列号’;
- INTERNAL_COLUMN_ID是'列的内部序列号';
- QUALIFIED_COL_NAME是'限定列名';
!!!在这里遇到了问题:查询所有出来的结果只有固定的一小部分,都是数据字典表,进入视图去看原数据也是,但是用条件查询还是可以查出来
条件查询可以查出来,但是上面的查询结果中不包含TESTS_1表
数据字典表(Data dictionary table)用以存储表、索引、约束以及其它数据库结构的信息,这些对象通常以“$”结尾(例如:TAB$、OBJ$、TS$等),在创建数据库的时候通过运行$ORACLE_HOME/rdbms/admin/sql.bsq脚本来创建。sql.bsq是一个非常重要的文件,其中包含了数据字典表的定义及注释说明,应仔细阅读研究。
方法一
|
--实例:
|
列名:
ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等
如遇到一个庞大的数据核心系统,而并不知道主键关联的情况,可以用以下脚本查询该主键所有对应的表,随后进行筛选关联:
|
方法二
oracle 查询全部表和对应表结构:
|
数据字典与视图:
https://blog.csdn.net/huangleijay/article/details/11568265
Oracle提供了很方便的视图,直接查询便可
实例:
|
|
数据字典与视图
视 图 名 |
说 明 |
ALL_CATALOG |
为用户可存取的全部表、视图和序列 |
ALL_COL_COMMENTS |
为用户可存取的表和视图列上的注释 |
ALL_COL_PRIVS |
在列上授权,该用户或PUBLIC是被授与者 |
ALL_COL_PRIVS_MADE |
在列上授权,该用户为持有者或授与者 |
ALL_COL_PRIVS_RECD |
在列上授权,该用户或PUBLIC是被授与者 |
ALL_CONSTRAINTS |
在可存取表上的约束定义 |
ALL_CONS_COLUMN |
关于在约束定义中可存取列的信息 |
ALL_DB_LINKS |
用户可存取的数据库链 |
ALL_DBF_AUDIT_OPTS |
在对象建立时,所应用的缺省对象审计选择 |
ALL_DEPENDENCIES |
用户可存取的对象之间的从属关系 |
ALL_ERROES |
在用户可存取对象上的当前错误 |
ALL_INDEXES |
在用户可存取的表上的索引说明 |
ALL_IND_COLUMNS |
在可存取的表上的索引列 |
ALL_OBJECTS |
用户可存取的对象 |
ALL_SEQUENCES |
用户可存取的序列说明 |
ALL_SNAPSHOTS |
用户可存取的全部快照 |
ALL_SOURCE |
用户可存取的全部存储对象文本源程序 |
ALL_SYNONYM |
用户可存取的全部同义词 |
ALL_TABLES |
用户可存取的表的说明 |
ALL_TAB_COLUMNS |
用户可存取的表、视图、聚集的列 |
ALL_TAB_COMMENTS |
用户可存取的表或视图上的注释。 |
ALL_TAB_PRIVS |
在对象上授权,该用户或PUBLIC被授与者 |
ALL_TAB_PRIVS_MADE |
在对象上的授权或用户授权 |
ALL_TAB_PRIVS_RECD |
在对象上授权,该用户或PUBLIC是被授与者 |
ALL_TRIGGERS |
用户可存取的触发器 |
ALL_TRIGGER_COLS |
显示用户持有的表中的列和用户所持有的触发器中列的使用,或者用户具有CREATE ANY TRIGGER特权时在所有触发器上列的使用 |
ALL_USERS |
关于数据库是所有用户的信息 |
ALL_VIEW |
用户可存取的视图文本 |
AUDIT_ACTIONS |
审计跟踪动作类型代码描述表 |
CAT |
为USER_CATALOG的同义词 |
CHAINED_ROWS |
ANALYZE CHAINED ROWS命令的缺省值 |
CLU |
为USER_CLUSTERS的同义词 |
COLS |
为USER_TAB_COLUMNS的同义词 |
COLUMN_PRIVILEGES |
在列上授权,用户是其授权者,被授与权者、持有者或授与PUBLIC |
DBA_2PC_NEIGHBORS |
关于悬挂事务入和出连接的信息 |
DBA_2PC_PENDING |
关于在PREPARED状态时失败的分式事务信息 |
DBA_AUDIT_EXISTS |
由AUDIT EXISTS命令建立的审计跟踪记录 |
DBA_AUDIT_OBJECT |
系统中全部对象的审计跟踪记录 |
DBA_AUDIT_SESSION |
系统中涉及CONNECT和DISCONNECT的全部审计跟踪记录 |
DBA_AUDIT_STATEMENT |
系统中涉及GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM语句的全部审计记录 |
DBA_AUDIT_TRAIL |
为系统中全部审计记录的集合 |
DBA_BLOCKERS |
为会话集,它们具有别的会话正等待的一封锁,而它们本身不等待封锁 |
DBA_CATALAOG |
为全部数据库表、视图、同义词和序列 |
DBA_CLUSTERS |
数据库中全部聚集的说明 |
DBA_CLU_CLOUMNS |
表列对聚集列的映射 |
DBA_COL_COMMENTS |
在所有表和视图的列上的注释 |
DBA_COL_PRIVS |
在数据库列上的全部授权 |
DBA_CONSTRAINTS |
在数据库全部表上的约束定义 |
DBA_CONS_CLOUMNS |
关于约束定义中全部列的信息 |
DBA_DATA_FILES |
关于数据文件的信息 |
DBA_ DB_LINKS |
在数据库中的全部数据链 |
DBA_ DDL_LOCKS |
数据库中当前所有全部DDL封锁和所有未完成的DML封锁请求 |
DBA_ DEPENDENCIES |
全部对象之间的从属关系 |
DBA_DML_LOCKS |
数据库中当前所持有DDL封锁和所有未完成的DML封锁请求 |
DBA_ERRORS |
数据库中全部存储对象上的当前错误 |
DBA_EXP_FILES |
输出文件说明 |
DBA_EXP_OBJECTS |
已有增量输出的对象 |
DBA_EXP_VERSION |
最后的输出会话的版本 |
DBA_EXTENTS |
数据库中全部段的范围 |
DBA_FREE_SPACE |
在所有表空间中未用的范围 |
DBA_INDEXES |
数据库中全部索引的说明 |
DBA_IND_COLUMN |
全部表和聚集上的索引列 |
DBA_LOCKS |
在数据库中持有的全部封锁和未完成请求的封锁(包括DML和DDL封锁) |
DBA_OBJECT |
在数据库中定义的全部聚集、数据库链、索引、包、包体、序列、同义词、表和视图 |
DBA_OBJECT_SIZE |
数据库中的全部PL/SQL对象 |
DBA_OBJ_AUDIT_OPTS |
为全部表和视图的审计选择 |
DBA_PRIV_AUDIT_OPTS |
特权审计选择 |
DBA_PROFILES |
赋给每个环境文件的资源限制 |
DBA_ROLES |
在数据库中已有的全部角色 |
DBA_ROLE_PRIVS |
授权给用户或角色的角色的说明 |
DBA_ROLLBACK_SEGS |
回滚段的说明 |
DBA_SEGMENTS |
分配给全部数据库段的存储 |
DBA_SEQUENCES |
在数据库中全部序列的说明 |
DBA_SNAPSHOTS |
在数据库中的全部快照 |
DBA_SNAPSHOTS_LOGS |
在数据库中的全部快照日志 |
DBA_SOURCE |
在数据库中全部存储对象的源文本 |
DBA_SYNONYMS |
在数据库中的全部同义词 |
DBA_STMT_AUDIT_OPTS |
为当前系统审计选择 |
DBA_SYS_PRIVS |
授权给用户或角色的系统特权 |
DBA_TABLES |
在数据库中的全部表的说明 |
DBA_TABLESSPACES |
数据库中的全部表空间的说明 |
DBA_TAB_CLOUMNS |
全部表、视图和聚集中的列 |
DBA_TAB_COMMENTS |
在数据库中全部表和视图上的注释 |
DBA_TAB_PRIVS |
在数据库中对象上的全部授权 |
DBA_TRIGGERS |
在数据库中全部触发器的说明 |
DBA_TRIGGERS_COLS |
显示由用户定义或在任何用户表上的触发器中列的用法 |
DBA_TS_QUOTAS |
为全部用户的表空间份额 |
DBA_USERS |
关于数据库全部用户的信息 |
DBA_VIEWS |
数据库中全部视图的文本 |
DBA_WAITERS |
等待封锁的全部会话和持有该锁的会话 |
DICT |
为DICTIONARY的同义词 |
DICTIONARY |
数据库字典表和视图的说明 |
DICT_COLUMNS |
数据库字典表和视图中的列的说明 |
EXCEPTIONS |
违反完整性约束的信息 |
GLOBAL_NMAE |
当前数据库的全局名 |
IND |
为USER__INDEXES的同义词 |
INDEX_STATE |
存储VAILDATE INDEX命令的信息 |
OBJ |
为USER_ OBJECT的同义词 |
RESOURCE_COST |
每种资源的费用 |
ROLE_ROLE_PRIVS |
授权给其它角色的角色的信息 |
ROLE_SYS_PRIVS |
授权给角色的系统特权的信息 |
ROLE_TAB_PRVS |
授权给角色的表特权的信息 |
SEQ |
为USER_SEQUENCES的同义词 |
SEESSIONS_PORIVS |
用户当前可用的特权 |
SESSION_ROLES |
用户当前已使其使能打角色 |
SYN |
为USER_SYNONYMS的同义词 |
SYSTEM_PRILEGE_MAP |
为系统特权代码的说明表 |
TABLE_PRIVILEGES |
在对象上授权 |
TABLE_PRIVILEGE_MAP |
为存取特权代码的说明表 |
TABS |
为USER_TABLES的同义词 |
USER_AUDIT_OBJECT |
涉及对象审计跟踪记录 |
USER_AUDIT_SESSION |
涉及连接或删除连接的全部审计跟踪记录 |
USER_AUDIT_STATEMENT |
为用户发出的GRANT、REVOKE、AUDIT、NOAUDIT、ALL SYSTEM语句的审计跟踪项 |
USER_AUDIT_TRAIL |
与用户有关的审计跟踪项 |
USER_CATALOG |
为用户所持有的表、视图、同义词和序列 |
USER_CLUSTERS |
为用户持有的聚集的说明 |
USER_CLU_CLOUMNS |
用户的表列到聚集的映射 |
USER_COL_COMMENTS |
在用户的表或视图的列上的注释 |
USER_COL_PRIVS |
在列上的授权,该用户是持有者、授权者或被授与者 |
USER_COL_PRIVS_MADE |
为用户持有的对象的列上的全部授权 |
USER_COL_PRIVS_RECD |
该用户是被授权者的列上的授权 |
USER_CONSTRAINT |
在用户表上的约束定义 |
USER_CONS_COLUMNS |
由用户持有约束定义中的列的信息 |
USER_DB_LINKS |
为用户持有的数据库链 |
USER_DEPENDENCIES |
用户的对象之间的从属关系 |
USER_ERRORS |
用户的存储对象上的当前错误 |
USER_EXTRNTS |
属于用户对象的段的范围 |
USER_FREE_SPACE |
用户可存取的表空间中未用的范围 |
USRE_INDEXES |
用户自己的索引说明 |
USER_IND_CLOUMNS |
用户索引的列或用户表上的列 |
USER_OBJECTS |
用户所持有的对象 |
USER_OBJECT_SIZE |
用户的PL/SQL对象 |
USER_OBJ_AUDIT_OPTS |
为用户的表和审计选择 |
USER_RESOURCE_LIMITS |
为当前用户的资源限制 |
USER_ROLE_PRIVS |
特权给用户的角色 |
USER_SEGMENT |
属于用户对象的数据库段的存储分配 |
USER_SEQUENCE |
用户自己的序列的说明 |
USER_SNAPSHOTS |
用户可查看的快照 |
USER_SNAPSHOT_LOGS |
用户可持有的快照日志 |
USER_SOURCE |
属于用户的全部存储对象的源文本 |
USER_SYNONYM |
用户专用同义词 |
USER_SYS_PRIVS |
特权给用户的系统特权 |
USER_TABLES |
用户持有表的说明 |
USER_TABLESPACES |
可存表空间的说明 |
USER_TAB_COLUMNSS |
用户的表、视图和聚集的列 |
USER_TAB_COMMENTS |
用户所持的表和视图上的注释 |
USER_TAB_PRIVS |
用户为授权者、持有者或被授权者的对象上的授权 |
USRE_TAB_PRIVS_MADE |
用户所持有的对象的全部特权 |
USER_TAB_PRIVS_RECD |
用户为被授权者的对象上授权 |
USER_TRIGGRS |
用户触发器的说明 |
USER_TRIGGRS_COLS |
用户所持有的或在用户表上的触发器中的列的用法 |
USER_TS_QUOTAS |
用户在表空间上的份额 |
USER_USERS |
关于当前用户的信息 |
USER_VIEWS |
用户持有的视图的文本 |
附录A 动态性能表
表名 |
说明 |
V$ACCESS |
显示数据库中的对象信息 |
V$ARCHIVE |
数据库系统中每个索引的归档日志方面的信息 |
V$BACKUP |
所有在线数据文件的状态 |
V$BGPROCESS |
描述后台进程 |
V$CIRCUIT |
有关虚拟电路信息 |
V$DATABASE |
控制文件中的数据库信息 |
V$DATAFILE |
控制文件中的数据文件信息 |
V$DBFILE |
构成数据库所有数据文件 |
V$DB_OBJECT_CACHE |
表示库高速缓存中被缓存的数据库对象 |
V$DISPATCHER |
调度进程信息 |
V$ENABLEDPRIVS |
那些特权接通 |
V$FILESTAT |
文件读/写统计信息 |
V$FIXED_TABLE |
显示数据库中所有固定表、视图和派生表 |
V$INSTANCE |
当前实例状态 |
V$LATCH |
每类闩锁的信息 |
V$LATCHHOLDER |
当前闩锁占有者的信息 |
V$LATCHNAME |
在V$LATCH表中表示的闩锁的译码闩锁名 |
V$LIBRARYCACHE |
库高速缓冲存储管理统计 |
V$LICENSE |
许可限制信息 |
V$LOADCSTAT |
SQL*Loader在直接装入执行过程中的编译统计 |
V$LOCK |
有关封锁和资源信息,不包含DDL封锁 |
V$LOG |
控制文件中的日志文件信息 |
V$LOGFILE |
有关日志文件信息 |
V$LOGHIST |
控制文件中的日志历史信息 |
V$LOGHISTORY |
日志历史中所有日志的归档日志名 |
V$NLS_PARAMETERS |
NLS参数的当前值 |
V$OPEN_CURSOR |
每一个用户会话期当前已打开和分析的光标 |
V$PARAMETER |
当前参数值的信息 |
V$PROCESS |
当前活动进程的信息 |
V$QUEUE |
多线索信息队列的信息 |
V$REVOVERY_LOG |
需要完成介质恢复的归档日志 |
V$RECOVERY_FILE |
需要介质恢复的文件状态 |
V$REQDIST |
请求时间直方图,分为12个范围 |
V$RESOURCE |
有关资源信息 |
V$ROLLNAME |
所有在线回滚段的名字 |
V$ROLLSTAT |
所有在线回滚段的统计信息 |
V$ROWCACHE |
数据字典活动的统计信息(每一个包含一个数据字典高速缓存的统计信息) |
V$SESSION |
每一个当前会话期的会话信息 |
V$SESSION_WAIT |
列出活动会话等待的资源或事件 |
V$SESSTAT |
对于每一个当前会话的当前统计值 |
V$SESS_IO |
每一个用户会话的I/O统计 |
V$SGA |
系统全局区统计信息 |
V$SGASTAT |
系统全局区的详细信息 |
V$SHARED_SERVER |
共享服务器进程信息 |
V$SQLAREA |
共享光标高速缓存区的统计信息,每一个有一个共享光标的统计信息 |
V$SQLTEXT |
属于SGA中的共享SQL光标的SQL语句文本 |
V$STATNAME |
在V$SESSTAT表中表示的统计信息的译码统计名 |
V$SYSSTAT |
表V$SESSETA中当前每个统计的全面的系统值 |
V$THREAD |
从控制文件中得到线索信息 |
V$TIMER |
以百分之一秒为单位的当前时间 |
V$TRANSACTION |
有关事务的信息 |
V$TYPE_SIZE |
各种数据库成分的大小 |
V$VERSION |
ORACLE Server中核心库成员的版本号,每个成员一行 |
V$WAITSTAT |
块竞争统计,当时间统计可能时,才能更新该表 |
附录B SQL语言运算符与函数
表1 各种运算符
运算符 |
含 义 |
= |
相等 |
!=或<> |
不等于 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
IN(列表) |
等于列表中的任意值 |
BETWEEN值1 AND值2 |
大于等于值1并且小于等于值2 |
LIKE%或- |
模式匹配。“%”匹配0个或任意个字符,“-”匹配一个字符 |
IS NULL |
空值 |
IS NOT NULL |
非空值 |
NOT |
逻辑非 |
AND |
逻辑与 |
OR |
逻辑或 |
表2 字符函数列表
函数 |
功能 |
注释 |
ASCII(char) |
计算char的第一个字符的ASCII值或EBCDIC码值 |
函数返回值取决于计算机系统采用的字符 |
CHAR(n) |
计算ASCⅡ码值或EBCDIC码值是n的字符 |
函数n依赖于计算机系统采用的字符集,n的取值为0~127或0~254之间 |
INITCAP(char) |
将char串口的每个单词的首字母变成大写,其余字母变为小写 |
单词之间用数字、空格、逗号、顿号、冒号、分号、句号、1、@、#、$等字符分隔 |
INSTR(char1,char[,m[,n]]) |
求char1中从m位置起char2第n次出现的位置 |
m,n缺省值为1,当>0时,表示从char1的首部起始(从左向右)正向搜索;n<0时,表示从char1的尾部起始(从右向左)反向搜索 |
LENGTH(char) |
计算字符串char的长度 |
|
LOWER(char) |
将char中所有的字母改成小写 |
|
LPAD(char1,n[,char2]) |
从左侧用char2补齐char1至长度n |
char2省略时,用空格填充,n<char1的长度时,表示截取char1从左至右侧n个字符 |
RPAD(char1,n[,char2]) |
从右侧用char2补齐char1至长度n |
char2省略时,用空格填充,n<char1的长度时,表示截取char1右侧n个符 |
LTRIM(char[,SET]) |
把char1中最左侧的若干个字符去掉,以使其首字符不在SET中 |
SET表示单个字符组在的字符集合。SET若被省略时,表示截取char左边的前置空格 |
RTRIM(char[,SET]) |
把char中最右侧的若干个字符去掉,以使其尾字符不在SET中 |
SET表示单个字符组成的字符集合。SET若被省略时,表示截取char右边的后置空格 |
REPLACE(char1,char2[,char3] |
将char1中出现的所有char2用char3来代替 |
char2和char3同时被省略时,函数返回NULL,仅char3省略时,则表示删除char1中出现的所有char2 |
SOUNDEX(char) |
求与char中一个或多个单词发音相同的字符串 |
|
SUBSTR(char,m[,n]) |
返回char中第m个字符起始n个字符长的子串 |
n省略时,表示截取char中第m个字符后的子串 |
TRANSLATE(char1,from,to) |
将from字符集转换为to字符集,char中以from表达的字符用to中相对应的字符所代替 |
|
UPPER(char) |
将char中所有的字母改变大写 |
表3 数值函数列表
函数 |
功能 |
注释 |
ABS(n) |
计算n的绝对值 |
允许是数值型常数、数值型列名、包含一个有效数值的文字串或包含一个有效数值的字符型列名 |
CELL(n) |
计算大于或等于n的最小整数 |
数学中的向上取整运算 |
FLOOR(n) |
计算大于或等于n的最大整数 |
数学中的向下取整运算 |
MOD(m,n) |
计算m除以n的余数n=0时,返回m |
MOD(m,1)=0说明m是一个整数 |
POWER(m,n) ROUND(m,[,n]) |
计算m的n次方,n>0时,将m四舍五入到小数点右边n位n<0时,将m四舍五入到小数点左边n位 |
n要求为整数,否则出错n=0或n被省略表示对m进行取整 |
SIGN(n) |
判断n的正负 |
如果n>0,函数返回1;n=0,函数反加0,n<0,函数反回 |
SQRT(n) TRUNC(m,[,n]) |
计算n的平方根,n>0时,将m小数点右边n位截断;n<0时,将m小数点左边的n位后各位截断,并添加n个0 |
n<0时,函数返回NULLn=0或n被省略表示对m进行取整 |
表4 日期函数列表
函数 |
功能 |
注释 |
ADD_MONTHS(d,n) |
计算d加上n个月的日期 |
n要求为整数,n>0时,返回d之后n个月的日期;n<0时,返回d之前n个月的日期 |
LAST_DAY(d) |
计算d所在月份最后一天的日期 |
用来确定给定月份中的天数 |
MONTHS_BETWEEN (d1,d2) |
计算d1和d2之间相隔的月数 |
返加结果>0时,表示d1晚于d2;返回结果<0时,表示d1早于d2 |
NEXT_DAY(d,s) |
计算晚于d的第一个s的日期 |
s要求是’Sunday’,’Monday’, ’Tuesday’,’Wednesday’,’Thursday’, ’Friday’或’Saturday’ |
SYSDATE |
求系统当前日期和时间 |
表5 聚组函数列表
函 数 |
功 能 |
AVG(e) |
计算一组行中e值的平均值 |
COUNT(e) |
计算一组行中e值为非空值的行数 |
COUNT(*) |
计算表中的行数(包括重复值和空值) |
MAX(e) |
计算一组行中e值的最大值 |
MIN(e) |
计算一组行中e值的最小值 |
STDDEV(e) |
计算一组行中e值的标准差 |
SUM(e) |
计算一组行中e值的总和 |
VARIANCE(e) |
计算一组行中e值的方差 |
二,获取数据字典定义
获取对象定义的包为:dbms_metadata,其中的get_ddl函数是获取对象的函数
GET_DDL函数返回创建对象的原数据的DDL语句,参数说明
1、object_type ---需要返回原数据的DDL语句的对象类型
2、name --- 对象名称
3、schema ---对象所在的Schema,默认为当前用户所在所Schema
4、version ---对象原数据的版本
5、model ---原数据的类型默认为ORACLE
6、transform. - XSL-T transform. to be applied.
7、RETURNS: 对象的原数据默认以CLOB类型返回
其中,我们经常用到的是前三项。
dbms_metadata包中的get_ddl函数定义:
FUNCTION get_ddl ( object_type IN VARCHAR2,
name IN VARCHAR2,
schema IN VARCHAR2 DEFAULT NULL,
version IN VARCHAR2 DEFAULT 'COMPATIBLE',
model IN VARCHAR2 DEFAULT 'ORACLE',
transform. IN VARCHAR2 DEFAULT 'DDL') RETURN CLOB;
注意:
1、如果使用sqlplus需要进行下列格式化,特别需要对long进行设置,否则无法显示完整的SQL
2、参数要使用大写,否则会查不到
set linesize 400
set pages 0
set long 10000
1、查看数据库表的定义写法:
|
2、查看索引的SQL
|
3、查看创建主键的SQL
|
4、查看创建外键的SQL
|
5、查看创建视图的SQL
|
6、查看用户的SQL
|
7、查看角色的SQL
|
8、查看表空间的SQL
|
9、获取物化视图SQL
|
10、获取远程连接定义SQL
|
11、获取用户下的触发器SQL
|
12、获取用户下的序列
|
13、获取用户下的函数
|
14、获取包的定义
|
15、获取存储过程
|
16、获取包体定义
|
17、获取远程数据库对象的定义
|
18、获取多个对象的定义
|
实例:
|
备注:
Q:什么是-元数据-
A:元数据(MetaData),即定义数据的数据。
打个比方,就好像我们要想搜索一首歌(歌本身是数据),而我们可以通过歌名,作者,专辑等信息来搜索,那么这些歌名,作者,专辑等等就是这首歌的元数据。
数据库的元数据就是一些注明数据库信息的数据。
查询所有表、索引、视图信息的SQL语句-Mysql/oracle/sql server的不同实现方式相关推荐
- Oracle中查询用户表/索引/视图的创建语句
1.查询当前用户下表的创建语句 select dbms_metadata.get_ddl('TABLE','ux_future') from dual; 2.查询其他用户下表的创建语句 select ...
- oracle sql语句序列,Oracle SQL之 序列使用限制
Restrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in the following constructs: ■ A ...
- oracle中sql语句排序,Oracle SQL排序方式与case语句
我在理解带有case语句的oracle(12c)sql order by子句时遇到困难.我有一张包含以下数据的表格, SELECT DEPT_NO, DEPT_NAME FROM SORTNG_LOG ...
- oracle sql语句序列,Oracle SQL:使用Select语句插入序列
假设您要在按序列生成密钥之前对数据进行分组,那么就像您想要的那样 INSERT INTO HISTORICAL_CAR_STATS ( HISTORICAL_CAR_STATS_ID, YEAR, M ...
- Oracle+sql+取年度,oracle SQL语句取本周本月本年的数据
--国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...
- mysql 所有表的字段信息_mysql如何查询所有表和字段信息
mysql查询所有表和字段信息的方法: 1.根据库名获取所有表的信息 SELECT * FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'e ...
- Oracle查询所有序列;[oracle中如何创建表的自增ID(通过序列);oracle sql语句大全
Oracle查询所有序列 oracle sql语句大全 oracle中如何创建表的自增ID(通过序列)
- 大文件表空间+创建大文件表空间+查询数据库表空间类型信息+查询数据库表空间类型信息...
1用于解决存储文件大小不够的问题 2与普通表空间不同的地方在于大文件表空间只对应唯一一个数据文件或临时文件,普通表空间可最多1022个数据文件或临时文件 3大文件表空间对应文件可达4G个数据块大小,普 ...
- oracle+统计表的字段,统计系统中表的个数与查询所有表的字段信息-Oracle
统计系统中表的个数与查询所有表的字段信息 –统计系统中表的个数: –表描述字段: –需要字段:Name.Code.Commente select lower(a.TABLE_NAME) || '-' ...
最新文章
- android 分组 listview,Android实现的ListView分组布局改进示例
- 求单独出现的数,冒泡排序优化,strncpy的优化
- java环境变量详解---找不到或无法加载主类
- NOIP2015 D1 解题报告
- 前端学习(795):基本包装类型
- django模板系统(下)
- 滴滴回应高额抽成:确实存在;抖音火山版被判赔腾讯 800 万元;华为鸿蒙系统有望下月规模化推送|极客头条...
- TypeScript基础类型
- 20180209-sys模块
- java开发课程表_Java开发人员课程包,折扣高达86%
- c++如何生成指定范围的随机数
- Android P新特性
- Lingo软件使用教程
- java 汽车租赁系统
- SAP 和 ERP 区别
- Unity 科大讯飞离线语音合成
- 怎么打开计算机访问权限,怎么打开电脑摄像头权限(摄像头权限5种开启方法)...
- Tomcat8.0系列配置GlobalSign SSL证书
- 苹果Mac系统怎么彻底关闭开机的声音?
- Request请求转发与URL编码