![]() |
![]() |
我们在学习数据库编程的时候,一定绕不开SQL语言的学习,这其中select 语句是SQL语言的精华,也是我们学习的重点、难点。 初学者往往会有这样的疑问:数据库是如何执行我们的select 语句的?我们的数据表有好多数据,使用“select * from 表格名”可以把数据全部显示出来,为什么使用了count(*)之后显示的只有一个结果?可不可以在显示count(*)结果的同时把数据表原先字段也显示出来? 本期视频,就从这些问题开始,按照数据库执行我们的select 语句的步骤,一个步骤一个步骤的讲解,每个一步骤,我会告诉你数据库是怎么做的、会生成什么样的结果,同时在SQLite和MySQL两个数据库上为大家实际操作演示,直到显示出最后的结果,让你真正明白数据库执行select 语句的整个过程! 视频讲解主要内容: 1、数据库执行select 语句各子句的步骤次序; 2、每一个步骤数据库都干了什么、形成什么结果; 3、数据库执行select查询,分为分组查询和非分组查询,这两种查询到底存在什么样的差别; 4、聚合函数计算原理,其中包括聚合函数的应用条件以及字段有效性问题; 5、group by多级分组查询。 |
![]() ![]() 视频时长:57分16秒。提供两个片段免费试看,感觉对你有用再点击购买。付款后,我把正式版下载网址发给你,购买完成!软件类产品,一经售出不退不换! 视频教程已下架,无法下载试看片段! 教程更正:在对分组查询模式下的字段有效性讲解中,原讲解为:MySQL 对语法要求严格,Select、Having 子句中不能直接使用分组依据字段之外的其它字段,否则 MySQL 直接报语法错误。该表述不准确,现补充更正如下: 在分组查询模式下,Having 子句和Select子句中可以直接使用的字段为: 1、Group By 分组所依据的字段。 2、聚合函数运算结果。 3、与分组不存在依赖关系的数据显示(如:“create table sc(sno int, cno int)”“ select sno, 5+6 as x from sc group by sno”,这个x值返回5+6的计算结果11,与分组无关,语句可以执行)。 4、Group By 分组所依据的字段是数据表的主键或是具有唯一性约束的字段,这时候数据库猜测其它字段与该分组字段直接相关也具有唯一性,允许你使用其它字段。这时候,数据的准确性、可靠性就必须由数据库使用者自己来作出保证了!!!比如一个包含人员信息的表中,其中包括两个字段:UserID、UserName(这时候就先别说数据库范式规则了),UserID是主键,以UserID分组,也就是以一个人的数据为一个分组,那么这个分组内所有数据的UserName肯定是相同的,这个时候可以考虑在以UserID分组情况下同时查询显示UserName值。作为程序员,必须有意识地保持自己对数据准确性近乎苛刻的严谨态度,强烈建议慎用这种方式!!! MySQL在5.7版本之前,对此要求不严格,可以直接查询这些无效字段。在5.7版本之后,语法开始严格化,对于以上四种情况之外,无效字段不允许查询。但为了兼容,引入了ONLY_FULL_GROUP_BY 模式开关,并默认开启该模式开关,在ONLY_FULL_GROUP_BY下对查询的字段严格限制。如果用户需要解除MySQL对查询字段的限制,可以强制关闭ONLY_FULL_GROUP_BY 模式。 |
该视频教程已下架! |
本页面地址: http://gptcn.top/Select.html |