{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

都说自学SQL数据库难,是真的吗?

figofuturefigofuture 回答0 收藏1
收藏问题

10条回答

Airy

Airy

回答于2022-06-28 13:42

我个人之前就是自学数据库,结合自身经验告诉你,自学SQL语言的使用比较简单,但是如果自学数据库底层实现原理,这个难度就非常高,尤其是对于初学者来说。

SQL语言作为操作数据库以及数仓开发使用,SQL语言学习和使用难度不大

SQL语言,全称为结构化查询语言,你在开发大型项目中,一般都会使用到关系型数据库来存储数据,比如网站用户的注册信息、店铺的订单信息等等,如果数据量不大,可以选择使用Mysql数据库。此时你就需要使用SQL对数据库表进行查找、更新、删除、插入操作,这些操作最底层都需要SQL语言来操作执行。

SQL语言由于不像其他编程语言那么复杂,它只有少部分的语法,所以对于新人来说,SQL语言是非常好学的。常用的SQL语句有 Select、Update、Delete、Insert、Alter这五种语法。你也可以在SQL语言中编写存储过程以及函数等,新人不需要具体的编程去写代码,写SQL比写代码要更加容易。

数据库底层原理涉及很多方面的技术知识点,自学很难学会

我之前自学过MySQL底层的原理,自己也买了两本书籍去自学,比如Mysql内存中LRU缓存如何实现的,内存如何使用的。MySql到底如何实现事务的,Redo日志和Undo日志分别作用是干什么的,Mysql的各部分存储引擎的优缺点等等。这些知识点新手去自学,的确会比较困难。

同时,数据库底层原理的学习光看书也是远远不够的,但日常我们又很难接触到数据库底层的项目,没有项目实践,数据库原理层肯定很难掌握。而Mysql数据库的源码层又是C语言写的,说实话看源码有时候看的也云里雾里的,有些地方也实在很难看懂,所以新人自学数据库底层原理,真的会很难。不建议一上来就去学习数据库底层原理。

个人建议

新人在学习SQL语言时,可以去网上下载SQL语言学习的书籍,同时结合着网上SQL视频教程来学习会比较好,有人教你,有些不好掌握的地方,能够更清晰的去认识。你最好跟着视频里面的教程亲自动手实践,这样对于你的学习会有更多的帮助。


我是Lake,专注大数据技术原理、人工智能、数据库技术、程序员经验分享,如果我的问答对你有帮助的话,希望你能点赞关注我,感谢。

我会持续大数据、数据库方面的内容,如果你有任何问题,也欢迎关注私信我,我会认真解答每一个问题。期待您的关注

评论0 赞同0
  •  加载中...
leo108

leo108

回答于2022-06-28 13:42

谢谢邀请!

如果是学习SQL数据库(关系型)如何使用,那么难度并不高,原因有以下几点:

第一:关系型数据库理论严谨清晰。关系型数据库经过多年的发展,有一套严谨的数学理论作为基础,所以关系型数据库结构非常清晰且逻辑性很强,学习的过程可以依次递进,连贯性很高。

第二:关系型数据库以表格为基础进行各种操作。关系型数据库以数据表格为基础概念展开一系列操作,包括建库、建表、创建存储过程等,这些操作本身具有非常强的规则性,掌握起来并不困难。在学习数据库的过程中,存储过程、隔离、事务处理等相关内容还是有一定难度的,但是也并不是很难,通过大量的实验完全可以掌握。

第三:SQL语言以简洁易用著称。相比于Java、Python等编程语言来说,SQL语言就要简单易用多了,SQL语言基本语法非常清晰,另外SQL语言的操作边界并不会突破数据库管理系统,所以SQL语言本身还是比较好掌握的,前提是多做实验。

在学习SQL数据库的过程中,一定要结合大量的实验,因为数据库操作本身涉及到大量的存取操作,只有熟练这些实际操作过程才能熟悉SQL数据库的使用。

学习SQL数据库首先要选择一款数据库产品,推荐使用MySQL数据库,一方面MySQL数据库有广泛的使用,另一方面MySQL数据库安装方便,对于初学者来说,学习MySQL是一个不错的选择。

学习MySQL数据库是完全可以自学的,而且实验也比较容易做。很多程序员都是通过自学掌握MySQL数据库使用的。

我从事软件开发工作多年,目前也在带软件开发团队,我会陆续在头条写一些关于软件开发方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有软件开发方面的问题,也可以咨询我,谢谢!

评论0 赞同0
  •  加载中...
Scliang

Scliang

回答于2022-06-28 13:42

只要有兴趣,一点也不难,就算一天只学并掌握两个命令,一个月就差不多就上中等水平了。兴趣是第一原动力

评论0 赞同0
  •  加载中...
zr_hebo

zr_hebo

回答于2022-06-28 13:42

这个问题无法简单的用是或不是来回答。

最核心的,要考虑应用SQL和数据的场景是什么。比如您是学习SQL和数据库为了工作,还是仅仅是学习而不用来做事情。

为了工作而学习SQL和数据库,没有学不好的

如果您为了工作需要而学习SQL和数据库,想要不学好都难,因为您不学好工作就丢了,您要面对的首要问题是学什么、如何学的问题,这时候难不难已经不重要了,学会并用来干活才是第一要务。

如果为了工作需要,那要看您工作上用的数据库是那种数据库,虽然不同数据库之间的SQL语句绝大多数情况下是相通的,但不同的数据库系统对SQL的支持还是有差别的。比如Oracle和MySQL使用的PL/SQL,SQLServer使用的T-SQL,虽然都说自己兼容ANSI-SQL,但毕竟还是有些差别的。

明确了工作要用的数据库,接下来就是学习方法问题了。我下面就以SQLServer为例,说一下怎样可以快速入门。

首先,您要尽快熟悉SQLServer的管理器。老版的SQLServer2000中,管理器分两个,一个叫做企业管理器、一个叫做查询分析器,通俗来说,企业管理器是傻瓜化的管理界面,主要用来创建数据库、创建表、备份数据库等,查询分析器主要用来写SQL脚本;从2000之后,企业管理器和查询分析器就整合一起了,名字叫做Microsoft SQL Sever Management Studio,简称MSSMS,您可以看作是整合了傻瓜界面和SQL脚本。熟悉了工具,您干活才有基础。

其次,您要尽快掌握SQLServer管理器的常用操作。平时我们在MSSMS中常用的操作,主要包括创建数据库、创建表、备份数据库、还原数据库,这些虽然可以通过SQL脚本实现,但通过图形界面会更直观,还包括诸如导出表数据、导入外部Excel数据等,都要尽快掌握。这些操作平时经常用。

最后,您要尽快掌握基本的SQL语法,并在以后的工作中尽快提高自己的SQL水平。常用的SQL语法,无外乎查询、插入、更新、删除等,相关的语法都比较简单,但要结合工作需要实现各种个性化需求就不太容易了。在工作中不停的解决各种实际问题,您的SQL水平自然就会越来越高啦。

为了只是储备而学习SQL和数据库,不下功夫很难学好

俗话说学以致用,如果您不是为了眼下的工作学习SQL和数据库,想要学好确实不容易。SQL语法是很枯燥的,没有具体的场景结合,根本很难深入进去。

所以,如果为了知识储备学习SQL和数据库,最重要,您要自己创造一个场景,有了场景,才会有深入学习的兴趣。您可以着重以下几点:

首先,选择最有前途的数据库系统。ANSI-SQL虽然是标准的,但没有数据库系统的支撑,您写了SQL也无法验证成果,何谈学习的兴趣呢。建议您选择最有前途的数据库系统,我推荐首选PostgreSQL,pgSQL号称全世界最先进的开源数据库系统,没有任何商业应用限制、生命力极其旺盛、运行稳定坚若磐石、完美支持各种标准SQL语法、对JSON的支持是所有传统关系型数据库系统中最好的。推荐一个太单调,您也可以选择SQLServer、MySQL等,其实Oracle和MySQL本人并不推荐,MySQL已经被Oracle收购了而且快要玩儿坏了,对这种钻到钱眼儿里面的,联想一下目前美国的各种作为,指不定哪天给你一下子。

其次,创建一个完整的应用场景。没有场景是没办法提起兴趣的,没有场景可以创建场景,如何创建呢?最简单的,如果您是大学生,就搞一个完整的学生学籍应用场景;如果您是已经参加工作的刚好从事IT行业,可以根据行业潜在的应用需求模拟一个完整的应用场景。总之结合自己的职业和特长来做,这样您才能充分考虑您使用数据库要表达的都包含那些。

最后,通过SQL完整实现场景的各种应用需求。这才是正事儿。首先您要设计要完整表达场景,都需要建什么表、表之间都有那些关联关系、实现各种查询应该如何创建合理的视图、实现各种业务处理需要创建什么样的存储过程。场景模拟完了,您基本也把大部分SQL语法都用到了,自然而然就搞懂了数据库和SQL。

程序开发人员要与自己的程序实现融合

如果您是程序开发人员,学习数据库不要单纯学习数据库和SQL语句,而是要尽快与自己常用的编程环境融合起来。

比如您是Delphi、CC++或Java开发工程师,您选择了数据库之后,首要考虑的就是如何通过程序连接数据库、通过程序操控数据库。程序连接数据库的常见方式一般是ODBC,但常见的编程语言与常见的数据库之间,都会有独有的数据库驱动,您首要掌握的,就是如何使用数据库驱动。

大多的编程环境都会提供数据库连接和操控组件。比如Delphi中,就提供了ADO、FireDAC、UniDAC等多种连接方式,您要选择风头正盛的连接方式,比如ADO已经开始过时了,您可以选择FireDAC,掌握了连接方式和操控方式,您再把重点放在SQL脚本的各种语法处理上。

总之,学以致用才是学习的动力,如果您有明确的应用场景和目标,想要学好SQL和数据库一点都不难,您说呢?

评论0 赞同0
  •  加载中...
joywek

joywek

回答于2022-06-28 13:42

如果单指SQL脚本应用,这个都难的话,高中水平估计都不到!如果指的是对数据库进行性能优化、性能监控、空间及内存管理、BUG追踪等运维性的工作话,确实要花比较多时间与精力学习和实践。

评论0 赞同0
  •  加载中...
JinB

JinB

回答于2022-06-28 13:42

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

作为一个做了17年的资深数据库管理员,我可以很肯定的跟你说,自学SQL数据库不难。现在主流的大型数据库oracle,mssql,mysql 用的都是标准的SQL语言。oracle是最规范的,mssql是包容性最大的。先学习mssql相信你最容易入门。买一本mssql的入门书籍,对着书本看看mssql是如何安装的,安装好之后。先了解一下mssql的企业管理器的各项功能是什么,如何建立数据库,建表。再学习最基础的insert,delete,update,select语法,就是所谓的增删改查,这样基本就可以叫入门了。如果只是兴趣爱好的话,到这步也就差不多了。

但是如果是工作需求的话,那就还有更深入地需要研究学习。利用学过的知识去建立视图,存储过程,函数,数据库维护等等其它功能。我以前参加工作之前也是自己买了几本入门的书,学习一段时间就基本熟练了,但是参加具体工作之后才发觉数据库这东西是入门容易精通难,实际遇到的问题太多了,一个功能用两种不同的语法去实现,也会有不同的效果,确实需要实际经验的了。

评论0 赞同0
  •  加载中...
LeanCloud

LeanCloud

回答于2022-06-28 13:42

跟编程语言一样,SQL非常考验人的逻辑思维能力。编写SQL就相当于编写逻辑运算式,要将你要做的事翻译成SQL的关键字并正确地组合。SQL的关键字都有其确切的含义。如:and就是且的意思,or就是或的意思,where其实是如果的意思,括号()其实是表示先运算,from顾名思义是从、来源的意思,select顾名思义就是查询的意思。如SQL语句:select * from emp where age>60 or age<16;这句SQL的意思就是:从emp表查询数据,每行数据如果age大于60或者age小于16则把这行查询出来。写代码就是将自己要做的事翻译成代码,首先要会翻译,其次要会设计,设计就必须要会动脑筋了,要自己想出解决问题的方案了。

评论0 赞同0
  •  加载中...
focusj

focusj

回答于2022-06-28 13:42

应该说任何编程语言自学都难

首先,自学属于粗放式学习

你没有目标性,对于所学的知识仅限于记住了,不知道未来这个知识点有什么用途。就像我最近在学Python ,一些比较基的知识点学了忘忘了继续学,连续几遍还是容易忘。因为我没有去实战训练。

其次,自学很难系统性的面面俱到

我们学习老师总是给我们讲解各类知识点的作用,而能够系统性梳理这些知识点很难,你得完全理解各个知识点之间的内在联系。就比如SQL ,分为基础语法部分的增删改查,进阶部分涉及到复杂点的逻辑功能实现,再高级点对语句的性能优化。而这些只是针对SQL 开发而言,还有与之对应的数据库管理那就又是一个体系了。

而想将这些知识全部梳理清楚,没有一个时间的沉淀是做不到的。

最后,学习一门语言还是要多动手

好些自学的都只是跟着别人敲一遍代码就以为是动手了,殊不知真正的动手是离开了教程自己去找训练习题,自己查找解决办法。不仅仅要解决问题,还要解决为什么要这么解。

以上不只针对SQL ,任何自学编程我觉得均是如此。

评论0 赞同0
  •  加载中...
tinna

tinna

回答于2022-06-28 13:42

互联网技术学习任何一门基本都是学会不难,难了不会!

学习技术的话,最好先根据网络上的视频去学习,也就是别人带着学可以避免很多坑。

跟着视频学的话,网络上的基本都是偏基础的,学了之后基本也就是可以用,简单的增删改查,安装,卸载什么的,如果想深入的学习,还是需要看书籍,推荐《高性能MySQL第三版》 人称数据库红皮书,很不错,等会了增删改查,建议仔细的看一下这本书!

评论0 赞同0
  •  加载中...
YFan

YFan

回答于2022-06-28 13:42

首先,你说的SQL数据库应该是两个东西。

SQL是指搜索查询语言,是一种数据查询语言,可以用来编程,并查询数据库系统中的结果。

而数据库是指数据库系统,用来存储数据。给SQL返回数据。

SQL并不难学,有点计算机基础,一个星期即可入门。网上有SQL完整教程。

数据库系统就稍微难一点,需要懂比较底层的东西,如操作系统,算法,数据结构。还要学会怎么优化它,更快响应查询速度。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<