Java Web轻量级开发面试教程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-10 00:34:09

点击下载

作者:孟宪福,胡书敏,金华

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Java Web轻量级开发面试教程

Java Web轻量级开发面试教程试读:

前言

为什么要从诸多的Java书籍里选择这本?为什么在当前网络信息量如此大的情况下还要买这本书,而不是自己通过查阅网络资料学习?我已经会开发Java Web程序了,有没有必要买这本书?

笔者有12年的Java经验,目前是某大型公司的架构师,知道软件公司对高级程序员的实际需求;而且笔者在大公司里有过5年的技术面试经验,面试过的人数上百,所以知道毕业生和初级程序员的普遍情况。笔者更有过5年多的Java培训经验,知道如何在短时间内把有毅力、有决心,但暂时缺乏技能经验的人培养成高级程序员的方法。

我在工作和培训中接触过不少刚走出校园的大学生和工作经验少于3年的初级程序员,发现他们虽然很上进,平时都会上网查找资料学习,但普遍会走弯路,比如学了目前用不到的知识点,或者对重要的知识点了解不深,或者干脆不知道该学哪些以及学习的进阶路线,这就导致他们掌握的技能和公司的需求(主要体现在面试上)不匹配。我也见过不少人项目经验足够,能力也不差,但他们就是通不过高级程序员的面试。

在Java Web方面,笔者从事了十多年的开发和培训工作,所以对于这方面的技术点,我大致知道哪些是不学就找不到工作,也知道哪些可以推迟到成功进阶后再学,更知道哪些可以不用了解。此外,我还从培训和带领毕业生和初级程序员的实践效果中总结出了一套适用于大多数初级程序员的能少走弯路的进阶路线,以此由浅入深地构建了本书的知识体系。

大多数初级程序员都能升级到高级,只是时间问题,而本书的目的就是让大家缩短升级的时间。

第一,本书列出了在Web方面初级程序员升级到高级的必备知识点,以多数人升级时遇到的陷阱为警示,确保大家不在众多的知识点里迷失,而最终导致方向性错误。

第二,以公司对高级程序员的实际需求告诉大家必备的知识点应该怎么学。

第三,本书更从语法之外,告诉读者应该怎么从“性能调优”和“框架”的角度往更高的目标发展。

本书还从面试官的角度,在准备简历和面试方面写了一些能帮助读者的攻略,从而让读者能真正地把技能和经验转化成为金钱(升级进入好公司后钱就多了),这套攻略的实践效果是,每次我的培训班结束,总会有一批学生成功跳槽。

话说回来,“时间”还真是个大问题,我知道大家工作后一般都很忙,能给学习挤出的时间并不像上学时那样多,针对这个现状,本书只给出了常用的必需的知识点,能让大家用较短的时间代价完成到高级程序员的升级。

从内容和叙述方式来看,本书的案例和文字都是根据初级程序员的现状而原创的,尤其提到了初级程序员会忽视的技术要点。本书摒弃了大段华而不实的理论描述,这样能让大家不为无用的篇幅买单。而且,本书给出的技术描述和实践建议对于初级程序员来说,不是高深的,而是确保在当前知识储备下能看懂的。对于那些能帮助到高级程序员和架构师但现阶段帮不到初级程序员的高深知识点,本书不讲。

从案例角度来看,本书一个知识点会配置一个案例,并且每个案例都有视频教学,保证大家能通过观看视频调试出来,而且保证能从案例中学到关联的知识点。

在面试过程中,本人一定“错杀”过一些有技能但表述能力不强的候选人,不过也错误地招过一些能力偏差但会面试的候选人。本人也约谈过这些人,从而了解到一些怎样“假装自己是高级程序员”的方式,以此来提升本人的甄别水平。技术上不能弄虚作假,为了帮助技术好但不擅长面试的踏实程序员,在描述各技术点时,我参考了诸多程序员的面试经验,尽可能多地加上了“能证明自己懂”的叙述。

这本书的价值不仅在于提供的若干代码案例和若干视频,更体现在能帮助大家在进阶过程中少走弯路,体现在能切实有效地帮助大家面试,在讲述知识点时,总是尽可能地告诉大家家如何有效展展示自己了解解这部分知识识点的方法,而且在本书书的最后一章———第11章章中,以技术术面试官的直直接经验,不不仅讲述了在在简历中如何何展示自己能能力的方法,而且还通过过分析面试流流程,给出了了如何准备面面试的攻略,以保证大家家能在掌握技技能的前提下下有效地证明明自己行,从从而 让你的学学习得到应得得的回报。

本书没有有展示JavaWeb方面的的所有知识点,而是选择性性地讲了“足足够能证明自自己能力”的的知识点,从从而避免大家家把时间用在在“现阶段用用不到的知识识点”的学习习上。而且,这些知识点点的选择以及及讲述方式是是根据多年的的培训经验精精炼出来的,从而保证大大家花较少的的时间和精力力就能掌握JJava Web方面面高级程序员员所必备的知知识点。所以以对于在校大大学生、毕业业生和工作经经验 少于3年年的初级程序序员而言,本本书是个不错错的选择。

笔者的邮邮箱是hsm_ccomputer@163.com,如果果大家在下载载视频和案例例代码时有问问题,请及时时联 系我,另另外,如果大大家在学习过过程中有任何何的问题,也也请及时告诉我。

最后特别别说明,对于于高级程序员员以及架构师师而言,虽然然从这本书中中你们能看到到当年自己升升级的路线和和知识体系,但其中的知知识点你们已已经掌握了,建议不要去去买!但如果果你们愿意分分享自己的升升级经验,帮帮助我们进一步完善这本书书的文字代码码和视频,那那么我们将感感激不尽。第1章高级程序员的Web知识体系

衡量高级程序员的标准既简单又复杂,简单的标准是年限和工资。高级程序员需要的工作年限一般是本科生两年半左右(好学校的学生年限能适当降低到两年,硕士一般是一年),能给到的工资一般能达到当年毕业生平均工资的1.5倍左右(能力强的入门就能给到2倍以上)。

但年限只是一个基本的指标,比较复杂的标准是综合能力(似乎是废话)。作者以多年的高校教学经历及高级程序员+架构师+面试官的经验,在本书的诸多章节里列出了在Java Web方面高级程序员必须要掌握的知识点。本章没有用很大篇幅讲述环境的安装步骤(因为已经录制在视频里了),而是从总体上列出从新人到高级程序员升级的诀窍。1.1 合格Java程序员和高级Java程序员的技能比较

合格程序员的最低标准是没有任何商业项目经验,但有能力从事Java方面软件开发(至少能成功通过标准最低的面试)的毕业生(或者想转行做 Java的人)。初级程序员的标准是已经在干活了,至少有商业项目经验。所以说,合格<初级<高级。

本书阅读的起点其实是低于合格程序员的,但却按照大多数企业对高级程序员的最低标准,整理出的重要知识点。而在开篇,就从各方面对比了合格程序员和高级程序员的不同标准,这其实是大家的前进方向。1.1.1 Java Core方面

Java Core开发也叫核心开发,不涉及Web方面的知识。虽然本书是针对Java Web方面的,但Java Core方面的能力却是Web开发的基础,所以还是会用少量的篇幅大致列出针对Core方面程序员的标准。如表1.1所示。表1.1 Core方面合格与高级程序员的差别

对于合格程序员而言,大多数情况下,只要会干活就行,所以标准大多是:会某某技术,在代码里会某某操作。

对于高级程序员而言,除了需要了解更高级的知识点外,还要能根据项目的需求,自主地选用合适的对象,而且需要考虑性能优化等问题。1.1.2 Java Web方面

在Web方面,合格程序员的标准也是“能干活”,我们用表1.2列出了合格程序员与高级程序员的标准对比。表1.2 Web方面合格程序员与高级程序员的标准

Web方面其实要解决的问题相对简单,开发出来的网站只要能适应高并发大数据的需求即可,比如需要达到双11时的访问量。

上述这个需求点的技能其实是深不见底的,表 1.2中列出的技术点其实是针对高级程序员的(最低标准)。相比合格程序员,对高级程序员的技能要求主要体现在以下三个方面。

· 首先知识面要全,能适当地选用技术来满足项目的实际需求,这种需求不仅仅是业务需求,还包括性能方面的需求。

· 其次是要有调优意识,在测试阶段和项目上线后,能通过打印日志或配置现成的监控程序来监控哪块性能不好,并给出解决方法。

· 关键一点,要有框架方面的能力,合格程序员可能仅仅知道基本的Spring MVC框架怎么搭建,而对于高级程序员,遇到小项目(页面在10个左右,没有太大的并发和数据量的需求),需要能自主地搭建一整套框架,然后需要带领一帮程序员完成实际的项目。1.1.3 数据库层面

对于合格的程序员,需要有基本的数据库操作技能,具体体现在以下三个方面。

· 第一,针对一类数据库(比如MySQL、Oracle、SQL Server等),会基本的增删改查操作,会用一些基本的函数,会编写存储过程触发器索引等工具。

· 第二,知道一些基本的对项目开发有帮助的概念,比如范式、索引、分区等。

· 第三,能编写一些相对复杂的SQL语句,比如带连接、带子查询、嵌套查询等。对于高级程序员,用过的数据库种类当然是越多越好,此外,还要掌握如下三大方面的能力。

· 第一,能设计出各类复杂的SQL语句来满足项目中的各类需求。

· 第二,能根据项目情况,自主地设计数据表结构,并能合理地配置外键和主键。

· 第三,也是最重要的,要有一定的数据库调优能力,比如能合理地创建表结构,能正确地创建索引,而且能通过使用索引合理地优化数据库性能,能通过执行计划分析并优化SQL。

由于各类数据表的调优技术不一定一致,所以高级程序员最好能掌握针对多种数据库的调优技术。

在项目开发过程中,合格程序员的职责一般是编写(增、删、改、查存储结构的)SQL语句,而高级程序员的职责还包括设计和调优。1.1.4 项目管理方面

达到高级程序员的标准后,今后不论是向技术层面的架构师方向发展,还是向管理方向的项目经理发展,都需要和项目打交道。

对于大多没有商业项目经验的合格程序员而言,可以只了解项目开发的基本流程或者常见管理方式,不了解关系也不大,毕竟这些要靠做项目来逐渐积累经验。

对于高级程序员而言,项目管理方面的能力可以不达到项目经理的高度,但至少需要具备如表1.3所示方面的能力。表1.3 项目管理方面合格与高级程序员的差别1.1.5 能帮助到你的加分项

对于即将工作的合格程序员而言,如果有如下的经验或技能,则在一定程度上能帮助你成功地找到工作。

第一,可以在英文环境下独立地工作,包括可以读懂和编写英文邮件,能独立和老外畅通地交流,如果听和说两方面达不到这个程度,至少能读写英文邮件。

第二,有相关实习经验,这里特别说明要有商业项目的实习经验,而不是毕业设计项目或者学习时自己搭建的项目又或者是培训学校里做的项目。实习时间越长越好,大公司的实习经验比一般公司要好,商业公司的实习经验比在校帮老师干活的实习经验要好(因为在校项目一般规模不大,而且有些是为了应付毕业设计立项的,并不是真正的商业项目)。

第三,有一定的人际交往和沟通能力,或者说是亲和力,至少在面试的时候让人感觉你很好相处,不内向,能清晰地表达自己的想法。甚至这种交流沟通能力要比专业技能重要,因为多数刚毕业的大学生(或者工作经验很少的人)彼此的技能相差不多,发展空间也很大,所以一般公司更愿意找个表达、交流、沟通没问题的人。

第四,因为软件公司难免要加班,所以你最好能证明你是个非常能吃苦耐劳的人,千万别直接说不能接受加班。

比如应聘时有人在简历上写道:大三期间帮老师干活,由于工期紧,所以通宵了几天然后把项目做出来了。还有人这样写,在上家公司,我连续出差到xx城市3个月,期间在现场帮客户搭建了xx系统,而且解决了xx重大问题。这些不外乎是为了证明自己的能力与吃苦精神。1.2 你可以少走的弯路

span在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学、多实践不吃亏。1.2.1 哪些知识点可以延后了解

在Java Core方面,表1.4中的知识点你可以不学习或者到用的时候再学习。表1.4 Java Core方面可以延后学习的知识点

在Web方面,建议大家先了解一整套框架,别过早地钻入某个方面的知识点,比如大家可以先通过Spring MVC+Hibernate(甚至是JSP+Servlet+JavaBean)搭建一个包括基本的前端页面+MVC 架构+后台代码+数据的Web小项目(比如学生管理系统),先了解基于Web框架开发的一整套知识体系,随后再不断深入了解各Web组件的API等细节。

一般来说,在开始阶段,表1.5所示的Web知识点可以延后学习。表1.5 Java Web方面可以延后学习的知识点1.2.2 大学阶段的实习经验能帮到你

一般公司在筛选候选人的简历时,一个非常重要的考查要点是相关经验的工作年限。说一个典型案例,某公司要招高级程序员,需要有3年左右经验,三个候选人都是毕业1年半的程序员,但其中一位在大三开始有1年实习经验,结果就他获得了技术面试的资格。

这种工作经验外加实习经验凑满年限要求的案例不在少数,对于刚毕业的多数大学生来说,一般商业项目经验的工作年限都比较少,这个时候,是否有实习经验直接决定了是否能有面试机会甚至关系到是否能找到合适的工作。

目前大多数的软件公司在筛选简历时,对于工作年限小于1年或者没经验的简历,如果没有其他额外的加分项(比如海归或拿过编程大奖或英语非常好),一般会直接过滤,更何况候选人的学校还不是985或211学校。

毕竟,一个好学校的招牌确实能证明毕业生的平均能力很强,但这种证明力未必要比直接的工作经验来得更有效。

我们见过一些本科毕业生的简历,他们天真地把毕业设计项目(诸如图书馆管理系统或者学籍管理系统等)和一些实训项目(培训学校的教学项目)写到简历中。要知道商业项目(需要靠这个挣钱)和学习项目是两回事,侧重点也不同,所以公司只看重商业项目,一些学习项目的作用充其量只能证明你在这方面有过了解。

所以给大家的建议是,在不影响学习和毕业的前提下,尽早到一些公司去实习,哪怕钱很少加班多也要去。一方面可以通过实战提升自己的专业能力,另一方面,能给自己提升用钱买不到的商业项目工作年限。1.2.3 刚开始的1到3年,找个专注的方向

这里的专注有两个含义:

第一,得专注地从事软件相关的行业。我们见过不少简历,工作经验确实有3年(甚至更多),但是在简历中堂而皇之地写明,有1年多是从事非软件行业的,比如做硬件、做维护,甚至做和计算机专业无关的销售等,而编程相关的经验相对来说很少,那么这些简历中的相关工作年限只能扣除非编程经验的年限。

第二,需要在工作的前3年内,给自己制定一个大发展方向,是数据库管理和优化方向,或前端,或后端,或测试,或大数据等,换工作也以这个方向为前提。

比如某公司要找个做Java后端工作年限5年的人,但某份简历中,虽然也有5年经验,但前2年是偏重前端,第三年做测试,后2年才是Java,那么相关后端经验也只能按2年算。

这里想请大家注意的是,你可以多充实自己,多学习各方向的知识点,但一定要在一个方面(比如最近比较流行的是大数据)钻进去,让你在这方面拥有较多的项目实践经验。否则,假设你工作年限也达到资深的标准了(3年以上),但你在换工作的时候,会发现虽然你能去参加很多类型的面试,但每个方面你都没法证明自己是资深者(面试官自有一套甄别资深者的方式,而且有些问题一定是得做了很多项目才能回答出来,所以千万别有任何蒙混过关的想法)。1.2.4 常学习、多实践的人工资涨得快

虽然在前文里给大家列了些别人的经验,但对于任何程序员来说,弯路一定会走,本书的宗旨是让大家少走点弯路。

怎么才能少走弯路(或者说早些从弯路上回头)?答案只有学习和实践。

比如某好学者一个月额外学习时间是40小时(平均每工作日学习1小时,每周末学习5小时,一个月算4周),目前一般的学习效率是70%左右,毕竟你不能保证你看的知识点一定有用,而且也不能保证你一定能准确地理解学到的知识点,那么算下来一个月的有效学习时间只有28小时,这和在线游戏里的练级时间一样,时间越长,你的等级也就越高,工资也就越高。

给大家讲些真金白银的例子,按2017年的行情,工作经验满3年的平均工资在12000元左右,上不封顶,看能力,我们见过较高的有15000元左右。问下来这批人大概每周的学习时间在 30小时(也不算多)。我们也了解过不少工资在平均线(12000元)以下的原因,虽然和公司种类(比如外企创业公司或者互联网公司)行业(比如证券金融)等其他因素有关,但学习时间少也是相对重要的因素,毕竟如果你能力强,找到一个工资高的工作的机会就大。1.3 上手Web方面的开发工具

在Web开发方面,一般是用MyEclipse开发,有些公司可能用Eclipse加其他插件的开发方式,但基本的界面和开发部署流程和MyEclipse很相似。

安装步骤请参照视频,下面我们来演示一下常用的操作。1.3.1 在MyEclipse上开发和部署Web项目

我们看到的所有网站,比如淘宝、京东等,都是运行在 Web服务器上的,常见的 Web服务器有Tomcat、Apache、Websphere和Weblogic等。

本书用到的案例都是运行在MyEclipse自带的Tomcat服务器上,这里我们看下开发和运行一个基本的Web程序的步骤。

步骤一  新建一个Web项目,如图1.1所示。图1.1 新建一个Web项目

在弹出的窗口里,输入项目“MyFirstWeb”,随后可以选择适当的Java版本,这里是1.7,如图1.2所示。

完成创建后,能看到如图1.3所示的目录结构,在Web项目里,一般我们把Java程序放到src目录下,把Web相关的程序,比如JSP,JS,xml配置文件放到WebRoot目录下。图1.2 输入项目名,并选择Java版本图1.3 Web项目的一般结构

步骤二  编写基本的Web程序。

在创建完Web项目后,会生成一个默认的index.jsp文件:

这是个典型的JSP文件,通过第18行,能在页面上显示一段话。

步骤三  发布并运行这个Web程序。

我们可以在 Servers这个控制标签里,看到 MyEclipse自带的 Tomcat服务器,这里是Tomcat7,如图1.4所示。图1.4 Servers管理标签页

如果在下方看不到Servers标签,则可以通过如图1.5所示的方法,在Windows→Show View的菜单里打开Servers,如果在Show View菜单里还是看不到Servers,则可以从最下方的Others里打开。图1.5 从菜单里打开Servers标签的示意图

用鼠标右击Servers管理标签里的Tomcat7,能看到“Add Deployment”这个选项,如图1.6所示。图1.6 在Tomcat7上发布项目

在随后弹出的窗口里,选中刚才创建的MyFirstWeb这个Web项目,如图1.7所示,随后单击“Finish”按钮,即可完成发布工作。图1.7 在Tomcat7上选择要发布的项目

步骤四  开启Tomcat,运行Web页面。

完成发布Web程序后,能在Tomcat7里看到MyFirstWeb这个项目。用鼠标右击Tomcat,在弹出的菜单里选择“Run Server”,即可开启Tomcat服务器,如图1.8所示。图1.8 打开Tomcat服务器

启动后,Tomcat的状态就会变成Running,如图1.9所示。图1.9 Tomcat成功启动后的示意图

当我们切换到Console这个标签后,能看到成功启动的打印信息,如图1.10所示。如果有问题,同样会在这里看到出错信息。图1.10  Tomcat成功启动后输出的打印信息

当我们成功地发布MyFirstWeb这个Web程序,而且成功地启动Tomcat服务器后,就能在浏览器里看到效果。

在浏览器里输入http://localhost:8080/MyFirstWeb/index.jsp,其中,localhost是IP地址,8080是端口号,MyFirstWeb是项目名,最后的index.jsp是文件名。这样,即可看到如图1.11所示的效果图。图1.11 在页面里看到的效果图1.3.2 更换端口号

Tomcat服务器一般用的是8080端口,如果一台服务器上运行了多个Tomcat服务器实例,则我们必须更改一个服务器的端口号。更改端口号是一个比较常见的应用,步骤如下。

步骤一  在Tomcat7这个服务器上,用鼠标单击右键,选中Configure Server Connector菜单,如图1.12所示。图1.12 更改Tomcat服务器端口号的示意图

步骤二  在随后看到的窗口上的Port Number一栏里,我们就可以更改端口号了,如图1.13所示。图1.13 更改Tomcat服务器端口号的实际操作1.3.3 引入外部的jar包

在开发项目过程中,我们可以通过引入不同的jar包来引入不同的支持文件,比如在后面的章节里,我们需要引入支持MySQL驱动等jar包,引入外部包的步骤如下。

步骤一  右击项目名,在弹出的菜单里选择Properties,如图1.14所示。图1.14 引入外部的jar包流程1

步骤二 在弹出的窗口里的左边选择Java Build Path,在中间的标签页里选择Libraries,随后单击右边的Add External JARs按钮,如图1.15所示。图1.15 引入外部的jar包流程2

步骤三  在弹出的对话框里选择要添加的jar文件即可。图1.16 引入外部的jar包流程31.3.4 支持中文

在默认的MyEclipse设置下,未必能支持中文,这样,一旦在Java或者JSP等文件里输入中文,可能就没法保存了。我们可以通过如下步骤,让MyEclipse支持中文输入。

选中Window→Preference菜单,如图1.17所示。图1.17 打开Preferences菜单

在随后弹出的窗口里,打开General→Workspace,在Text file encoding里设置支持的字符集为ISO-8809-1(或UTF-8),这样,MyEclipse里的所有项目就都能支持中文了。图1.18 设置中文字符集

这样做的影响范围可能有些大,我们也可以只设置某类文件(比如JSP文件或者Java文件)支持中文,做法如下。

选中指定类型的文件,比如是JSP文件,右击该文件,在随后弹出的菜单里单击Properties,如图1.19所示。图1.19 选中指定类型的文件

在随后弹出的窗口里,设置指定的字符集即可,如图1.20所示。图1.20 为指定类型的文件设置字符集1.4 推荐一些经过实践检验的学习方法

作者做了多年的Java培训教师,也接触过不少初学者,根据多年的教学互动经验,总结了一些能少走弯路的学习方法,供大家参考。

第一,是要多学多练,这似乎是废话,但真正能非常上心学习的人还真是少数,大多数人下班之后,明明有足够多的时间,但宁可逛街、打游戏而不学习。

在我们所带的班级里,刚开始大家的能力其实差不了多少,但到结业后,常复习、常练习的同学要比不学不练好很多,往往是好的学生能直接跳槽,工资涨至少20%,不学不练的同学还是老样子。

第二,别单看书或网站上的技术资料,一定得边看边练习。如果光看,知识点一定会在一个月后被忘干净。

培训班里,有些同学确实学习很认真,上课记笔记,相信下课也一定会多复习,但就是不肯多上机练习。到最后,这些同学确实很可惜,虽然用功,但方法不对(不练习),学习效果其实并不好。

第三,关于学习的次序,建议大家遵循技术到框架到细节的路线,比如先大致了解Spring、Hibernate等技术,再了解Spring MVC等Web框架,最后再深入学习Spring和Hibernate里的各种细节的 API。如果过早地接触各种细节,就可能无法从总体上把握。如果了解框架后不去深入了解细节,则很可能基础知识不扎实,对后继学习非常不好。

第四,在没有了解各种框架(比如Spring MVC框架)前,可以先借鉴别人的代码,通过适当地修改先让代码跑通,随后通过阅读代码来理解整体流程和关键代码。

比如我们在给学生讲述Spring控制反转时,一般会给学生一个可以运行的程序,让学生先运行通,然后会针对代码讲述装载配置文件和控制反转部分的关键代码,最后会请学生通过改写来实现类似的效果。根据实践情况,学生能很快地掌握IoC的流程以及一些关键要点,从开始学习到最终掌握大概也就1个小时,当然这仅仅是入门级别的学习,深入学习其实也可以采用这套流程。

不过总有些学生在刚开始不熟悉控制反转细节的技术,就想要自己编写各部分的代码(比如配置文件和Java代码),美其名曰自己动手能对各部分印象更深。

这样做的大多数后果是,由于不熟悉,自己编写出来的代码往往会错误百出,而且自己还未必知道怎么才能把代码调通,导致最后对这个知识点的学习不了了之。这种情况一旦长久,一定会影响到学习的自信心。

所以千万记得,先“山寨”别人代码来学习,等你熟悉了,有足够多的能力时再来自己动手。第2章需要了解的数据库知识

对于一个初级程序员来说,对数据表的“增删改查”操作是一定要掌握的,但如果仅仅止步于此,是达不到公司的基本需求的。

具有3年相关经验,是初级程序员和高级程序员的分界点,本章将列出大多数公司对具有3年经验程序员在数据库方面的要求。通过本章的引导,大家可以找到合适的学习方向,甚至可以通过学习,直接提升自己的能力。2.1 合理地使用各种连接

本部分将从最简单的“连接”入手,一直讲到“如何建表”。所包含的技术虽然简单,但容易被大多数人忽视,阅读之后,相信你一定能得到实惠。2.1.1 内连接和左连接

假设我们有两张表,名为Student的学生表和名为studentcourse的学生成绩表,它们的结构如表2.1和2.2所示。表2.1 Student(学生表)的结构表2.2 studentcourse(学生成绩表)的结构

在Student的学生表里,有如表2.3所示的数据。表2.3 Student(学生表)的数据

而在studentcourse的学生成绩表里,有如表2.4所示的数据。表2.4 studentcourse(学生成绩表)的数据

下面先给出一个大家一定见过的SQL语句:

Select * from Student s,studentcoure sc where s.ID = sc.SID

这叫隐式的内连接,运行结果如表2.5所示。表2.5 内连接的运行结果

我们可以看到,前4列是属于Student表的,而后3列是属于studentcourse表的。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载