﻿<?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-过河卒-随笔分类-DataBase/Sql</title><link>http://www.blogjava.net/ponzmd/category/26610.html</link><description>&lt;i&gt;平凡而简单的人一个，无权无势也无牵无挂。一路厮杀，只进不退，死而后已，岂不爽哉！&lt;br/&gt;
收起对“车”日行千里的羡慕；收起对“马”左右逢缘的感叹；目标记在心里面，向前进。一次一步，一步一脚印，跬步千里。&lt;br/&gt;
这个角色很适合现在的我。&lt;/i&gt; </description><language>zh-cn</language><lastBuildDate>Wed, 17 Oct 2007 03:09:08 GMT</lastBuildDate><pubDate>Wed, 17 Oct 2007 03:09:08 GMT</pubDate><ttl>60</ttl><item><title>读《SQL必知必会》所得 ONE</title><link>http://www.blogjava.net/ponzmd/archive/2007/10/17/153503.html</link><dc:creator>彭俊</dc:creator><author>彭俊</author><pubDate>Wed, 17 Oct 2007 03:01:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/10/17/153503.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/153503.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/10/17/153503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/153503.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/153503.html</trackback:ping><description><![CDATA[<p><strong>第一章：数据库基础</strong></p>
<p>这章里面讲了什么是数据库，什么是表，什么是列，什么是行，什么是数据类型，真的有够烦人的。这里概念不知道已经在多少本书里面被重复过多少遍了。但是，请不久看网上一个介绍Google面试题的帖子，第一题好像就是：请用三句话向你8岁的侄子说明什么是数据库？ 汗...</p>
<p>主键应该具备的条件:每行必须有一个主键值，任意两行的主键值不能相同，主机不允许修改，更新和重用(即使当前行被删除，当前行主键也不能再次赋予新行)</p>
<p><strong>第二章：检索数据</strong></p>
<p>这章是介绍Select语句的，内容简单。</p>
<p>注意一下SQL格式问题：<br />
1.Sql语句处理时，其中所有空格是被忽略的。Sql可以写一行也可以写多行。适当的分隔成多行可以方便阅读和调试。<br />
2.单条Sql语句结束的时候不需要&#8220;；&#8221;来结束，但是多条语句是需要&#8220;；&#8221;来分隔。其实每条都加上；号结束是个好的习惯。但是有些DBMS有些癖好，如SybaseAdaptiveServer不允许Sql语句以分号结束.<br />
3.Sql语句本身的关键字是不区分大小写的，但是数据库元素标识如表名，列名等是要求区分的.</p>
<p><strong>第三章：排序检索数据</strong></p>
<p>这章介绍Order by子句，平时也有，但是有些地方还是要注意</p>
<p>1.Order by子句只能是Select语句的最后一个子句。<br />
2.Order by可以通过使用受限制的非选择列来排序。限制在于这些非选择列必须是当前查找范围内的<br />
3.Order by可以对多列排序，默认每列是升序的，如果要调整则每列都要调整。<br />
降序Desc（Descending），升序Asc(Ascending).<br />
4.Order by子句是安装字典顺序排序的，一般DBMS字典顺序中认为A和a是一样的，这个可以通过DBA来说设置。</p>
<p><strong>第四章：过滤数据</strong></p>
<p>这章介绍Where子句，用Sql没有不用这个的了。</p>
<p>1.Where子句操作符有两个字符形式的操作符，BETWEEN 和 IS NULL；</p>
<p><strong>第五章：高级数据过滤</strong></p>
<p>这章介绍了与Where子句搭配的几个操作符，And ，Or，In，Not</p>
<p><br />
1.组合Where子句可以通过And 和 Or关键字。一般而言，SQL在出来Or操作符前会先出来And操作符。这样就可能带来计算优先级的问题，解决这个问题的方法是通过圆括号来标识。<br />
2.IN操作符适合使用在长的合法选项清单的时候，可以替代多个Or操作符。而且In操作符一般比Or操作符的组合执行要快。IN操作符最大的好处是IN操作符可以包含Select语句。</p>
<p><strong>第六章：用通配符进行过滤</strong></p>
<p>SQL里面的通配符比起正则简单多了，基本上用的是下面几个</p>
<p>1.%：匹配任意多个字符<br />
2._：匹配一个字符<br />
3.[]：匹配在某个范围在的字符；[^]：匹配不在某个字符范围内的字符<br />
4.一般而言通配符过滤执行比较慢，所有应该尽量先执行其他过滤缩小过滤范围后再使用通配符过滤.</p>
<p>先写这么多，呆会要出工了。</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/153503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">彭俊</a> 2007-10-17 11:01 <a href="http://www.blogjava.net/ponzmd/archive/2007/10/17/153503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>