SQL的必要性及应用原理
2021-01-08 10:59:41 阅读(173) 评论(0)
我已经很久没写东西了。就在小组里,一些童鞋最近不得不换工作。当谈到数据库时,我认为没有必要理解数据库开发。您只需从相应的数据库中调用您需要的数据。至于数据库设计、开发等相关安全事务,这是数据库工程师的问题,您可以通过数据分析了解SQL语言。当然,没有人会认为自己知识多,掌握的东西越多,对自己的发展越有利。俗话说,“巧妇难为无米之炊”,没有数据怎么分析。SQL对你来说就像电脑的键盘鼠标。虽然没有它可以像往常一样运行,但对于使用它的人来说,灵活性下降了很多。这正是许多数据分析从业者所缺乏的(包括我)。我记得白鸦在他的博客上很少发表数据分析师的评论。无论数据分析师在哪个团队中,其作用都是类似的功能,如统计和调查、数据挖掘、可行性和战略分析。为什么真正的数据分析师或能够满足企业期望要求的数据分析师很少。满足企业要求的数据分析师很少。主要原因之一是学习统计学的人不知道数据库,而学习计算机的人不知道建模和分析。SQL使数据采集过程更加方便快捷。这里的便利性和快速性可以从两个方面体现出来。1.在分析数据时,你不必要求其他同事直接指导你需要的数据,而不是从其他人那里接收数据,例如.xls或.csv等数据文档;2.方便快捷地清理自己需要的原始数据,例如,您需要的是每月销售前20名的产品相关数据。此时,您可以直接从数据库中导出数据来完成数据筛选过程,而不是愚蠢地导出所有产品的销售数据,然后进行二次处理。关于如何使用SPSS从数据库中选择所需的数据,请参见Syntax代码之旅。关于如何使用SPSS从数据库中选择所需的数据,请参见Syntax代码之旅。此外,相关的SQL语句,如数据透视表的应用,也涉及到EXCEL的多表操作。SQL查询相关提示·使用AND时,将真实条件放在前面的数据库系统中,遵循操作符的优先级,操作过程从左到右。如果条件不是真的放在前面,可以节省AND后面的相关操作,从而降低数据库系统的操作量,提高工作效率。·使用OR操作符时,最有可能的真实条件与上述And原理相似。And操作符要求双方的条件都是真实的,整个条件都是真实的,或者只需要一边是真实的。将条件放在前面,可以节省时间,提高工作效率,而无需检查右侧的条件。·distinct比groupby更快。distinct和groupby通常将结果限制为唯一的记录行。distinct在处理此类问题时往往比groupby更快。·限制联合结果从数据库中提取的信息越少,速度就越快。除了满足自己的需求外,另一个原因是加快处理查询速度。e.g:selectvar1,var2fromtable1inerjointable2ontable1.id=table2.idwherecondition;·在子查询过程中,使用select语句往往会使数据库系统考虑更多的事情,从而降低工作效率。相比之下,使用in运算符可以有效地解决这个问题。e.g:在下面的子查询中,第一句将比第二句更有效,selectvar1,var2fromtable1wherevar1in(selectvar1fromtable2wherecondition);selectvar1,var2fromtable1wherevar1=wherecondition);·尽量避免使用select*from指定的列,这样你就可以清楚地了解你需要收集的变量。使用select*from不仅效率低下,而且不利于您的后续分析,所以对于select*from是可以避免的,尽量避免。·搜索整数类型列主要针对字符变量的查询。如果对应的字符变量有相应的编码对应,直接将编码设置为查询条件将比直接查询字符变量更快。同一SQL语句在数据采集中常用的SQL语句在不同的数据库中使用时会有轻微的差异,如对字符变量的要求、相关函数的变化、语法规则的不同等。例如,在oracle数据库中命名字段时,不需要as字符,也不需要month()。year()等待时间函数等,在access数据库中使用innerjoin执行内部联合时,需要使用()。当然,有很多细微的差异,你可以自己找到总结。以下示例以SQLSERVER为基础。提取非重复数据selectdistinctvar1fromtableName;2.在一定时间内抽取数据selectvar1,var2from数据表where字段名between时间1an时间2;3.连接多个变量select“123” cast(456asvarchar);select‘123’ cast(456asvarchar) ’789′;4.用SQL语句找出表名为Table1的Name字段在ID字段1-200条记录中包含w的所有记录Select*fromTable1wheredbetwen1and200andNamelike‘%w%’;5.找出拥有10多个客户的区域列表selectcountryfromtestgroupbycountryhavingcount(customerId)>10;6.关于取出各部门工资最高的前三人,select*fromtabletwhere工资in(selecttop3工资fromtablewhere部门=t.部门orderby工资desc);7.表a和b两个结构完全相同,使用SQL语句的主键是index,在b表中插入insertintobselecttte,存在于a表中但不存在于b表中的数据*fromawherenotexists(select*frombwhere“index”=a.”index”);8.从一个数据库中的多个数据表中提取相关变量Selectable1.var1,table2.var2,table2.var3,Fromtable1inerjointable2ontabel1.var1=table2.var1innerjointable3ontabel1.var2=table3.var2(orderby……)
推荐阅读
猜你喜欢
最新文章
扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121
关注微信公众号
和10万中小企业共同成长
扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有 蜀ICP备12001963号-2 川公网安备 51010402000322号
快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
免费查找信息保护中请放心填写-
-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP
企业首选的数字选用平台