SQL通过SELECT *(SELECT ALL)子句使选择表中的所有字段变得非常简单。不幸的是,一旦您从列表中删除了一列,SELECT ALL语句就会消失。写出每个列的名称很快就会变得乏味,尤其是当您碰巧要处理包含许多列的表时。如果我们可以选择除一列之外的每一列——通过排除而不是包含进行选择,那会怎么样呢以办到。实际上,有两种方法可以做到这一点——一种简单,另一种稍微简单一些。
在第二种方法中,将使用Navicat的数据库工具Navicat for MySQL。Navicat for MySQL是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库兼容。
Navicat for MySQL正式版
下面将详细介绍两种方法:
方法1:使用INFORMATION_SCHEMA.COLUMNS表
INFORMATION_SCHEMA提供对数据库元数据、有关MySQL服务器的信息(例如数据库或表的名称、列的数据类型或访问权限)的访问。更具体地说,COLUMNS表提供有关表中列的信息,包括列名。
Sakila示例数据库的film表中包含的列数最多为13。

这是我们使用INFORMATION_SCHEMA.COLUMNS表来获取除original_language_id列以外的所有列的方式:

GROUP_CONCAT函数将所有列名称连接到一个逗 分隔的字符串中。然后,我们可以将字段替换为空字符串!
执行查询
要克服的一个小障碍是MySQL查询不能接受动态列名。解决方案是采用准备好的声明。下面是设置@sql变量、准备语句并执行的代码:
在查询中插入列、表和模式信息会产生我们想要的结果:

方法2:使用Navicat
在查询生成器中,表名称旁边有一个复选框,用于选择其所有列。如果单击它,则可以简单地取消选中original_language_id字段以将其从列列表中删除:


与手工编写代码相比,使用查询生成器创建查询具有一些优势:
- 它最大程度地减少输入错误
- 它生成易于阅读的格式化SQL
结论
在今天的文章中,我们学习了几种技术来选择表中的每一列,但只能选择一两个。感兴趣的朋友可以下载Navicat for MySQL试用版免费评估~目前正处于疫情期间,大家出门复工要注意戴口罩哦!
相关内容推荐:
Navicat 使用教程>>>
想要购买Navicat for MySQL正版授权,或了解更多产品信息请点击【咨询在线客服】
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!