首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql 数据字典查询有哪些表

MySQL 数据字典是关于数据库元数据(即关于数据的数据)的集合。这些元数据包括诸如数据库名、表名、列的数据类型以及访问权限等信息。MySQL 的数据字典存储在多个系统表中,你可以查询这些表来获取有关数据库结构的信息。

以下是一些主要的系统表及其用途:

  1. INFORMATION_SCHEMA.TABLES
    • 用途:提供关于数据库中表的信息。
    • 示例查询:
代码语言:txt
复制
SELECT TABLE_NAME, TABLE_TYPE, ENGINE, CREATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name';
  1. INFORMATION_SCHEMA.COLUMNS
    • 用途:提供关于表中列的信息。
    • 示例查询:
代码语言:txt
复制
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';
  1. INFORMATION_SCHEMA.KEY_COLUMN_USAGE
    • 用途:提供关于表中主键和外键的信息。
    • 示例查询:
代码语言:txt
复制
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'your_database_name';
  1. INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
    • 用途:提供关于表之间外键约束的详细信息。
    • 示例查询:
代码语言:txt
复制
SELECT CONSTRAINT_NAME, UNIQUE_CONSTRAINT_NAME, MATCH_OPTION, UPDATE_RULE, DELETE_RULE
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTIALINTS
WHERE CONSTRAINT_SCHEMA = 'your_database_name';
  1. INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    • 用途:提供关于表约束(如主键、唯一约束等)的信息。
    • 示例查询:
代码语言:txt
复制
SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE, IS_DEFERRABLE, INITIALLY_DEFERRED
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_SCHEMA = 'your_database_name';

优势

  • 数据字典提供了关于数据库结构的详细信息,有助于数据库管理和维护。
  • 可以通过查询数据字典来了解表、列、索引和其他数据库对象的详细信息。
  • 数据字典是只读的,因此查询它不会对数据库性能产生负面影响。

应用场景

  • 数据库设计和管理:在设计和修改数据库结构时,数据字典提供了必要的信息。
  • 数据库迁移和升级:在将数据库从一个环境迁移到另一个环境或升级数据库版本时,数据字典有助于了解现有结构和兼容性。
  • 性能调优:通过分析数据字典中的信息,可以识别潜在的性能瓶颈并进行优化。

遇到的问题及解决方法

  • 如果查询数据字典时遇到权限问题,确保当前用户具有足够的权限来访问这些系统表。
  • 如果查询结果不准确或不完整,可能是因为某些系统表未被正确填充或存在版本差异。在这种情况下,建议查阅 MySQL 官方文档以获取更准确的信息。
  • 如果需要频繁查询数据字典,可以考虑编写存储过程或脚本来自动化这个过程。

请注意,上述示例查询中的 'your_database_name''your_table_name' 需要替换为实际的数据库名和表名。此外,MySQL 的数据字典实现可能因版本而异,因此建议查阅特定版本的官方文档以获取最准确的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL 8.0 数据字典哪些变化?

考虑过是否跟业务数据资源抢夺的现象,这些都是实际使用中需要观察关注的问题。...1 数据字典 MySQL数据字典数据库重要的组成部分之一,包含结构、数据库名或名、字段的数据类型、视图、索引、表字段信息、存储过程、触发器等对象的基础信息。...为了支持DDL操作的重做和回滚,InnoDB将DDL日志写到mysql.innodb_ddl_log,它是一个隐藏的数据字典,驻留在mysql中。ibd数据字典空间。...小版本升级 数据字典成功升级之后,不可能使用旧的服务器二进制文件重新启动服务器。因此,在升级数据字典之后,不支持将MySQL服务器二进制文件降级为以前的MySQL版本。...4 总结 需要考虑的点: MySQL8.0数据字典的改进有很多方便的特性,例如带来了原子DDL,提升了INFORMATION_SCHEMA的查询性能等,但是它并不是完美的,新版数据字典还是存在一些局限性

2.1K20

MySQL 8.0 数据字典

本文内容基于 MySQL 8.0.29 源码。 目录 1. 概述 2. 数据字典哪些? 3. 数据字典数据在哪里? 4. 创建数据字典 5. 打开数据字典 6. 总结 正文 1....上面 4 个数据字典的名字也发生了变化,后面会介绍。 2. 数据字典哪些?...以下是一个测试表,图中 name 是从 columns 中连查询得到的,其它都是 index_column_usage 的字段。...数据字典本身的元数据也会保存到数据字典表里,但是某个数据字典创建的时候,一些数据字典还没有创建,这就有问题了。...我们先来想想怎么解决房间和钥匙问题,如果把打开房间的钥匙落在房间里了,哪些办法可以解决? 我能想到的以下 3 种解决方案: 暴力破解,把锁撬开。 找专业的开锁师傅把锁打开。 用备用钥匙开门。

1.7K10
  • 【DB笔试面试473】分区常用数据字典视图哪些

    题目部分 分区常用数据字典视图哪些? 答案部分 Oracle分区表相关数据字典视图如下所示: (1)显示数据库所有分区的信息:DBA_PART_TABLES。...(2)显示分区信息,显示数据库所有分区的详细分区信息:DBA_TAB_PARTITIONS。...(3)显示子分区信息,显示数据库所有复合分区的子分区信息:DBA_TAB_SUBPARTITIONS。...(4)显示分区列,显示数据库所有分区的分区列信息:DBA_PART_KEY_COLUMNS。...(5)显示子分区列,显示数据库所有分区的子分区列信息:DBA_SUBPART_KEY_COLUMNS。 关于分区的一些数据字典,作者写了以下3个脚本: 所有的分区: SELECT d."

    71320

    MySQL数据查询之单查询

    查询 简单查询 - 创建 DROP TABLE IF EXISTS `person`; CREATE TABLE `person` ( `id` int(11) NOT NULL AUTO_INCREMENT...你需要强制让MySQL按中文来排序 聚合查询 聚合: 将分散的聚集到一起....Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数 分页查询 好处:限制查询数据条数,提高查询效率 #查询前5条数据 select...person limit 10,5; ps: limit (起始条数),(查询多少条数); 正则表达式 MySQL中使用 REGEXP 操作符来进行正则表达式匹配。...首先执行 FROM 子句, 从 person 组装数据源的数据    (2). 执行 WHERE 子句, 筛选 person 中 name 不为 NULL 的数据    (3).

    6.3K30

    MySql学习笔记(一)- 类型哪些,怎么用?

    天天在用mysql,你说sql什么学的,但是面试官说你学的都是皮毛。怎么样?...所以说一张就是一棵树,那么这个树的类型哪些?这也就是我们标题所示的类型。 那么具体的类型哪些?...mysql的基本类型MyISAM、InnoDB、DBD、MEMORY、MERGE、EXAMPLE、NDB CLUSTER、ARCHIVE、CSV、BLACKHOLE、FEDERATED等。...如果创建的时候不指定类型,默认为InnoDB,这是mysql5.5之后约定的规范。当然您可以通过修改ini文件来指定默认的类型。 ?...MERGE 是一组myisam的组合,但是这些myisam的结构完全相同,MERGE本身没有数据,对MERGE可以进行查询更新删除操作,这些其实是对myisam的操作。

    2.4K30

    MySQL查询

    是一种数据库分割技术,用于将大拆分成多个小,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分,例如基于范围、哈希或列表等。...下面将详细介绍MySQL如何分以及分后如何进行数据查询。 基于哈希的分 基于哈希的分是一种将数据分散到多个子表中的数据库分策略。这种方法通过计算数据的哈希值来决定数据应该存储在哪个子表中。...示例插入数据: -- 计算数据的哈希值(示例使用MySQL的MD5哈希函数) SET @hash = MD5(CONCAT(customer_id, order_date)); -- 根据哈希值决定插入到哪个子表中...基于范围的分 基于范围进行分是一种数据库分策略,它根据数据的范围条件将数据拆分到不同的子表中。这种方法适用于按时间、地理区域或其他有序范围进行查询的场景。...•查询路由算法: 查询路由算法应该与数据分布策略一致,以确保正确路由查询。 基于列表的分 基于列表的分是一种数据库分策略,它根据某个列的值将数据分割到不同的子表中。

    96720

    MySQL查询

    查询的语法及关键字执行的优先级 单查询语法 SELECT DISTINCT 字段1,字段2......1.找到:from 2.拿着where指定的约束条件,去文件/中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.执行select(去重)...post; GROUP BY与聚合函数一起使用 select post,count(id) as count from employee group by post;#按照岗位分组,并查看每个组多少人...查询岗位名以及岗位包含的所有员工名字 2. 查询岗位名以及各岗位内包含的员工个数 3. 查询公司内男员工和女员工的个数 4. 查询岗位名以及各岗位的平均薪资 5....Where 发生在分组group by之前,因而Where中可以任意字段,但是绝对不能使用聚合函数。 #2.

    17.8K10

    MySQL查询导出数据结构信息

    问题描述 最近在写文档,需要用到数据库设计文档,结构很多,如果一个个去复制黏贴,也是很花时间,所以需要借助INFORMATION_SCHEMA库的 补充: information_schema数据库是...MySQL自带的,它提供了访问数据库元数据的方式。...元数据是关于数据数据,如数据库名或名,列的数据类型,或访问权限等 解决方案 所以,需要借助INFORMATION_SCHEMA的里系统,通过如下SQL查询: SELECT b.COLUMN_NAME...' AND a.table_name = '数据名称' 通过SQL查询数据 然后复制一下数据库里的数据,在word文档里,选择,然后黏贴一下就可以 总结归纳 通过这个方法,节省了写文档的时间...,可以更多时间去写代码,补充INFORMATION_SCHEMA是MySQL数据库系统很重要的库,我们可以通过里面的系统排查一些性能问题,也可以像本文一样来查出结构来提高写文档效率,活学活用,学到的知识需要用起来

    5.4K40

    哪些Python字典遍历、计算字典长度、字典判断key是否存在的方法?

    字典和其他数据类型不一样,字典中有键和值成对出现,所以对于字典的遍历就不是太一样了,之前我们一直都是用for循环来遍历字典,而且for循环中只有一个变量,字典遍历中就需要两个变量同时存在。...下面我们对Python字典的遍历,判断和计算都分别举例演示一下。...一、遍历字典 1.遍历字典中的键或值 dict6 = {'name': 'Tom', 'age': 18, 'love': 'python'} # 获取和遍历键 keys = dict6.keys()...for k in keys: print(k) 返回结果: name age love 2.同时遍历字典中的键和值 dict6 = {'name': 'Tom', 'age': 18, 'love':...1.计算字典长度 dict6 = {'name': 'Tom', 'age': 18, 'love': 'python'} print(len(dict6)) 返回结果:3 2.字典判断 # 判定(

    2.7K10

    MySQL 8.0.30 的数据加密哪些变化?

    KDF MySQL具有SQL级别的加密功能,社区版的MySQL提供了AES_DECRYPT(),AES_ENCRYPT()函数用于数据的加密和解密,函数使用AES(Advanced Encryption...派生密钥用于加密和解密数据,它保留在MySQL 服务器实例中,用户无法访问。KDF提供了更好的安全性,比在使用函数时指定自己的预生成密钥或通过简单的方法派生的密钥更好。...通过这些函数,企业应用可以进行如下操作: 使用公钥非对称加密实施额外的数据保护 创建公钥和私钥以及数字签名 执行非对称加密和解密 使用加密散列进行数字签名以及数据验证和确认 在 MySQL 8.0.30...下面举例介绍企业版加密的部分功能,示例的内容包括: 创建私钥/公钥对 使用私钥加密数据,使用公钥解密 从字符串生成摘要 将摘要与密钥对一起使用 创建私钥/公钥对: -- 设置加密算法 MySQL localhost...localhost:3350 ssl SQL > SELECT @priv; 使用公钥加密数据,使用私钥解密: --加密数据 MySQL localhost:3350 ssl SQL >

    1.9K30

    MySQL之单查询、多表查询

    一、单查询: 单个查询方法及语法顺序需要通过实际例子来熟悉 先将数据创建下: ? ?...查询数据的条件依据 找到数据形成虚拟 ②、where约束条件的使用 # 1.查询id大于等于3小于等于6的数据 mysql> select * from emp where id >=...多个之间的查询一般都是在 之间存在某种逻辑关联的情况下进行的查询,这种逻辑上的关联其实就是中某个字段名和另外一个中的字段名存在一个一一对应的关系或者关联。...,虽然不合理但是其中有合理的数据,现在我们需要做的就是找出合理的数据 # 查询员工及所在部门的信息 mysql> select dep.name,emp.name from emp,dep where...# 将2张关联到一起的操作,专门的方法 # 1、内连接(inner join):只取两张对应关系的记录 mysql> select * from emp inner join dep on emp.dep_id

    22K30
    领券