若是您曾经尝试在大型数据库中定位特定列,那么我相信您会赞成这多是一项艰巨的任务。您能够从information_schema模式中收集有关DB结构的许多信息。它具备全部表和表中全部字段的列表。而后,您可使用从该表得到的信息来运行查询。涉及的特定表是SCHEMATA、TABLES和COLUMNS。有一些外键,使您能够准确地构建如何在模式中建立表。正则表达式
可是,执行数据库范围内搜索的更简单方法是使用Navicat Premium。Navicat在Non-Essentials Edition中可用,提供了“在数据库/架构中查找”功能,用于在数据库和/或架构中的表/视图或对象结构中查找数据。在今天的文章中,咱们将学习如何使用它。数据库
Navicat Premium是一个数据库开发工具,可以让您从单个应用程序同时链接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure,Oracle Cloud,Google Cloud和MongoDB Atlas等云数据库兼容。您能够快速轻松地构建,管理和维护数据库。架构
定位列ide
咱们首先在数据库中查找一列。咱们想在Sakila示例数据库中找到“release_year”列。这是咱们的处理方法:函数
打开在数据库/架构中查找窗口;从菜单栏中选择工具->在数据库/架构中查找。工具
选择目标链接、数据库或架构。学习
在“查找内容”文本框中输入搜索字符串。开发工具
在“查找范围”下拉列表中选择“结构”项。另外一个选择固然是“数据”。spa
选择“搜索模式”。选项包括包含、全字、前缀或正则表达式。3d
选中“不区分大小写”框以禁用区分大小写的搜索。
因为咱们在“查找范围”下拉列表中选择了“结构”,所以咱们如今能够选择搜索不一样的对象,包括表、视图、函数、查询或事件。
填写或选中全部字段后,表单应以下所示:
如今,继续并单击“查找”按钮以获取结果。在这种状况下,Navicat将一个表中的“release_year”列匹配:
您能够在“查找结果”列表中双击一个对象以查看记录或结构。它将突出显示:
搜索数据
试图在没有搜索工具的状况下在整个数据库中查找给定值几乎是不值得的。在Navicat中,咱们须要作的就是与上述相同的过程,除了如今咱们将从“查找”下拉菜单中选择“数据”。
这是从“搜索模式”下拉列表中选择“前缀”的“JOHN”的“查找内容”值的结果:
如您所见,这种更通常的搜索致使更多匹配。
再次双击“查找结果”列表中的对象,将在新选项卡中显示记录:
注意Navicat生成的查询以获取所需结果。
结论
Navicat的“在数据库/架构中查找”工具极大地方便了在整个数据库或架构中查找数据或对象结构。与information_schema模式的替代方案相比,实际上没有竞争。