﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-路虽远，行则必至；事虽坚，做则必成。</title><link>http://www.blogjava.net/llgllg2007/</link><description>成长历程</description><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 00:03:59 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 00:03:59 GMT</pubDate><ttl>60</ttl><item><title>jsp入门的简单例子 ——转过来的</title><link>http://www.blogjava.net/llgllg2007/archive/2009/09/25/296370.html</link><dc:creator>达飞Plus</dc:creator><author>达飞Plus</author><pubDate>Fri, 25 Sep 2009 01:07:00 GMT</pubDate><guid>http://www.blogjava.net/llgllg2007/archive/2009/09/25/296370.html</guid><wfw:comment>http://www.blogjava.net/llgllg2007/comments/296370.html</wfw:comment><comments>http://www.blogjava.net/llgllg2007/archive/2009/09/25/296370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llgllg2007/comments/commentRss/296370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llgllg2007/services/trackbacks/296370.html</trackback:ping><description><![CDATA[<div class="postTitle"><a class="postTitle2" id="viewpost1_TitleUrl" href="http://www.blogjava.net/jing-er/archive/2007/04/19/111733.html">jsp入门的简单例子</a> </div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从头开始学jsp，对它有兴趣是第一要事。以下几个案例非常的简单，不需要用到别的知识。用来先对jsp有所感知是个不错的注意。<br />
<span style="color: #ff00ff">案例1 ：displace.jsp<br />
</span>&lt;%@&nbsp;&nbsp; page&nbsp;&nbsp; contentType="text/html;&nbsp;&nbsp; charset=GB2312"&nbsp;&nbsp; %&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;form&nbsp;&nbsp; name="form1"&nbsp;&nbsp; action="displace.jsp"&nbsp;&nbsp; method="post"&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;br&gt;&lt;br&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;input&nbsp;&nbsp; type="text"&nbsp;&nbsp; name="Vals"&gt;&lt;input&nbsp;&nbsp; type="text"&nbsp;&nbsp; name="Amount"&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;input&nbsp;&nbsp; type="submit"&nbsp;&nbsp; name="Submit"&nbsp;&nbsp; value="Submit"&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;/form&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;%&nbsp;&nbsp; <br />
&nbsp; int&nbsp;&nbsp; intLocal_Vals,&nbsp;&nbsp; intLocal_Amount;&nbsp;&nbsp; <br />
&nbsp; if(request.getParameter("Vals")!=null&nbsp;&nbsp; &amp;&amp;&nbsp;&nbsp; request.getParameter("Amount")!=null)&nbsp;&nbsp; <br />
&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intLocal_Vals&nbsp;&nbsp; =&nbsp;&nbsp; Integer.parseInt(request.getParameter("Vals"));&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intLocal_Amount&nbsp;&nbsp; =&nbsp;&nbsp; Integer.parseInt(request.getParameter("Amount"));&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //下面进行位移操作&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; intLocal_Vals=intLocal_Vals&gt;&gt;intLocal_Amount;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;br&gt;位移后的值为："&nbsp;&nbsp; +intLocal_Vals);&nbsp;&nbsp; <br />
&nbsp; }else{&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("位移值或位移量不能为空！");&nbsp;&nbsp; <br />
&nbsp; }&nbsp;&nbsp; <br />
&nbsp; %&gt; <br />
案例1的所有操作都在一个页面内完成，一般不会出现什么问题，主要用来认识一下jsp页面的组成结构。<br />
<span style="color: #ff00ff">案例2 ：准备工作：在d:盘建立一个名为count.txt的空文本文档。</span><br />
&lt;%@ page language="java" contentType="text/html; charset=gb2312"%&gt;</p>
<p>&lt;html&gt;<br />
&lt;head&gt;</p>
<p>&lt;title&gt;文字计数器&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body bgcolor="#ffffff"&gt;<br />
<span style="color: #000000">&lt;</span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#64;&#112;&#97;&#103;&#101;"><span style="color: #000000">%@page</span></a> import="java.io.*" %&gt;<br />
&lt;% <br />
BufferedReader file;<br />
//BufferedReader 对象用于读取文件数据<br />
String countFile="d:/count.txt";<br />
//标示文件的地址<br />
file=new BufferedReader(new FileReader(countFile));<br />
//将file（BufferedRead的对象）指向文件的地址<br />
String readStr=null;<br />
//来存取文件的内容<br />
int writeStr=1;<br />
//写入文件的变量 如果文件中访问是0 则写入为1<br />
try<br />
{<br />
&nbsp;&nbsp;&nbsp; readStr=file.readLine();//读取文件内容<br />
&nbsp;&nbsp;&nbsp; }<br />
catch(IOException e){<br />
&nbsp;&nbsp;&nbsp; System.out.println("read wrong");<br />
&nbsp;&nbsp;&nbsp; }<br />
if(readStr==null) readStr="no record";<br />
else {<br />
&nbsp;&nbsp;&nbsp; writeStr=Integer.parseInt(readStr)+1;//读取的内容+1<br />
&nbsp;&nbsp;&nbsp; }<br />
try{<br />
&nbsp;&nbsp;&nbsp; PrintWriter pw;<br />
&nbsp;&nbsp;&nbsp; //PrintWriter用于写文件的一个类<br />
&nbsp;&nbsp;&nbsp; pw=new PrintWriter(new FileOutputStream(countFile));<br />
&nbsp;&nbsp;&nbsp; //指定文件<br />
&nbsp;&nbsp;&nbsp; pw.println(writeStr);<br />
&nbsp;&nbsp;&nbsp; //写入变量writeStr的值<br />
&nbsp;&nbsp;&nbsp; pw.close();<br />
}<br />
catch(IOException e){<br />
&nbsp;&nbsp;&nbsp; out.println(e.getMessage());<br />
}<br />
%&gt;<br />
&lt;p align="center"&gt;<br />
&lt;h1&gt;文字计数器&lt;/h1&gt;<br />
&lt;h3&gt;你是本站第&lt;/h3&gt;<br />
&lt;font color="ff0000" size="7"&gt;<br />
&lt;%=readStr%&gt;&lt;/font&gt;<br />
&lt;h3&gt;个读者&lt;/h3&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
案例2主要是和外部文件进行了简单的通讯，用到的主要是java代码。</p>
<p><span style="color: #ff00ff">案例3：准备工作：安装mysql;将mysql的JDBC驱动器拷贝到Tomcat\common\lib和Tomcat\shared\lib 下。<br />
</span>&lt;%@ page contentType="text/html;charset=GB2312" %&gt; <br />
&lt;%@ page language="java" import="java.sql.*"%&gt; <br />
&lt;% <br />
Connection conn = null; //连接<br />
Class.forName("org.gjt.mm.mysql.Driver"); //驱动<br />
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","8"); //建立连接<br />
if(conn==null){ <br />
out.println("get Conn Error"); <br />
} <br />
Statement stmt=conn.createStatement(); <br />
ResultSet RS_result=null; <br />
%&gt; <br />
&lt;html&gt; <br />
&lt;head&gt; <br />
&lt;title&gt;学习&lt;/title&gt;&lt;/head&gt; <br />
&lt;body&gt; <br />
&lt;% <br />
RS_result=stmt.executeQuery("select * from user"); <br />
String Name,Password; <br />
while(RS_result.next()) <br />
{ <br />
Name=RS_result.getString("name");<br />
Password=RS_result.getString("password"); <br />
%&gt; <br />
&lt;P&gt;&lt;%=Name%&gt;<br />
&lt;%=Password%&gt;&lt;/p&gt;<br />
&lt;% <br />
} </p>
<p>stmt.close(); <br />
conn.close(); <br />
%&gt; <br />
&lt;/body&gt; <br />
&lt;/html&gt;<br />
案例3里其实只是用java实现了一个数据库连接。<br />
<span style="color: #ff00ff">案例4：<br />
</span>login.jsp<br />
&lt;%@&nbsp;&nbsp; page&nbsp;&nbsp; contentType="text/html;&nbsp;&nbsp; charset=GB2312"&nbsp;&nbsp; %&gt; <br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp; &lt;title&gt;login&lt;/title&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;form name="Sayhi" method="post" action="Jsp2.jsp"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;p&gt;请输入用户信息：&lt;/p&gt;<br />
&nbsp;&nbsp; &lt;p&gt;姓名 &lt;input type="text" name="name" size="12"&gt;&lt;/p&gt;<br />
&nbsp;&nbsp; &lt;p&gt;密码 &lt;input type="password" name="password" size="12"&gt;&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input type="submit" value="确认"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input type="reset" value="取消"&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
handle.jsp<br />
<span style="color: #000000">&lt;</span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#64;&#112;&#97;&#103;&#101;"><span style="color: #000000">%@page</span></a> import="java.sql.*" contentType="text/html;charset=gb2312"&nbsp;&nbsp; %&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;html&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;head&gt; <br />
&nbsp; &lt;title&gt;认证&lt;/title&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;/head&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;body&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;% <br />
&nbsp; String&nbsp;&nbsp; Name=request.getParameter("name");&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; Password=request.getParameter("password");&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName("org.gjt.mm.mysql.Driver").newInstance();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; url="jdbc:mysql://localhost:3306/db";&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; user="root";&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; password="8";&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection&nbsp;&nbsp; conn=DriverManager.getConnection(url,user,password);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Statement&nbsp;&nbsp; stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; sql="select * from&nbsp;&nbsp; user&nbsp;&nbsp; where&nbsp;&nbsp; name='"+Name+"'&nbsp;&nbsp; and&nbsp;&nbsp; password='"+Password+"'";&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet&nbsp;&nbsp; rs=stmt.executeQuery(sql);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs.next()){&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("恭喜你，登陆成功！");&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("抱歉！登陆不成功！");&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stmt.close();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;/body&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;/html&gt;<br />
<span style="color: #000000">案例4是jsp最常用的功能，实现用户登陆的问题。<br />
</span><span style="color: #ff00ff">案例5：</span><br />
CountTest.java<br />
package Test;</p>
<p style="color: #000000">public class CountTest {<br />
&nbsp;private static int count = 0;<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public CountTest() {<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; public static int getCount() {<br />
&nbsp;count++;<br />
&nbsp;return count;<br />
&nbsp;}</p>
<p style="color: #000000">&nbsp; public static void setCount(int a) {<br />
count =a;<br />
&nbsp;}<br />
}<br />
counter.jsp<br />
<span style="color: #000000">&lt;</span><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#64;&#112;&#97;&#103;&#101;"><span style="color: #000000">%@page</span></a> import="Test.*"%&gt;</p>
<p>&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;TITLE&gt;<br />
counter<br />
&lt;/TITLE&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY&gt;<br />
&lt;H1&gt;<br />
JBuilder Generated JSP<br />
&lt;/H1&gt;<br />
&lt;jsp:useBean id="bean0" scope="application" class="Test.CountTest" /&gt;<br />
&lt;%<br />
out.println("The Counter is : " + bean0.getCount() + "&lt;BR&gt;");<br />
%&gt;<br />
&lt;/BODY&gt;<br />
&lt;/HTML&gt;<br />
案例5是在java完成处理，在jsp里完成显示的例子。</p>
<img src ="http://www.blogjava.net/llgllg2007/aggbug/296370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llgllg2007/" target="_blank">达飞Plus</a> 2009-09-25 09:07 <a href="http://www.blogjava.net/llgllg2007/archive/2009/09/25/296370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库基本知识(sql) ___转过来的</title><link>http://www.blogjava.net/llgllg2007/archive/2009/09/25/296369.html</link><dc:creator>达飞Plus</dc:creator><author>达飞Plus</author><pubDate>Fri, 25 Sep 2009 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/llgllg2007/archive/2009/09/25/296369.html</guid><wfw:comment>http://www.blogjava.net/llgllg2007/comments/296369.html</wfw:comment><comments>http://www.blogjava.net/llgllg2007/archive/2009/09/25/296369.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llgllg2007/comments/commentRss/296369.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llgllg2007/services/trackbacks/296369.html</trackback:ping><description><![CDATA[<div class="postTitle"><a class="postTitle2" id="viewpost1_TitleUrl" href="http://www.blogjava.net/jing-er/archive/2007/04/21/112474.html">数据库基本知识(sql)</a> </div>
<span style="font-size: 12pt">下个星期要考数据库，现把基本知识稍做整理：<br />
sql的概念：<br />
SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。<br />
<br />
sql语言的构成：<br />
&nbsp;SQL语言包括约30条语句,每条语句请求DBMS完成一个动作. <br />
每条SQL语句都以一个动词开头,这是描述该语句功能的关键字.接着是一个或几个子句. <br />
子句指定该语句所作用的数据,或该语句行为的更详细说明. <br />
每个子句都以一个关键字开头.有包含表名和列名,有含有附加关键字,常数或表达式. <br />
<br />
sql的命名：<br />
<span>数据库中的对象都有一个唯一名字标识</span><span>.&nbsp;</span><br />
<span>SQL</span><span>语句中用名字标识该语句作用的数据库对象</span><span>. <br />
<span>ANSI/ISO SQL</span><span>标准规定的名字有表名</span><span>(</span><span>标识表</span><span>),</span><span>列名</span><span>(</span><span>标识列</span><span>)</span><span>和用户名</span><span>(</span><span>标识数据库的用户</span><span>) <br />
</span><span>许多</span><span>SQL</span><span>实现支持附加命名对象</span><br />
&nbsp; sql的数据类型：<br />
&nbsp; <span>定长字符串</span><span>.(CHAR(LEN),CHARACTER(LEN)<br />
<span>整数</span><span>.(NUMBER(P,S) ,SMALLINT,INTEGER) <br />
</span><span>小数</span><span>.(NUMBER(P,S) ,DECIMAL(P,S)) <br />
</span><span>浮点数</span><span>.(NUMBER(P,S),FLOAT(P),REAL) <br />
</span><span>可变长字符串</span><span>.(VARCHAR2(N),VARCHAR(N)) <br />
</span><span>金额</span><span>.(NUMBER(P,S),MEONEY)) <br />
</span><span>日期和时间</span><span>.(DATE,DATETIME,TIMESTAMP) <br />
</span><span>长文字</span><span>.(LONG,LONG VARCHAR)<br />
</span><span>无结构字节流</span><span>.(RAW,LONG RAW)<br />
&nbsp; sql的<span>表达式<br />
<span>在</span><span>SQL</span><span>语言中</span><span>,</span><span>表达式用于计算从数据库中检索的值以及用于</span><span>搜索数据库的值</span><span>. <br />
</span><span>ANSI/ISO SQL</span><span>标准规定表达式中可用四种算术运算</span><span>:+,-,*,/.</span><span>还可以用括号组成更复杂的表达式</span><span>. <br />
</span><span>ANSI/ISO</span><span>标准还规定</span><span>,</span><span>在必要的时候整数可自动转换成小数</span><span>,</span><span>小数可自动转换为浮点数</span><span>.<br />
<span>有的产品还支持日期运算表达试</span><span>. <br />
</span><span>ORACLE</span><span>中的字符连接运算使用</span><span>&#8216;</span><span>||</span><span>&#8217;</span><span> </span><span>运算符<br />
&nbsp;&nbsp; sql的<span>内部构造函数 <br />
<span>大多数</span><span>SQL</span><span>实现都包含一组有用的内部函数</span><span>. <br />
</span><span><span>&#177;</span></span><span>数值处理函数</span><span>.(ABS,ROUND,TRUNC,SQRT) <br />
</span><span><span>&#177;</span></span><span>字符处理函数</span><span>.(SUBSTR,TRIM,UPPER) <br />
</span><span><span>&#177;</span></span><span>日期处理函数</span><span>.(ADD_MONTHS,MONTHS_BETWEEN)<br />
</span><span><span>&#177;</span></span><span>转换函数</span><span>.(CONVERT,TO_DATE,TO_CHAR)<br />
</span><span><span>&#177;</span></span><span>其它函数</span><span>.(NVL,USER,USERENV,UID) <br />
</span><span>内部构造函数在</span><span>SQL</span><span>表达式中可用于相同数据类型的常数出</span><span>现的任何地方</span><span>.<br />
&nbsp; sql的<span>无数据处理</span><span>(NULL</span><span>值</span><span>) <br />
<span>SQL</span><span>通过空值的概念来处理数据不存在</span><span>,</span><span>不确定或不能用的情</span><span>况</span><span>.<br />
</span><span>NULL</span><span>不同于一般的实际数据</span><span>,</span><span>而是一个表示数据不存在或未</span><span>知的标志</span><span>.<br />
<span>在许多情况下</span><span>,NULL</span><span>要求</span><span>DBMS</span><span>特殊处理</span><span>.<span><span>&#177;</span></span><span>例如在</span><span>ORACLE</span><span>中通过</span><span>NVL</span><span>内部构造函数来处理这种情况</span><span>.</span><span> </span></span></span></span></span></span></span></span></span></span></span></span></span>
<img src ="http://www.blogjava.net/llgllg2007/aggbug/296369.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llgllg2007/" target="_blank">达飞Plus</a> 2009-09-25 09:02 <a href="http://www.blogjava.net/llgllg2007/archive/2009/09/25/296369.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;SQL--表結合について</title><link>http://www.blogjava.net/llgllg2007/archive/2009/09/24/296289.html</link><dc:creator>达飞Plus</dc:creator><author>达飞Plus</author><pubDate>Thu, 24 Sep 2009 06:42:00 GMT</pubDate><guid>http://www.blogjava.net/llgllg2007/archive/2009/09/24/296289.html</guid><wfw:comment>http://www.blogjava.net/llgllg2007/comments/296289.html</wfw:comment><comments>http://www.blogjava.net/llgllg2007/archive/2009/09/24/296289.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llgllg2007/comments/commentRss/296289.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llgllg2007/services/trackbacks/296289.html</trackback:ping><description><![CDATA[<div class="postTitle"><a class="postTitle2" id="homepage1_HomePageDays_DaysList_ctl09_DayItem_DayList_ctl00_TitleUrl" href="http://www.blogjava.net/jing-er/archive/2009/02/02/252977.html">SQL 表結合(join) - 単純結合、等価結合、非等価結合、外部結合、再帰結合(SQL表连接-简单连接，等价连接，非等价连接，外部连接，回归连接)</a> </div>
<pre>様々な連結テーブルが作成できるが、良く使うものはビュー(create view) に
しておくと効率が良い。<font color="#000000"><span style="color: #ff0000"><font style="color: #ff0000" color="#000000">各种各样的连接表中，有的对视图也起作用。<br />
</font></span></font>結合は、テーブルとテーブル、ビューとビュー、テーブ
ルとビューなど複雑にできる。(テーブル連結)<font color="#000000"><span style="color: #ff0000"><font style="color: #ff0000" color="#000000">连接可以在数据表和数据表之间，视图和视图之间，数据表和视图之间复杂的进行。</font></span></font></pre>
<pre>■単純結合 <span style="color: #ff0000">简单连接</span>
・現実的に単純結合を使う機会はないだろう。<span style="color: #ff0000">实际上简单结合没有什么使用的机会。<br />
</span>次の例では、受注m の各レコードに 品番m の全レコードが結合される。<br />
<span style="color: #ff0000">在下面的例子中，在受注m的各种记录里，品番m的所有记录都被结合了。<br />
</span>  受注m のレコード数 x 品番m のレコード数の結果が問い合わされる。<br />
<span style="color: #ff0000">&nbsp; 受注m的记录数*品番m的记录数的结果被查询出来。</span>
select * from sak.受注m, sak.品番m;
■等価結合 <span style="color: #ff0000">等价连接</span>
・等価結合は、特定のキーで表を結合します。<span style="color: #ff0000">等价连接是用特定的键来进行表的结合的。</span> <br />
条件のどちらかのデータが存在しない場合、結果セットには含まれません。<br />
<span style="color: #ff0000">如果有条件在数据表里不存在，在结果集里就没有这一条记录。</span>    <br />
現実的には外部結合が一番使いやすいと思います。<span style="color: red">在实际上，外部结合是最容易使用的。<br />
</span>select
受注番号,
受注m.品番   品番,
品番m.入庫数 入庫数
from sak.受注m, sak.品番m
where 受注m.品番 = 品番m.品番 ;
・列の別名定義は、as を指定してもよい。<span style="color: #ff0000">列的别名指定，也可以用as来实现。</span>    <br />
結合テーブルに同じ項目名が存在する場合は、どちらのテーブル項目か指定するため、テーブル名で修飾する。(受注m.品番)<br />
<span style="color: #ff0000">在连接表中如果有相同的项目名存在，为了让每一个项目都被指定，就用项目名来修饰。<br />
</span>select
受注番号,
受注m.品番   as 品番,
品番m.入庫数 as 入庫数
from sak.受注m, sak.品番m
where 受注m.品番 = 品番m.品番;
・inner join を使用して、等価結合することもできます。(インナージョイン)<br />
<span style="color: red">使用inner join，也可以进行等价连接。<br />
</span>select
受注番号,
受注m.品番   as 品番,
品番m.入庫数 as 入庫数
from sak.受注m inner join sak.品番m on 受注m.品番 = 品番m.品番;
・3 つ以上の結合を inner join で指定するには、次のようにする。<br />
<span style="color: red">如果有三个以上要指定inner join 来进行连接的时候，可以像下面这样做。<br />
</span>select
*
from (sak.受注m inner join sak.品番m on 受注m.品番 = 品番m.品番)
inner join sak.得意先m on 受注m.得意先CD = 得意先m.得意先CD;
■非等価結合 <span style="color: red">非等价连接</span>
・非常に時間のかかる結合ですが、必要な場面があるかもしれない。<span style="color: red">虽然很花时间，但有时候也要进行下面的检索。<br />
</span>なにがしかの範囲条件で結合する場合に使います。<span style="color: red">和检索条件的一部分进行连接。 <br />
<span style="color: #000000">select </span></span>受注番号,
受注m.品番   品番,
品番m.入庫数 入庫数
from sak.受注m, sak.品番m
where 受注m.機種 like substr(品番m.機種, 1, 2);<br />
■外部結合 <span style="color: #ff0000">外結合、行結合、行連結、テーブル結合、外部接合<br />
</span>外部连接 <span style="color: #ff0000">外连接，行连接，表连接，外部连接<br />
</span>・外部結合は、一番よく使用します。<span style="color: red">外部连接是最经常使用的。<br />
</span>一方の条件に対するデータが存在しなかった場合でも片方のデータを結果セ
ットに含める指定ができます。<br />
<span style="color: red">对于一方的条件即使不存在，也可以使结果集包含一边的数据。<br />
</span>次の例では、品番m にない品番の受注m レコードも結果に含まれます。<br />
<span style="color: red">在下面的例子中，在品番m中没有的品番受注m记录的结果也包含了进来。<br />
</span>この場合、入庫数などの 品番m 項目には NULL がセットされて問い合わさ
れます。Oracle では、left join、right join を (+) で指定できます。<br />
<span style="color: red">这时候，入库数等的品番m项目里被设定了NULL值。在oracle里，left join,right join 可以用(+)来指定。<br />
</span>(左結合、右結合、複数テーブル問い合わせ、複数テーブル参照)
(複数問い合わせ、複合テーブル参照、レフトジョイン、ライトジョイン)<br />
<span style="color: red">(左连接，右连接，多个表查询，多个表参照，左连接，右连接)<br />
</span>select
受注番号,
受注m.品番   品番,
品番m.入庫数 入庫数
from sak.受注m, sak.品番m
where 受注m.品番 = 品番m.品番 (+);
select
受注番号,
受注m.品番   品番,
品番m.入庫数 入庫数
from sak.受注m left join sak.品番m on 受注m.品番 = 品番m.品番;
・逆に受注m にない品番の品番m レコードを結果に含ませることもできます。
現実的には、こういう結合に意味はありませんが、逆の和もできると言うこ
とです。<br />
<span style="color: red">・相反不在受注m里的品番m记录也可以在结果里包含。在实际中，虽然没有这么用的，但是(+)也可以放在=之前。<br />
</span>select
受注番号,
受注m.品番   品番,
品番m.入庫数 入庫数
from sak.受注m, sak.品番m
where 受注m.品番 (+) = 品番m.品番;
select
受注番号,
受注m.品番   品番,
品番m.入庫数 入庫数
from sak.受注m right join sak.品番m on 受注m.品番 = 品番m.品番;
・三つ以上の表を結合することもできます。(3 テーブル結合)<br />
<span style="color: red">・也可以进行三个表以上的表连接。（三表连接）</span><br />
次の例では、品番に対する品番m.入庫数、得意先CD に対する得意先m.得意
先名を結合しています。(left join を使用しても良い。)<br />
<span style="color: red">在下面的例子中，对于品番的品番m.入库数，对于得意先CD的得意先m.得意先名来进行连接。（也可以使用左连接）<br />
</span>select
受注番号,
受注m.品番       品番,
品番m.入庫数     入庫数,
受注m.得意先CD   得意先CD,
得意先m.得意先名 得意先
from sak.受注m, sak.品番m, sak.得意先m
where 受注m.品番     = 品番m.品番 (+)
and 受注m.得意先CD = 得意先m.得意先CD (+);
select
受注番号,
受注m.品番       品番,
品番m.入庫数     入庫数,
受注m.得意先CD   得意先CD,
得意先m.得意先名 得意先
from (sak.受注m left join sak.品番m on 受注m.品番 = 品番m.品番)
left join sak.得意先m on 受注m.得意先CD = 得意先m.得意先CD;
・複数の表を結合すると修飾が難解になりがちなので、テーブル別名を使うと
良いです。<br />
<span style="color: red">如果多个表进行连接，修饰会变得很复杂，也可以使用表别名。<br />
</span>select
受注番号,
a.品番     品番,
b.入庫数   入庫数,
a.得意先CD 得意先CD,
c.得意先名 得意先
from sak.受注m a, sak.品番m b, sak.得意先m c
where a.品番     = b.品番 (+)
and a.得意先CD = c.得意先CD (+);
** 外部結合を明示するために left join を left outer join、right join
を right outer join と書くこともできる。<br />
<span style="color: red">** 为了明确外部连接，也可以把left join 写成 left outer join, right join写成right outer join。<br />
</span>(アウタージョイン、レフトアウタージョイン、ライトアウタージョイン)<br />
<span style="color: red">（outer　join, left outer join, right outer join）<br />
</span>■再帰結合(内部結合) 回归连接（内部结合）
・再帰結合は、同じテーブルをテーブル別名を使用して結合します。<br />
<span style="color: red">・回归连接是相同的表来用别名来进行连接的。<br />
</span>次の例では、得意先m に親得意先CD があるとして、その得意先名を自分自
身と結合しています。(自己結合)<br />
<span style="color: red">在下面的例子中，以得意先作为父得意先，然后用这个名字来进行自身连接。<br />
</span>select
a.得意先CD   得意先CD,
a.得意先名   得意先,
a.親得意先CD 親得意先CD,
b.得意先名   得意先
from sak.得意先m a, sak.得意先m b
where a.得意先CD = b.親得意先CD (+);
</pre>
<img src ="http://www.blogjava.net/llgllg2007/aggbug/296289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llgllg2007/" target="_blank">达飞Plus</a> 2009-09-24 14:42 <a href="http://www.blogjava.net/llgllg2007/archive/2009/09/24/296289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>***システムの開発環境について（2009/07~2009/09）</title><link>http://www.blogjava.net/llgllg2007/archive/2009/09/24/296286.html</link><dc:creator>达飞Plus</dc:creator><author>达飞Plus</author><pubDate>Thu, 24 Sep 2009 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/llgllg2007/archive/2009/09/24/296286.html</guid><wfw:comment>http://www.blogjava.net/llgllg2007/comments/296286.html</wfw:comment><comments>http://www.blogjava.net/llgllg2007/archive/2009/09/24/296286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/llgllg2007/comments/commentRss/296286.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/llgllg2007/services/trackbacks/296286.html</trackback:ping><description><![CDATA[****システム<br />
<br />
<p>&nbsp;　単体テスト迄ですので、OSなどは厳密に合わせる必要は<br />
&nbsp;　ありませんので、その辺りは参考にして下さい。</p>
<p><br />
&nbsp;--------------------------------------------------------------</p>
<p>&nbsp;　ＡＰサーバ：WebOTX Application Server Web Edition V8.1<br />
&nbsp;　　　　　　　Apache HTTP Server 2.0.x<br />
&nbsp;　　　　　　　Tomcat 6.0.x、J2SE 5.0.x<br />
&nbsp;　　　　　　　Windows Server 2008 Standard (EMT64)</p>
<p>&nbsp;　フレームワーク：R21開発基盤(Java/Strus)</p>
<p>&nbsp;　帳票：PDF操作（CoReports for java)<br />
&nbsp;　　　　EXCEL操作(Microsoft Office 2007)</p>
<p>&nbsp;　ＤＢサーバ:Oracle 11g/R1 (11.0.x)<br />
&nbsp;　　　　　　HP-UX 11iv3</p>
<p>&nbsp;-------------------------------------------------------------- </p>
<br />
<img src ="http://www.blogjava.net/llgllg2007/aggbug/296286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/llgllg2007/" target="_blank">达飞Plus</a> 2009-09-24 14:30 <a href="http://www.blogjava.net/llgllg2007/archive/2009/09/24/296286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>