
1、自己在windows和linux上安装了mysql,自学linux的基础知识,学习mysql的最基础的知识,即怎么写sql,存储过程,表的设计等,从0到熟悉大概花了3个月,推荐《mysql入门很简单》。
2、系统地较为深入地学习mysql的sql优化,备份和恢复,参数优化,架构优化,硬件层面的优化,高可用方案,复制技术等等,这段时间你不一定能实际接触到这些,就像我当初那样,肯定没什么公司招一个小白。
我选择自己看书,推荐《高性能mysql》,里面所有的章节都需要看一遍,以现在的水平肯定看不懂,但需要知道大概怎么回事,为后续的找mysql初级dba的工作打一个铺垫,这个过程大概也需要3个月。
3、纸上得来终觉浅,完成以上两步,我开始准备找一份mysql相关的工作,而不是天天用着excel表格做着selectfromtable_sb这样的工作。
当然我这么猥琐的人肯定不会裸辞,该画的电路板也一样画,业余时间开始投初级mysqldba的工作,并且不间断地学习,网上各种找mysql面试的相关题目(实际上我当时完全没有任何实战经验),陆续收到一些面试,凭借之前自学的mysql知识,开始胡乱吹牛逼,先混进去再说。
你不做mysql实际相关的工作,永远也不知道自己之前认知的db知识有多幼稚。
友情提示一点,一般公司都没有专职dba的,所以面试的时候一定要自信,其实你学了这么多,虽然毫无实战经验,理论知识很大概率比面试你的人牛逼,所以各种吹,我就这样真正进入初级dba的圈子(由于这时对linux还处于cdls的水平,所以之前也根本没做过运维),这个边工作边找工作的过程又持续了2个月。
4、真正进入互联网,接触生产环境后,这是我进步最大的时候。
第一步需要将之前所学真正地应用起来,并且应用的过程中,再回头看之前的书籍,这时候需要真正去理解,而不是似是而非,一知半解。
这时再推荐《高性能mysql第三版》,全本再看一遍,这时需要全部看懂,另外还有《mysql技术内幕:innodb存储引擎》等等。
总之这段时间就需要开始关注mysql一些细节了,比如db故障处理,高可用,负载均衡等等的具体实现了。
另外,linux的知识同步也要深入去学习,至少会写shell脚本,常见的linux知识等,我在这花了1年多;
5、dba的工作一般是非常轻闲的,毕竟不是大公司,技术能力有限,该学的也学得差不多了,接触不到海量数据,高并发等比较锻炼人的场合,于是我又准备跳了。
于是来了公有云,现在每天运维万多个db实例,平均每天处理5个紧急db故障,几乎mysql会遇到的问题,感觉都遇到了,能感觉到技术实力和经验也在每天都在积累,在进步。
但是感觉还是欠缺了很多,下一步就看你选择了,是再去研究源代码,底层原理的东西多点,还是数据库运维和应用多一点,就比如业界姜承尧,何登成与叶金荣的区别。
由于我的历史原因,对c等几乎不懂,平时也用不到,所以看代码等事实际太累,于是我再去学mongodb,接了公司mongodb运维的活,算是在广度上的一个扩展,万一哪天mysql不行了呢
6、总之,对于db小白来说,最重要的一点就是,学习的过程不能断。
PS上面的方法比较野路子,适合没什么基础的童鞋,如果本来就是DBA,比如从oracle转到mysql,那么建议直接看mysql官方文档,而官方文档是db达到一定水平后必看,出问题时必查的权威文档。
我建议先学access,我也从没接触过数据库,前不久,我参考网上的资料,很轻易地就建了一个本单位教师工资数据库,有职工基本情况表,工资变动登记表子表,年度考核表子表,职称变动登记表子表,采用关系一对多,关键字用姓名。
其它数据库我没接触过,不过要学好数据库,最好还要学会编程。
access虽然也可以编程,但它还是一个傻瓜式软件,易上手,学会数据库的基本结构,数据库关系后再学其它数据库软件,我想会容易一些。
如果你有基础可以按楼上大虾说的做,我个人认为如果基础不是很好还是从简单的学起吧。比如Visual FoxPro60现在还有80版本,VFP用起来比较简单,对初学者了解数据库有一定帮助;还有就是Office软件里的Access,这个数据库软件也很好用,而且保持微软一贯的人性化风格许多地方一看就明白了
数据库技术应该电脑技术比较核心的一种,不仅 *** 作系统,而且数据存储都要用的。
学习数据库可以自己参与到一个项目,或者去实际 *** 作数据库,这样提高的快些。
目前来说,桌面的小型数据库有foxpro不错,用的最多的是sql
server2000,大型的有oracle等等。
推荐你可以学习sql
server2000,比较简单。
编程是一门说难就难,说简单就简单的东西,如果要问从什么入手,我觉的还是先学[c语言],先要对如何编程有一个概念,然后学习数据库,可以学学[assecc]或是[sql],这两个都是简单的数据库,在后面学[html]和[asp](里面可以理解的去学习[vbscript]和[javascript]两个脚本语言),有了这几门语言做基础,就可以学习难一点的东西了。学习c++的面向对象概念,当自己认为对面向对象里面的三大特性{派生类与继承;多态性;(第3个有点忘记,好象是封装,或者是把派生和继承分开,总之3大特性)}掌握的能够在自己编程的时候能够理解能够灵活运用就可以学习[java]了,可能你原来听说过[java],[c++]是简单的面向对象,[java]就好象是[c++]和[c语言]的综合,[java]是基本上全部面向对象概念,但里面的编程结构:如--循环;判断则是c语言的机制。
最后说一句:“加油~~~~!!!
编程语言很多种分类,取决于你想搞的方向。譬如 两个经典的方向分为 微软的 net 方向 和 Sun的Java方向。Sun已经被IBM收购现在。
Java非常擅长开发 大型的web 应用。而C#可以开发web 也可以开发 普通的windows上的软件。一般这两个方向都需要数据库服务器。涉及到 数据的存储。
学习数据库 最好学过某种语言 ,数据库单纯 的应用 也行 ,譬如 你到一个以数据为中心的企业,例如 呼叫中心 可以做一名出色的管理员。
如果 学过一门语言,一般来说 就业前景比较广泛。毕竟现在的软件 web 开发 项目多。这些项目一般都需要数据库支持。
软件开发 也可以走向其他的方向。比如C++的游戏开发等等。
net 配合SqlServer数据库比较多 ,但是Java 比较倾向 Oracle和MySQL数据库。
两种也可以相互使用数据库 。不是绝对的。
要说数据库,一般以SQL Server作为入门的学科,它适合中小型项目开发,而现在比较流行于大型开发的有:\x0d\Oracle\x0d\现在具有企业大型软件的绝对占有率\x0d\DB2 在以IBM服务的公司以及单位(中国银行)\x0d\MySql 相对不是很正式的开发,使用MySql\x0d\当然还有一些:Access(桌面数据库),FoxPro(中国教育),Informix的数据库系统\x0d\刚开始入门的时候可以找点视频教程来学习,视频教程一般讲得比较好,但不要企图于通过它达到比较高的水平。然后要学会将自己所知道的去实践,多实践。当觉得实践到一定程度而没有什么冲劲了,就去学习理论,当觉得理论知识需要发挥的时候就去实践,时间的周期不一定,没有什么定论,但自己的时间安排需要定论就可以了。\x0d\我一直都认为在计算机行业要学会一门技术太简单了,但如果要把技术发挥到一定程度就有难处了,一定程度是什么意思,就是把技术如何发挥到具体的业务之中,会动脑筋去思考,而把技术作为相对次要的东西了。\x0d\数据库的DBA人员需要兼有系统分析员和运筹学的业务素质。在技术上讲,我个人认为数据库的前续学科是“数据结构”。\x0d\我现在刚学SQL Server一段时间,就自己的感想谈谈:\x0d\1数据库是非常快的数据处理程序,其内在的本质依旧是"文件"因为\x0d\Windows *** 作系统管理机制就有:磁盘、文件、目录。Linux的方式只有文件。所以数据库重本质的角度来说是一种平台软件,是将文件翻译成逻辑语言的软件,成为我们软件程序数据交换的中心,为什么那,一个很重要的原因就是“快”,还有就是“安全”、“集成”等等。因为以前的语言程序要处理数据要编写大量算法十分麻烦而且很容易出错等等。大家就想到集成了。。。。。\x0d\2其实,要谈到 *** 作数据库,简单的就太简单了,但是数据库最难的不是 *** 作,而是在数据库的设计上。一个大型程序设计者肯定是一个数据库的高手,因为大型程序要死板地去完成它是非常困难和不理智也是不安全不稳定的,我们要充分利用自己所有的能力去挖掘其数据之间的奥秘,然后体系化数据库结构,相当于在数据库中如何层次化地建立数据结构。将需求中的矛盾事物改变成可以相互融合的。\x0d\我说的数据库 *** 作简单是指一般 *** 作,如果难的 *** 作还是有点技术的,但还是难不到那里去。下面我把我的一个小数据库程序给你看看:(下面这个程序已经建立数据库library,然后用dbo用户建立了表relatBook,并将表的第一个字段设置为“主键”PK)\x0d\该程序想说的第一点是:程序按照标准用户写入法则写入。\x0d\另外就是在执行多个 *** 作的时候每一步骤的 *** 作我们都必须为其设置错误的回滚 *** 作。所以程序前两个段落都是一样的,在插入的时候故意出现异常,看第1和第3个语句是否能成功执行。\x0d\从上面看出点什么没有,你我执行了三个 *** 作,第一个 *** 作是肯定成功的,第二个是肯定失败的,第三个跟在后面,那么你想一想第一个和第三个 *** 作能插入数据库中吗?我这个程序没有什么意义,但只是未了说明问题。\x0d\答案是:不能。\x0d\为什么不能,这是SQL所支持的“事务”外完成的,这是技术问题,没有什么的,会了大家都会。为什么要这样做那,那才是要学习的前提。你想一想如果你建立了一个地区的帐物管理系统,当一个单位向另外一个单位转帐的时候,需要执行两个 *** 作就是将一边的信息刷掉,一边的信息添加上去,而当执行一半的时候出现了某种异常中断,比如高优先级的抢占,服务器重起、停电。当时你知道有多少人在访问你的服务器,那要造成多大的数据库信息丢失,甚至于导致数据库的查询的严重失败。那么我就知道需要上面知识的支持了。\x0d\3为什么说上面的东西都很简单那,因为只要你会,那就可以了,而设计方面的东西是永远不是那么简单的,永远带有创新和追求,没有最高的境界。\x0d\就一个十分常见的问题,如何在数据库中配合好人员、角色、权限、类别、级别、可 *** 作性这几者的关系,如果是没有经验的人直接上手可能会乱来(我们最早也是这样的)。有经验的人也会设计一段时间,而且随着软件复杂性的增加,其数据库的这几者之间的复杂性就越来越复杂。所以大型软件是非常难的。就一个很简单的例子,在很多的网站中,有上百的栏目信息,而每一个栏目间又保持独立。的位置和的信息都是动态更新的。某些网站的可 *** 作性都以树型结构提供,而树型结构的子树类别和和叶子都是不重复而不错误。而且其层数都是动态的。有些人给我说可以通过前台的判定语句来执行树型结构的生成,但我问了一个问题,如果是一个邮政编码系统,有几十万个邮政编码你在前台要写多少个case语句,而且每一次要遍历一次已经生成的树,还有用前台的case语句编写出来的树型结构其二级子树全部“定死”,而且树型结构的层树也被定死。这不是完全动态级别的网站。为以后对网站的维护带来麻烦。\x0d\总之,数据库是一门入门容易却达到高手很难的学科,通过不断在失败中吸取经验,才能得到一些书籍上无法学会的东西,那才是真正的高手。也就是说,学技术是很快的,要会将技术运用于实际的业务分析,才可以成为一个自我型的DBA,而不是一个简单的程序员。
首先你要去学一些SQL 用sql语句怎么 *** 作数据的增删改查 这是数据库的最基本的 这个就的DATA 数据的 *** 作 而你说的管理软件 其实就是一个工具 用来查看你当前数据库的名字啊 大小啊 等等一些属性的 当然你也可以通过这个软件来对数据库进行一些 *** 作什么的! 比如说更改数据库的字符编码什么的! 这个管理软件主要是用来辅助的,其实完全可以不用软件 全部在命令行敲出来 ,不过这得要你很熟练运用数据和熟悉数据库的命令后才可以做到! 在这之前可以用软件来 *** 作
以上就是关于数据库应该怎么学习,零基础全部的内容,包括:数据库应该怎么学习,零基础、初学者学数据库最好先学哪个、学习数据库应该先学什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)