﻿<?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/shediao/</link><description>我的java社区</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:06:27 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:06:27 GMT</pubDate><ttl>60</ttl><item><title>mysql 语法随记2</title><link>http://www.blogjava.net/shediao/archive/2008/08/21/223462.html</link><dc:creator>射雕</dc:creator><author>射雕</author><pubDate>Thu, 21 Aug 2008 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/shediao/archive/2008/08/21/223462.html</guid><wfw:comment>http://www.blogjava.net/shediao/comments/223462.html</wfw:comment><comments>http://www.blogjava.net/shediao/archive/2008/08/21/223462.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shediao/comments/commentRss/223462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shediao/services/trackbacks/223462.html</trackback:ping><description><![CDATA[1.计算行数<br />
SELECT COUNT (*) FROM people [WHERE ....];<br />
mysql&gt; SELECT name, COUNT(*) FROM myinfo GROUP BY name;<br />
<br />
2.使用多个数据表<br />
<br />
<br />
<img src ="http://www.blogjava.net/shediao/aggbug/223462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shediao/" target="_blank">射雕</a> 2008-08-21 12:52 <a href="http://www.blogjava.net/shediao/archive/2008/08/21/223462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql 语法随记</title><link>http://www.blogjava.net/shediao/archive/2008/08/21/223436.html</link><dc:creator>射雕</dc:creator><author>射雕</author><pubDate>Thu, 21 Aug 2008 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/shediao/archive/2008/08/21/223436.html</guid><wfw:comment>http://www.blogjava.net/shediao/comments/223436.html</wfw:comment><comments>http://www.blogjava.net/shediao/archive/2008/08/21/223436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shediao/comments/commentRss/223436.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shediao/services/trackbacks/223436.html</trackback:ping><description><![CDATA[<span>SELECT</span>语句用来从数据表中检索信息。语句的一般格式是：<br />
<span><span style="color: #008000">SELECT <em>what_to_select </em>FROM <em>which_table </em>WHERE <em>conditions_to_satisfy</em>;</span></span><span><br />
1.选择所有数据<br />
<span style="color: #008000">SELECT * FROM tableName;<br />
</span>2.选择特殊的行<br />
<span style="color: #008000">SELECT * FROM myinfo&nbsp;WHERE name='shediao' [AND name='shediao'][OR name='shediao'][time&gt;'2008-01-01'];<br />
and or 是可以混用的 优先级 and&gt;or<br />
</span>3.选择特殊的列<br />
<span style="color: #008000">SELECT name,age FROM myinfo;&nbsp;<br />
</span></span><span>
<p>请注意该查询只是简单地检索每个记录的列，并且他们中的一些出现多次。为了使输出减到最少，增加关键字<span>DISTINCT</span>检索出每个唯一的输出记录：<br />
<span><span style="color: #008000">mysql&gt; <strong>SELECT DISTINCT&nbsp;name FROM people;<br />
<span style="color: #000000">4.分类行</span></strong></span></span></p>
当行按某种方式排序时，检查查询输出通常更容易。为了排序结果，使用<span>ORDER BY</span>子句。<br />
<span style="color: #008000">SELECT * FROM people ORDER BY name,&nbsp;time [DESC];/* DESC 表示降序只作用于time , name默认的是升序*/<br />
</span>5.日期计算<br />
SELECT YEAR(time) AS year FROM peopel;<br />
<span>YEAR( )</span>、<span>MONTH( )</span>和<span>DAYOFMONTH( ) .</span><br />
<br />
6.判空<br />
is NULL ,&nbsp; is NOT NULL<br />
7.模式匹配<br />
<p><span>SQL</span>模式匹配允许你使用<samp><span>&#8220;</span><span>_</span><span>&#8221;</span></samp>匹配任何单个字符，而<samp><span>&#8220;</span><span>%</span><span>&#8221;</span></samp>匹配任意数目字符<span>(</span>包括零字符<span>)</span>。在<span> MySQL</span>中，<span>SQL</span>的模式默认是忽略大小写的。下面给出一些例子。注意使用<span>SQL</span>模式时，不能使用<span>=</span>或<span>!=</span>；而应使用<span>LIKE</span>或<span>NOT LIKE</span>比较操作符。<br />
</p>
<span><span style="color: #008000">mysql&gt; <strong>SELECT * FROM pet WHERE name LIKE 'b%';/*以b开头的字符窜*/<br />
</strong></span></span><span><span style="color: #008000">mysql&gt; <strong>SELECT * FROM pet WHERE name LIKE '%b';/*以b结尾的字符串*/<br />
</strong>mysql&gt; <strong>SELECT * FROM pet WHERE name LIKE '%b%';/*含有b的字符串*/</strong></span></span><br />
<span><span style="color: #008000">mysql&gt; <strong>SELECT * FROM pet WHERE name LIKE '_____';/*含有5个字符的字符串*/</strong></span></span><br />
<p>由<strong><span style="font-family: 宋体">MySQL</span></strong>提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时，使用<span>REGEXP</span>和<span>NOT REGEXP</span>操作符<span>(</span>或<span>RLIKE</span>和<span>NOT RLIKE</span>，它们是同义词<span>)</span>。 </p>
<p>扩展正则表达式的一些字符是： </p>
<p><span>&#183;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>&#8216;<span>.</span>&#8217;匹配任何单个的字符。</p>
<p><span>&#183;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>字符类<samp><span>&#8220;</span><span>[...]</span><span>&#8221;</span></samp>匹配在方括号内的任何字符。例如，<samp><span>&#8220;</span><span>[abc]</span><span>&#8221;</span></samp>匹配<samp><span>&#8220;</span><span>a</span><span>&#8221;</span></samp>、<samp><span>&#8220;</span><span>b</span><span>&#8221;</span></samp>或<samp><span>&#8220;</span><span>c</span><span>&#8221;</span></samp>。为了命名字符的范围，使用一个&#8220;<span>-</span>&#8221;。<samp><span>&#8220;</span><span>[a-z]</span><span>&#8221;</span></samp>匹配任何字母，而<samp><span>&#8220;</span><span>[0-9]</span><span>&#8221;</span></samp>匹配任何数字。</p>
<p><span>&#183;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><samp><span>&#8220;</span><span> * </span><span>&#8221;</span></samp>匹配零个或多个在它前面的字符。例如，<samp><span>&#8220;</span><span>x*</span><span>&#8221;</span></samp>匹配任何数量的<samp><span>&#8220;</span><span>x</span><span>&#8221;</span></samp>字符，<samp><span>&#8220;</span><span>[0-9]*</span><span>&#8221;</span></samp>匹配任何数量的数字，而<samp><span>&#8220;</span><span>.*</span><span>&#8221;</span></samp>匹配任何数量的任何字符。</p>
<ul type="disc">
    <li>如果<span>REGEXP</span>模式与被测试值的任何地方匹配，模式就匹配<span>(</span>这不同于<span>LIKE</span>模式匹配，只有与整个值匹配，模式才匹配<span>)</span>。 </li>
</ul>
<ul type="disc">
    <li>为了定位一个模式以便它必须匹配被测试值的开始或结尾，在模式开始处使用<samp><span>&#8220;</span><span>^</span><span>&#8221;</span></samp>或<samp>在模式的结尾用<span>&#8220;</span><span>$</span><span>&#8221;</span></samp>。<span> </span></li>
</ul>
<p>为了说明扩展正则表达式如何工作，下面使用<span>REGEXP</span>重写上面所示的<span>LIKE</span>查询：</p>
<p>为了找出以<samp><span>&#8220;</span><span>b</span><span>&#8221;</span></samp>开头的名字，使用<samp><span>&#8220;</span><span>^</span><span>&#8221;</span></samp>匹配名字的开始：</p>
<pre><span>mysql&gt; </span><span><strong><span>SELECT * FROM pet WHERE name REGEXP '^b';</span></strong></span></pre>
<pre><span>+--------+--------+---------+------+------------+------------+</span></pre>
<pre><span>| name&nbsp;&nbsp; | owner&nbsp; | species | sex&nbsp; | birth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | death&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span></pre>
<pre><span>+--------+--------+---------+------+------------+------------+</span></pre>
<pre><span>| Buffy&nbsp; | Harold | dog&nbsp;&nbsp;&nbsp;&nbsp; | f&nbsp;&nbsp;&nbsp; | 1989-05-13 | NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span></pre>
<pre><span>| Bowser | Diane&nbsp; | dog&nbsp;&nbsp;&nbsp;&nbsp; | m&nbsp;&nbsp;&nbsp; | 1989-08-31 | 1995-07-29 |</span></pre>
<pre><span>+--------+--------+---------+------+------------+------------+</span></pre>
<p>如果你想强制使<span>REGEXP</span>比较区分大小写，使用<span>BINARY</span>关键字使其中一个字符串变为二进制字符串。该查询只匹配名称首字母的小写&#8216;<span>b</span>&#8217;。</p>
<pre><span>mysql&gt; </span><span><strong><span>SELECT * FROM pet WHERE name REGEXP BINARY '^b';</span></strong></span></pre>
<p>为了找出以<samp><span>&#8220;</span><span>fy</span><span>&#8221;</span></samp>结尾的名字，使用<samp><span>&#8220;</span><span>$</span><span>&#8221;</span></samp>匹配名字的结尾：</p>
<pre><span>mysql&gt; </span><span><strong><span>SELECT * FROM pet WHERE name REGEXP 'fy$';</span></strong></span></pre>
<pre><span>+--------+--------+---------+------+------------+-------+</span></pre>
<pre><span>| name&nbsp;&nbsp; | owner&nbsp; | species | sex&nbsp; | birth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | death |</span></pre>
<pre><span>+--------+--------+---------+------+------------+-------+</span></pre>
<pre><span>| Fluffy | Harold | cat&nbsp;&nbsp;&nbsp;&nbsp; | f&nbsp;&nbsp;&nbsp; | 1993-02-04 | NULL&nbsp; |</span></pre>
<pre><span>| Buffy&nbsp; | Harold | dog&nbsp;&nbsp;&nbsp;&nbsp; | f&nbsp;&nbsp;&nbsp; | 1989-05-13 | NULL&nbsp; |</span></pre>
<pre><span>+--------+--------+---------+------+------------+-------+</span></pre>
<p>为了找出包含一个<samp><span>&#8220;</span><span>w</span><span>&#8221;</span></samp>的名字，使用以下查询：</p>
<pre><span>mysql&gt; </span><span><strong><span>SELECT * FROM pet WHERE name REGEXP 'w';</span></strong></span></pre>
<pre><span>+----------+-------+---------+------+------------+------------+</span></pre>
<pre><span>| name&nbsp;&nbsp;&nbsp;&nbsp; | owner | species | sex&nbsp; | birth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | death&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span></pre>
<pre><span>+----------+-------+---------+------+------------+------------+</span></pre>
<pre><span>| Claws&nbsp;&nbsp;&nbsp; | Gwen&nbsp; | cat&nbsp;&nbsp;&nbsp;&nbsp; | m&nbsp;&nbsp;&nbsp; | 1994-03-17 | NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span></pre>
<pre><span>| Bowser&nbsp;&nbsp; | Diane | dog&nbsp;&nbsp;&nbsp;&nbsp; | m&nbsp;&nbsp;&nbsp; | 1989-08-31 | 1995-07-29 |</span></pre>
<pre><span>| Whistler | Gwen&nbsp; | bird&nbsp;&nbsp;&nbsp; | NULL | 1997-12-09 | NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span></pre>
<pre><span>+----------+-------+---------+------+------------+------------+</span></pre>
<p>既然如果一个正则表达式出现在值的任何地方，其模式匹配了，就不必在先前的查询中在模式的两侧放置一个通配符以使得它匹配整个值，就像你使用了一个<span>SQL</span>模式那样。</p>
<p>为了找出包含正好<span>5</span>个字符的名字，使用<samp><span>&#8220;</span><span>^</span><span>&#8221;</span></samp>和<samp><span>&#8220;</span><span>$</span><span>&#8221;</span></samp>匹配名字的开始和结尾，和<span>5</span>个<samp><span>&#8220;</span><span>.</span><span>&#8221;</span></samp>实例在两者之间：</p>
<pre><span>mysql&gt; </span><span><strong><span>SELECT * FROM pet WHERE name REGEXP '^.....$';</span></strong></span></pre>
<pre><span>+-------+--------+---------+------+------------+-------+</span></pre>
<pre><span>| name&nbsp; | owner&nbsp; | species | sex&nbsp; | birth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | death |</span></pre>
<pre><span>+-------+--------+---------+------+------------+-------+</span></pre>
<pre><span>| Claws | Gwen&nbsp;&nbsp; | cat&nbsp;&nbsp;&nbsp;&nbsp; | m&nbsp;&nbsp;&nbsp; | 1994-03-17 | NULL&nbsp; |</span></pre>
<pre><span>| Buffy | Harold | dog&nbsp;&nbsp;&nbsp;&nbsp; | f&nbsp;&nbsp;&nbsp; | 1989-05-13 | NULL&nbsp; |</span></pre>
<pre><span>+-------+--------+---------+------+------------+-------+</span></pre>
<p>你也可以使用<samp><span>&#8220;</span><span>{n}</span><span>&#8221;</span></samp>&#8220;重复<span>n</span>次&#8221;操作符重写前面的查询：</p>
<pre><span>mysql&gt; </span><span><strong><span>SELECT * FROM pet WHERE name REGEXP '^.{5}$';</span></strong></span></pre>
<pre><span>+-------+--------+---------+------+------------+-------+</span></pre>
<pre><span>| name&nbsp; | owner&nbsp; | species | sex&nbsp; | birth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | death |</span></pre>
<pre><span>+-------+--------+---------+------+------------+-------+</span></pre>
<pre><span>| Claws | Gwen&nbsp;&nbsp; | cat&nbsp;&nbsp;&nbsp;&nbsp; | m&nbsp;&nbsp;&nbsp; | 1994-03-17 | NULL&nbsp; |</span></pre>
<pre><span>| Buffy | Harold | dog&nbsp;&nbsp;&nbsp;&nbsp; | f&nbsp;&nbsp;&nbsp; | 1989-05-13 | NULL&nbsp; |</span></pre>
<pre><span>+-------+--------+---------+------+------------+-------+</span></pre>
<br />
<br />
<br />
</span>
<img src ="http://www.blogjava.net/shediao/aggbug/223436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shediao/" target="_blank">射雕</a> 2008-08-21 11:43 <a href="http://www.blogjava.net/shediao/archive/2008/08/21/223436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>