美文网首页MySQL最佳实践
select为什么不能用*

select为什么不能用*

作者: 翁正存 | 来源:发表于2018-09-04 19:34 被阅读231次

CREATE TABLE `employees` (

  `employeeNumber` int(11) NOT NULL,

  `lastName` varchar(50) NOT NULL,

  `firstName` varchar(50) NOT NULL,

  `extension` varchar(10) NOT NULL,

  `email` varchar(100) NOT NULL,

  `officeCode` varchar(10) NOT NULL,

  `reportsTo` int(11) DEFAULT NULL,

  `jobTitle` varchar(50) NOT NULL,

  PRIMARY KEY (`employeeNumber`),

  KEY `reportsTo` (`reportsTo`),

  KEY `officeCode` (`officeCode`),

  CONSTRAINT `employees_ibfk_1` FOREIGN KEY (`reportsTo`) REFERENCES `employees` (`employeeNumber`),

  CONSTRAINT `employees_ibfk_2` FOREIGN KEY (`officeCode`) REFERENCES `offices` (`officeCode`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

现在,我们有一个employees表,需要从employees表查全部字段信息,在生产环境,一定不要使用  SELECT * FROM employees;

而要罗列出所有要查询的字段,原因如下:

1.使用*会返回所有的字段,而有些字段你可能不会使用,这样就造成磁盘I/O和网络带宽的浪费。

2.明确罗列返回的字段,使查询结果可控、可维护,如果别的兄弟改了表结构,比如,加了几个字段,*返回的结果可能就不是你想要的结果了。

3.使用*会返回所有字段的信息,万一有些字段包含敏感信息,就可能造成敏感信息泄露给未授权的用户。

相关文章

  • select为什么不能用*

    CREATE TABLE `employees` ( `employeeNumber` int(11) NOT ...

  • 2022-03-29 select切换用on-select事件

    这种情况不能用on-change事件,否则修改附不上值,或者赋值,不能切换初始数据,所以只能用on-select ...

  • select与switch的区别

    No.1 Select: select只能用于channel的操作,发送或接受数据,如果select有多个分支满足...

  • If...Else

    判断语句。不能用在SELECT中,只能用在块结构中,例:IF (判断条件) BEGIN ...(代码块) END ...

  • 查询结果排序

    1,数据来代替列位置只能用于order by 字句中,其他地方不能用SQL> SELECT EMPNO,ENAM...

  • 感谢诗和远方

    如果能用凝炼的语言 表达丰富的情感 为什么不呢? 直抒胸臆 如果能用悠扬的韵脚 和出雅致的诗篇 为什么不呢? 美的...

  • WHERE和HAVING的区别

    1、处于的语句不一样 WHERE可以用于增删改查,但是HAVING只能用于SELECT。 2、HAVING只能用于...

  • 查询下级和下下级

    我们推荐使用sqlalchemy,而不是flask-sqlalchemy 复杂查询还是要用select拼接,不能用...

  • 8-3(selenium-select、alert)

    select 使用条件: 当表标签名时select,选项标签是option才能用 第一种方法:先展开再点击 第二种...

  • 图解Go select语句原理

    Go 的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的;当select...

网友评论

    本文标题:select为什么不能用*

    本文链接:https://www.haomeiwen.com/subject/uienwftx.html