Navicat使用教程:针对每个数据库开发人员工具包的更多基本SELECT查询
Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。
不久前,我们探索了一些您必须知道的SELECT查询。其中包括确定列的最低值和最高值,以及按类别对结果进行分组。今天的文章提供了更多查询,并提供了使您的查询几乎能自动编写的技巧!
获取所有用户创建的表
这些表包括用户创建的数据库的一部分,也就是说,不属于系统数据库架构的表。确切的语法因供应商而异,但是这里有一些示例可以帮助您理解。
在SQL Server中,这个简单的单行代码即可完成一下工作:
SELECT NAME FROM sys.objects WHERE TYPE='U'
MySQL的语法有点冗长,因为您必须指定系统数据库才能省略它们的表:
SELECT * from information_schema.tables WHERE table_schema not in ('information_schema', 'mysql', 'performance_schema') ORDER BY table_schema, table_name;
那么,为什么要查询用户表?除了表名之外,MySQL查询还返回有关每个表的大量有用信息,包括行数、存储引擎、它们的大小、最后一个auto_increment值等等!
如果您只想要MySQL中的表名,那很容易做到。您可以使用WHERE子句来缩小列表的范围,也可以发出以下命令:
SHOW FULL TABLES IN [database_name] WHERE TABLE_TYPE LIKE 'BASE TABLE';
获取所有视图名称
同样,确切的语法因供应商而异,但是有一些示例将提供一个很好的起点。
这是SQL Server语法:
SELECT * FROM sys.views
在MySQL中,我们可以通过将TABLE_TYPE限制为“VIEW”来缩小列表的范围。我们仍然必须排除sys数据库,因为它包含许多视图:
SELECT * FROM information_schema.`TABLES` WHERE TABLE_TYPE = 'VIEW' AND table_schema != 'sys';
这是Navicat Premium的结果:
寻找特定数据库的视图?您可以将WHERE子句更改为:
AND TABLE_SCHEMA LIKE '[database_name]'
以下命令也将起作用:
SHOW FULL TABLES IN [database_name] WHERE TABLE_TYPE LIKE 'VIEW';
这将返回视图名称及其类型,该名称始终为“view”:
一般技巧:使用表别名
编写SQL查询和科学都是一门艺术。您可以养成一些良好的习惯,这些习惯可以提高工作效率或简化写作。例如,表(或SQL)别名用于为表或表中的列提供一个临时名称,该临时名称仅在查询期间存在。可以使用别名来使列名更易读且更不易出错。
您需要做的就是在FROM子句中的表名之后包含“AS [alias_name]”:
SELECT column_name(s) FROM table_name AS alias_name;
当您使用查询编辑器(如Navicat的查询编辑器)时,别名确实可以保留。假设我们要从参与者表中选择一些字段。首先,我们将列列表留空,然后输入FROM子句,并附上表别名:
SELECT FROM actor as a
现在,当我们输入较短的表别名时,Navicat将显示一个具有所有表列的自动完成列表:
以这种方式编写查询不仅更快,而且可以消除列的拼写错误!
结论
在今天的文章中,我们学习了一些查询和技巧,使我们的SELECT几乎可以使用Navicat Premium作为数据库客户端来编写自己。Navicat通过获取关键字建议并从编码中去除重复内容,来帮助您通过代码完成和可自定义的代码片段快速进行编码。您可以获取Navicat Premium正式版进行评估!
相关内容推荐:
Navicat使用教程:如何使用SQL CASE语句来测试条件和离散值
想要购买Navicat Premium正版授权,或了解更多产品信息请点击