﻿<?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</title><link>http://www.blogjava.net/sxyx2008/category/45446.html</link><description>温馨提示：您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!
</description><language>zh-cn</language><lastBuildDate>Mon, 12 Mar 2012 10:16:35 GMT</lastBuildDate><pubDate>Mon, 12 Mar 2012 10:16:35 GMT</pubDate><ttl>60</ttl><item><title>Windows上將mongodb註冊為系統服務</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/12/371733.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Mon, 12 Mar 2012 07:57:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/12/371733.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/371733.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/12/371733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/371733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/371733.html</trackback:ping><description><![CDATA[<div>mongodb目錄結構<br /><img alt="" src="http://www.blogjava.net/images/blogjava_net/sxyx2008/mongodb.jpg" height="204" width="1102" /><br />在register.bat中輸入以下命令,即可將mongodb註冊為系統服務<br />F:\mongodb\bin\mongod.exe --dbpath="F:\mongodb\db" --logpath="F:\mongodb\log\log.txt" --service</div><img src ="http://www.blogjava.net/sxyx2008/aggbug/371733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-12 15:57 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/12/371733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle建库、建表、用户授权</title><link>http://www.blogjava.net/sxyx2008/archive/2011/11/25/364776.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Fri, 25 Nov 2011 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2011/11/25/364776.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/364776.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2011/11/25/364776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/364776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/364776.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">create</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">temporary</span><span style="color: #000000; ">&nbsp;tablespace&nbsp;transfer_temp&nbsp;tempfile&nbsp;</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">d:\oracle\OracleData\transfer_temp.dbf</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">&nbsp;size&nbsp;10m&nbsp;autoextend&nbsp;</span><span style="color: #0000FF; ">on</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">next</span><span style="color: #000000; ">&nbsp;10m&nbsp;maxsize&nbsp;unlimited&nbsp;extent&nbsp;management&nbsp;local;&nbsp;<br /><br /></span><span style="color: #0000FF; ">create</span><span style="color: #000000; ">&nbsp;tablespace&nbsp;transfer_data&nbsp;logging&nbsp;datafile&nbsp;</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">d:\oracle\OracleData\transfer_data.dbf</span><span style="color: #FF0000; ">'</span><span style="color: #000000; ">&nbsp;size&nbsp;20m&nbsp;autoextend&nbsp;</span><span style="color: #0000FF; ">on</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">next</span><span style="color: #000000; ">&nbsp;20m&nbsp;maxsize&nbsp;unlimited&nbsp;extent&nbsp;management&nbsp;local;&nbsp;<br /><br /></span><span style="color: #0000FF; ">create</span><span style="color: #000000; ">&nbsp;</span><span style="color: #FF00FF; ">user</span><span style="color: #000000; ">&nbsp;transfer&nbsp;identified&nbsp;</span><span style="color: #0000FF; ">by</span><span style="color: #000000; ">&nbsp;transfer&nbsp;</span><span style="color: #0000FF; ">default</span><span style="color: #000000; ">&nbsp;tablespace&nbsp;transfer_data&nbsp;</span><span style="color: #0000FF; ">temporary</span><span style="color: #000000; ">&nbsp;tablespace&nbsp;transfer_temp;&nbsp;<br /><br /></span><span style="color: #0000FF; ">grant</span><span style="color: #000000; ">&nbsp;connect,resource,dba&nbsp;</span><span style="color: #0000FF; ">to</span><span style="color: #000000; ">&nbsp;transfer;&nbsp;<br /><br />conn&nbsp;transfer</span><span style="color: #808080; ">/</span><span style="color: #000000; ">transfer; <br /></span></div><img src ="http://www.blogjava.net/sxyx2008/aggbug/364776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2011-11-25 08:58 <a href="http://www.blogjava.net/sxyx2008/archive/2011/11/25/364776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql添加用户和删除用户(windows环境)</title><link>http://www.blogjava.net/sxyx2008/archive/2011/06/18/352578.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 18 Jun 2011 06:08:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2011/06/18/352578.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/352578.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2011/06/18/352578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/352578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/352578.html</trackback:ping><description><![CDATA[<p>mysql添加用户</p>
<p>先以root用户登入<br />选择要添加的数据库(jbpm)<br />use jbpm<br />grant all on jbpm to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#99;&#111;&#116;&#116;&#64;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;">scott@localhost</a> identified by 'scott'</p>
<p>删除用户</p>
<p>mysql -uroot -proot<br />use mysql<br />delete from user where user='scott' and host='localhost';<br />flush privileges;</p><img src ="http://www.blogjava.net/sxyx2008/aggbug/352578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2011-06-18 14:08 <a href="http://www.blogjava.net/sxyx2008/archive/2011/06/18/352578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BoneCP学习笔记——配置参数</title><link>http://www.blogjava.net/sxyx2008/archive/2011/03/16/346386.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Wed, 16 Mar 2011 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2011/03/16/346386.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/346386.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2011/03/16/346386.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/346386.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/346386.html</trackback:ping><description><![CDATA[<p><strong>一、BoneCP配置文件格式(bonecp-config.xml)：</strong></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bonecp-config</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">default-config</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">default-config</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bonecp-config</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
</span></div>
<strong>二、BoneCP主要配置参数</strong> <br />
<strong><span style="color: red">1.jdbcUrl</span></strong> <br />
设置数据库URL <br />
<strong><span style="color: red">2.username</span></strong> <br />
设置数据库用户名 <br />
<strong><span style="color: red">3.password</span></strong> <br />
设置数据库密码 <br />
<strong><span style="color: red">4.partitionCount</span></strong> <br />
设置分区个数。这个参数默认为1，建议3-4（根据特定应用程序而定）。 <br />
为了减少锁竞争和改善性能，从当前线程分区(thread-affinity)中获取一个connection， <br />
也就是这个样子：<em>partitions[Thread.currentThread().getId() % partitionCount]</em>。当拥有充足的短期(short-lived)的线程时候，这个参数设置越大，性能越好。当超过一定的阀值时，连接池的维护工作就可能对性能造成一定的负面影响（仅当分区上的connection使用耗尽时）。 <br />
<strong><span style="color: red">5.maxConnectionsPerPartition</span></strong> <br />
设置每个分区含有connection最大个数。这个参数默认为2。如果小于2，BoneCP将设置为50。 <br />
比如：partitionCount设置为3，maxConnectionPerPartition设置为5，你就会拥有总共15个connection。 <br />
注意：BoneCP不会将这些connection一起创建出来，而是说在需要更多connection的时候从minConnectionsPerPartition参数开始逐步地增长connection数量。 <br />
<strong><span style="color: red">6.minConnectionsPerPartition</span></strong> <br />
设置每个分区含有connection最大小个数。这个参数默认为0。 <br />
<strong><span style="color: red">7.acquireIncrement</span></strong> <br />
设置分区中的connection增长数量。这个参数默认为1。 <br />
当每个分区中的connection大约快用完时，BoneCP动态批量创建connection， <br />
这个属性控制一起创建多少个connection（不会大于maxConnectionsPerPartition）。 <br />
注意：这个配置属于每个分区的设置。 <br />
<strong><span style="color: red">8.poolAvailabilityThreshold</span></strong> <br />
设置连接池阀值。这个参数默认为20。如果小于0或是大于100，BoneCP将设置为20。 <br />
连接池观察线程(PoolWatchThread)试图为每个分区维护一定数量的可用connection。 <br />
这个数量趋于maxConnectionPerPartition和minConnectionPerPartition之间。这个参数是以百分比的形式来计算的。例如：设置为20，下面的条件如果成立：Free Connections / MaxConnections &lt; poolAvailabilityThreshold；就会创建出新的connection。 <br />
换句话来说连接池为每个分区至少维持20%数量的可用connection。 <br />
设置为0时，每当需要connection的时候，连接池就要重新创建新connection，这个时候可能导致应用程序可能会为了获得新connection而小等一会。 <br />
<strong><span style="color: red">9.connectionTimeout</span></strong> <br />
设置获取connection超时的时间。这个参数默认为Long.MAX_VALUE;单位：毫秒。 <br />
在调用getConnection获取connection时，获取时间超过了这个参数，就视为超时并报异常。 <br />
<br />
<strong>三、BoneCP线程配置参数</strong> <br />
<strong><span style="color: red">1.releaseHelperThreads</span></strong> <br />
设置connection助手线程个数。这个参数默认为3。如果小于0，BoneCP将设置为3。 <br />
设置为0时，应用程序线程被阻塞，直到连接池执行必要地清除和回收connection，并使connection在其它线程可用。 <br />
设置大于0时，连接池在每个分区中创建助手线程处理回收关闭后的connection（应用程序会通过助手线程异步地将这个connection放置到一个临时队列中进行处理)。 <br />
对于应用程序在每个connection上处理大量工作时非常有用。可能会降低运行速度，不过在高并发的应用中会提高性能。 <br />
<span style="color: red"><strong>2.statementReleaseHelperThreads</strong></span> <br />
设置statement助手线程个数。这个参数默认为3。如果小于0，BoneCP将设置为3。 <br />
设置为0时，应用程序线程被阻塞，直到连接池或JDBC驱动程序关闭statement。 <br />
设置大于0时，连接池会在每个分区中创建助理线程，异步地帮助应用程序关闭statement当应用程序打开了大量的statement是非常有用的。可能会降低运行速度，不过在高并发的应用中会提高性能。 <br />
<strong><span style="color: red">3.maxConnectionAge</span></strong> <br />
设置connection的存活时间。这个参数默认为0，单位：毫秒。设置为0该功能失效。 <br />
通过<em>ConnectionMaxAgeThread</em>观察每个分区中的connection，不管connection是否空闲，如果这个connection距离创建的时间大于这个参数就会被清除。当前正在使用的connection不受影响，直到返回到连接池再做处理。 <br />
<span style="color: red"><strong>4.idleMaxAge</strong></span> <br />
设置connection的空闲存活时间。这个参数默认为60，单位：分钟。设置为0该功能失效。 <br />
通过<em>ConnectionTesterThread</em>观察每个分区中的connection，如果这个connection距离最后使用的时间大于这个参数就会被清除。 <br />
注意：这个参数仅和idleConnectionTestPeriod搭配使用，而且不要在这里设置任何挑衅的参数！ <br />
<span style="color: red"><strong>5.idleConnectionTestPeriod</strong></span> <br />
设置测试connection的间隔时间。这个参数默认为240，单位：分钟。设置为0该功能失效。 <br />
通过<em>ConnectionTesterThread</em>观察每个分区中的connection， 如果这个connection距离最后使用的时间大于这个参数并且距离上一次测试的时间大于这个参数就会向数据库发送一条测试语句，如果执行失败则将这个connection清除。 <br />
注意：这个值仅和idleMaxAge搭配使用，而且不要在这里设置任何挑衅的参数！ <br />
<br />
<strong>三、BoneCP可选配置参数</strong> <br />
<strong><span style="color: red">1.acquireRetryAttempts</span></strong> <br />
设置重新获取连接的次数。这个参数默认为5。 <br />
获取某个connection失败之后会多次尝试重新连接，如果在这几次还是失败则放弃。 <br />
<strong><span style="color: red">2.acquireRetryDelay</span></strong> <br />
设置重新获取连接的次数间隔时间。这个参数默认为7000，单位：毫秒。如果小于等于0，BoneCP将设置为1000。 <br />
获取connection失败之后再次尝试获取connection的间隔时间。 <br />
<strong><span style="color: red">3.lazyInit</span></strong> <br />
设置连接池初始化功能。这个参数默认为false。 <br />
设置为true，连接池将会初始化为空，直到获取第一个connection。 <br />
<strong><span style="color: red">4.statementsCacheSize</span></strong> <br />
设置statement缓存个数。这个参数默认为0。 <br />
<strong><span style="color: red">5.disableJMX</span></strong> <br />
设置是否关闭JMX功能。这个参数默认为false。 <br />
<strong><span style="color: red">6.poolName</span></strong> <br />
设置连接池名字。用于当作JMX和助手线程名字的后缀。 <br />
<br />
<strong>四、BoneCP调试配置参数</strong> <br />
<span style="color: red"><strong>1.closeConnectionWatch</strong></span> <br />
设置是开启connection关闭情况监视器功能。这个参数默认为false。 <br />
每当调用getConnection()时，都会创建<em>CloseThreadMonitor</em>，监视connection有没有关闭或是关闭了两次。警告：这个参数对连接池性能有很大的负面影响，慎用！仅在调试阶段使用！ <br />
<span style="color: red"><strong>2.closeConnectionWatchTimeout</strong></span> <br />
设置关闭connection监视器（CloseThreadMonitor）持续多长时间。这个参数默认为0；单位：毫秒。仅当closeConnectionWatch参数设置为可用时，设置这个参数才会起作用。 <br />
设置为0时，永远不关闭。 <br />
<span style="color: red"><strong>3.logStatementsEnabled</strong></span> <br />
设置是否开启记录SQL语句功能。这个参数默认是false。 <br />
将执行的SQL记录到日志里面（包括参数值）。 <br />
<strong><span style="color: red">4.queryExecuteTimeLimit</span></strong> <br />
设置执行SQL的超时时间。这个参数默认为0；单位：毫秒。 <br />
当查询语句执行的时间超过这个参数，执行的情况就会被记录到日志中。 <br />
设置为0时，该功能失效。 <br />
<span style="color: red"><strong>5.disableConnectionTracking</strong></span> <br />
设置是否关闭connection跟踪功能。这个参数默认为false。 <br />
设置为true，连接池则不会监控connection是否严格的关闭；设置为false，则启用跟踪功能（仅追踪通过Spring或一些事务管理等机制确保正确释放connection并放回到连接池中）。 <br />
<strong><span style="color: red">6.transactionRecoveryEnabled</span></strong> <br />
设置事务回放功能。这个参数默认为false。 <br />
设置为true时，MemorizeTransactionProxy可以记录所有在connection上操作的情况，当connetion操作失败的时候会自动回放先前的操作，如果在回放期间还是失败，则抛出异常。注意：这个功能会使连接池微弱地降低运行速度。 <br />
注：本文转自<font style="background-color: #c7edcc">http://chirs1012f.javaeye.com/blog/805261</font>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/346386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2011-03-16 14:51 <a href="http://www.blogjava.net/sxyx2008/archive/2011/03/16/346386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中的BoneCP数据库连接池</title><link>http://www.blogjava.net/sxyx2008/archive/2011/03/16/346384.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Wed, 16 Mar 2011 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2011/03/16/346384.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/346384.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2011/03/16/346384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/346384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/346384.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: BoneCP is a fast, free, open-source, Java database connection pool (JDBC Pool) library. If you are familiar with C3P0 and DBCP then you already know what this means. For the rest, this is a library th...&nbsp;&nbsp;<a href='http://www.blogjava.net/sxyx2008/archive/2011/03/16/346384.html'>阅读全文</a><img src ="http://www.blogjava.net/sxyx2008/aggbug/346384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2011-03-16 14:48 <a href="http://www.blogjava.net/sxyx2008/archive/2011/03/16/346384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Oracle下基于序列和触发器实现主键自增长</title><link>http://www.blogjava.net/sxyx2008/archive/2010/12/08/340063.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Wed, 08 Dec 2010 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/12/08/340063.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/340063.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/12/08/340063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/340063.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/340063.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;book;<br />
</span><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;sequence&nbsp;book_seq;<br />
</span><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">trigger</span><span style="color: #000000">&nbsp;book_tri;<br />
</span><span style="color: #008080">--</span><span style="color: #008080">创建表格</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;book<br />
(<br />
bookId&nbsp;</span><span style="color: #000000; font-weight: bold">integer</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">primary</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">key</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">,<br />
bookName&nbsp;</span><span style="color: #000000; font-weight: bold">varchar2</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">20</span><span style="color: #000000">),<br />
price&nbsp;</span><span style="color: #000000; font-weight: bold">number</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">3</span><span style="color: #000000">)<br />
)tablespace&nbsp;zfs_data<br />
</span><span style="color: #0000ff">desc</span><span style="color: #000000">&nbsp;&nbsp;book;<br />
</span><span style="color: #008080">--</span><span style="color: #008080">创建序列</span><span style="color: #008080"><br />
--</span><span style="color: #008080">创建一个从10000开始每次递增为1的序列</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;sequence&nbsp;book_seq&nbsp;minvalue&nbsp;</span><span style="color: #800000; font-weight: bold">10000</span><span style="color: #000000">&nbsp;maxvalue&nbsp;</span><span style="color: #800000; font-weight: bold">9999999</span><span style="color: #000000">&nbsp;increment&nbsp;</span><span style="color: #0000ff">by</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">&nbsp;start&nbsp;</span><span style="color: #0000ff">with</span><span style="color: #000000">&nbsp;</span><span style="color: #800000; font-weight: bold">10000</span><span style="color: #000000">&nbsp;;<br />
</span><span style="color: #008080">--</span><span style="color: #008080">创建一个触发器,用于每次插入前自动成成序列的值</span><span style="color: #008080"><br />
</span><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">or</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">replace</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">trigger</span><span style="color: #000000">&nbsp;book_tri<br />
&nbsp;&nbsp;before&nbsp;</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">on</span><span style="color: #000000">&nbsp;book&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;each&nbsp;row<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;book_seq.nextval&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;:new.bookId&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;dual;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #808080">/</span><span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">commit</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<br />
</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;book&nbsp;(bookName,&nbsp;price)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">深入浅出EXTJS</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #800000; font-weight: bold">59</span><span style="color: #000000">);<br />
</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;book&nbsp;(bookName,&nbsp;price)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">深入浅出Jquery</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #800000; font-weight: bold">49</span><span style="color: #000000">);<br />
<br />
</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;book;<br />
</span></div>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/340063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-12-08 14:19 <a href="http://www.blogjava.net/sxyx2008/archive/2010/12/08/340063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图解Microsoft SQL Server 2008 基本安装</title><link>http://www.blogjava.net/sxyx2008/archive/2010/11/09/337661.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Tue, 09 Nov 2010 12:10:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/11/09/337661.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/337661.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/11/09/337661.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/337661.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/337661.html</trackback:ping><description><![CDATA[<p>Microsoft SQL Server 2008 基本安装说明</p>
<p>安装SQL2008的过程与SQL2005的程序基本一样,只不过在安装的过程中部分选项有所改变,当然如果只熟悉SQL2000安装的同志来说则是一个革命性的变动,</p>
<p>一、安装前的准备<br />
1. 需要.Net Framework 3.5，若在Vista或更高的OS上需要3.5 SP1的支持（在SQL2008安装的前会自动更新安装）<br />
2. 需要Widnows PowerShell的支持,WPS是一个功能非常强大的Shell应用，命令与DOX/UNIX兼容并支持直接调用.NET模块做行命令编辑，是非常值得深入研究的工具（在SQL2008安装时会自动更新安装）<br />
3. 需要确保Windows Installer的成功启动，需要4.5以上版本（需要检查服务启动状态service.msc)<br />
4. 需要MDAC2.8 sp1的支持（XP以上系统中已集成）<br />
5. 若机器上已经安装Visual studio 2008则需要VS 2008 sp1以上版本的支持（需要自己从MS的网站上下载安装<a href="http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;displaylang=en</a>）</p>
<p>二、安装配置过程<br />
1.进行SQL Server安装中心，选择"安装"选项，在新的电脑上安装SQL2008可以直接选择&#8220;全新SQL Server独立安装或向现有安装功能"，将会安装一个默认SQL实列，如下图 </p>
<p><img style="width: 816px; height: 613px" border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/0.jpg" width="816" height="613" /></p>
<p><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/1.jpg" width="820" height="615" /></p>
<p>2.功能选择，对于只安装数据库服务器来说，功能的选择上可以按实际工作需要来制定，本人一般选择：数据库引擎服务、客户端工具连接、SQL Server 联机丛书、管理工具－基本、管理工具－完整<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中数据库引擎服务是SQL数据库的核心服务，Analysis及Reporting服务可按部署要求安装，这两个服务可能需要IIS的支持。如下图 <br />
<img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/2.jpg" width="873" height="689" /></p>
<p>3.实列设置，可直接选择默认实例进行安装，或则若同一台服务器中有多个数据服务实列可按不同实列名进行安装。如图<br />
<img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/3.jpg" width="873" height="689" /></p>
<p>4.服务器配置，服务器配置主要是服务启动帐户的配置，服务的帐户名推荐使用NT AUTHORITY\SYSTEM的系统帐户，并指定当前选择服务的启动类型，如图<br />
<img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/4.jpg" width="873" height="689" /></p>
<p>5.数据库引擎配置，在当前配置中主要设置SQL登录验证模式及账户密码，与SQL的数据存储目录，身份验证模式推荐使用混合模式进行验证，在安装过程中内置的SQL Server系统管理员帐户(sa)的密码比较特殊，SQL2008对SA的密码强度要求相对比较高，需要有大小写字母、数字及符号组成，否则将不允许你继续安装。在"指定Sql Server管理员"中最好指定本机的系统管理员administrator。如图<br />
<img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/5.2.jpg" width="873" height="689" /><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/pvistely/5.1.jpg" width="873" height="689" /></p>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/337661.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-11-09 20:10 <a href="http://www.blogjava.net/sxyx2008/archive/2010/11/09/337661.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL CASE WHEN使用[转]</title><link>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337422.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 06 Nov 2010 11:39:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337422.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/337422.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337422.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/337422.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/337422.html</trackback:ping><description><![CDATA[<div class="postBody">Case具有两种格式。简单Case函数和Case搜索函数。
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--简单Case函数</span>
<span style="color: #0000ff">CASE</span> sex
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'1'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'男'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'2'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'女'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>
<span style="color: #008000">--Case搜索函数</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'1'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'男'</span>
<span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'2'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'女'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>
</pre>
<br />
这两种方式，可以实现相同的功能。简单Case函数的写法相对比较简洁，但是和Case搜索函数相比，功能方面会有些限制，比如写判断式。 <br />
还有一个需要注意的问题，Case函数只返回第一个符合条件的值，剩下的Case部分将会被自动忽略。 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--比如说，下面这段SQL，你永远无法得到&#8220;第二类&#8221;这个结果</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> col_1 <span style="color: #0000ff"  ?>IN</span> ( <span style="color: #800080">'a'</span>, <span style="color: #800080">'b'</span>) <span style="color: #0000ff"  ?>THEN</span> <span style="color: #800080">'第一类'</span>
<span style="color: #0000ff">WHEN</span> col_1 <span style="color: #0000ff">IN</span> (<span style="color: #800080">'a'</span>)       <span style="color: #0000ff">THEN</span> <span style="color: #800080">'第二类'</span>
<span style="color: #0000ff">ELSE</span><span style="color: #800080">'其他'</span> <span style="color: #0000ff"  ?>END</span></pre>
<br />
下面我们来看一下，使用Case函数都能做些什么事情。 <br />
<br />
<strong>一，已知数据按照另外一种方式进行分组，分析。</strong> <br />
<br />
有如下数据:(为了看得更清楚，我并没有使用国家代码，而是直接用国家名作为Primary Key) <br />
<table style="border-bottom: #1e7ab4 1px solid; border-left: #1e7ab4 1px solid; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; border-collapse: collapse; border-top: #1e7ab4 1px solid; border-right: #1e7ab4 1px solid; padding-top: 0px" width="200">
    <tbody>
        <tr>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">国家（country）</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" bordercolor="#1e7ab4" width="100" align="center">人口（population）</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">600</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">100</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">100</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">200</td>
        </tr>
        <tr>
            <td align="center">法国</td>
            <td align="center">300</td>
        </tr>
        <tr>
            <td align="center">日本</td>
            <td align="center">250</td>
        </tr>
        <tr>
            <td align="center">德国</td>
            <td align="center">200</td>
        </tr>
        <tr>
            <td align="center">墨西哥</td>
            <td align="center">50</td>
        </tr>
        <tr>
            <td align="center">印度</td>
            <td align="center">250</td>
        </tr>
    </tbody>
</table>
<br />
根据这个国家人口数据，统计亚洲和北美洲的人口数量。应该得到下面这个结果。 <br />
<table style="border-bottom: #1e7ab4 1px solid; border-left: #1e7ab4 1px solid; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; border-collapse: collapse; border-top: #1e7ab4 1px solid; border-right: #1e7ab4 1px solid; padding-top: 0px" width="200">
    <tbody>
        <tr>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">洲</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">人口</td>
        </tr>
        <tr>
            <td align="center">亚洲</td>
            <td align="center">1100</td>
        </tr>
        <tr>
            <td align="center">北美洲</td>
            <td align="center">250</font></td>
        </tr>
        <tr>
            <td align="center">其他</td>
            <td align="center">700</td>
        </tr>
    </tbody>
</table>
<br />
想要解决这个问题，你会怎么做？生成一个带有洲Code的View，是一个解决方法，但是这样很难动态的改变统计的方式。 <br />
如果使用Case函数，SQL代码如下:
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span>  SUM(population),
<span style="color: #0000ff">CASE</span> country
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'中国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'印度'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'日本'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'美国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'加拿大'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'墨西哥'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>
<span style="color: #0000ff">FROM</span>    Table_A
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> <span style="color: #0000ff">CASE</span> country
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'中国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'印度'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'日本'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'美国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'加拿大'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'墨西哥'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>;
</pre>
<br />
同样的，我们也可以用这个方法来判断工资的等级，并统计每一等级的人数。SQL代码如下； <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &lt;= 500 <span style="color: #0000ff">THEN</span> <span style="color: #008000">'1'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 500 <span style="color: #0000ff">AND</span> salary &lt;= 600  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'2'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 600 <span style="color: #0000ff">AND</span> salary &lt;= 800  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'3'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 800 <span style="color: #0000ff">AND</span> salary &lt;= 1000 <span style="color: #0000ff">THEN</span> <span style="color: #800080">'4'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #0000ff">NULL</span> <span style="color: #0000ff">END</span> salary_class,
COUNT(*)
<span style="color: #0000ff">FROM</span>    Table_A
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &lt;= 500 <span style="color: #0000ff">THEN</span> <span style="color: #008000">'1'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 500 <span style="color: #0000ff">AND</span> salary &lt;= 600  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'2'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 600 <span style="color: #0000ff">AND</span> salary &lt;= 800  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'3'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 800 <span style="color: #0000ff">AND</span> salary &lt;= 1000 <span style="color: #0000ff">THEN</span> <span style="color: #800080">'4'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #0000ff">NULL</span> <span style="color: #0000ff">END</span>;
</pre>
<br />
<strong>二，用一个SQL语句完成不同条件的分组。</strong> <br />
<br />
有如下数据 <br />
<table style="border-bottom: #1e7ab4 1px solid; border-left: #1e7ab4 1px solid; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; border-collapse: collapse; border-top: #1e7ab4 1px solid; border-right: #1e7ab4 1px solid; padding-top: 0px" id="Table1" width="200">
    <tbody>
        <tr>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">国家（country）</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">性别（sex）</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">人口（population）</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">1</td>
            <td align="center">340</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">2</td>
            <td align="center">260</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">1</td>
            <td align="center">45</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">2</td>
            <td align="center">55</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">1</td>
            <td align="center">51</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">2</td>
            <td align="center">49</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">1</td>
            <td align="center">40</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">2</td>
            <td align="center">60</td>
        </tr>
    </tbody>
</table>
<br />
按照国家和性别进行分组，得出结果如下 <br />
<table style="border-bottom: #1e7ab4 1px solid; border-left: #1e7ab4 1px solid; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; border-collapse: collapse; border-top: #1e7ab4 1px solid; border-right: #1e7ab4 1px solid; padding-top: 0px" id="Table2" width="200">
    <tbody>
        <tr>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">国家</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">男</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">女</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">340</td>
            <td align="center">260</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">45</td>
            <td align="center">55</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">51</td>
            <td align="center">49</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">40</td>
            <td align="center">60</td>
        </tr>
    </tbody>
</table>
<br />
普通情况下，用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分)，而且SQL语句会比较长。 <br />
下面是一个是用Case函数来完成这个功能的例子 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span> country,
SUM( <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'1'</span> <span style="color: #0000ff">THEN</span>
population <span style="color: #0000ff">ELSE</span> 0 <span style="color: #0000ff">END</span>),  <span style="color: #008000">--男性人口</span>
SUM( <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'2'</span> <span style="color: #0000ff">THEN</span>
population <span style="color: #0000ff">ELSE</span> 0 <span style="color: #0000ff">END</span>)   <span style="color: #008000">--女性人口</span>
<span style="color: #0000ff">FROM</span>  Table_A
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> country;
</pre>
<br />
这样我们使用Select，完成对二维表的输出形式，充分显示了Case函数的强大。 <br />
<br />
<strong>三，在Check中使用Case函数。</strong> <br />
<br />
在Check中使用Case函数在很多情况下都是非常不错的解决方法。可能有很多人根本就不用Check，那么我建议你在看过下面的例子之后也尝试一下在SQL中使用Check。 <br />
下面我们来举个例子 <br />
公司A，这个公司有个规定，女职员的工资必须高于1000块。如果用Check和Case来表现的话，如下所示
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">CONSTRAINT</span> check_salary <span style="color: #0000ff">CHECK</span>
( <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'2'</span>
<span style="color: #0000ff">THEN</span> <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &gt; 1000
<span style="color: #0000ff">THEN</span> 1 <span style="color: #0000ff">ELSE</span> 0 <span style="color: #0000ff">END</span>
<span style="color: #0000ff">ELSE</span> 1 <span style="color: #0000ff">END</span> = 1 )
</pre>
<br />
如果单纯使用Check，如下所示 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">CONSTRAINT</span> check_salary <span style="color: #0000ff">CHECK</span>
( sex = <span style="color: #800080">'2'</span> <span style="color: #0000ff">AND</span> salary &gt; 1000 )
</pre>
<br />
女职员的条件倒是符合了，男职员就无法输入了。 </div>
<div class="postBody"><strong>四，根据条件有选择的UPDATE。</strong> <br />
<br />
例，有如下更新条件
<ol>
    <li>工资5000以上的职员，工资减少10%</li>
    <li>工资在2000到4600之间的职员，工资增加15% </li>
</ol>
很容易考虑的是选择执行两次UPDATE语句，如下所示 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #800080">--条件1</span>
<span style="color: #0000ff">UPDATE</span> Personnel
<span style="color: #0000ff">SET</span> salary = salary * 0.9
<span style="color: #0000ff">WHERE</span> salary &gt;= 5000;
<span style="color: #800080">--条件2</span>
<span style="color: #0000ff">UPDATE</span> Personnel
<span style="color: #0000ff">SET</span> salary = salary * 1.15
<span style="color: #0000ff">WHERE</span> salary &gt;= 2000 <span style="color: #0000ff">AND</span> salary &lt; 4600;
</pre>
<br />
但是事情没有想象得那么简单，假设有个人工资5000块。首先，按照条件1，工资减少10%，变成工资4500。接下来运行第二个SQL时候，因为这个人的工资是4500在2000到4600的范围之内， 需增加15%，最后这个人的工资结果是5175,不但没有减少，反而增加了。如果要是反过来执行，那么工资4600的人相反会变成减少工资。暂且不管这个规章是多么荒诞，如果想要一个SQL 语句实现这个功能的话，我们需要用到Case函数。代码如下: <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">UPDATE</span> Personnel
<span style="color: #0000ff">SET</span> salary = <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &gt;= 5000
　            <span style="color: #0000ff">THEN</span> salary * 0.9
<span style="color: #0000ff">WHEN</span> salary &gt;= 2000 <span style="color: #0000ff">AND</span> salary &lt; 4600
<span style="color: #0000ff">THEN</span> salary * 1.15
<span style="color: #0000ff">ELSE</span> salary <span style="color: #0000ff">END</span>;
</pre>
<br />
这里要注意一点，最后一行的ELSE salary是必需的，要是没有这行，不符合这两个条件的人的工资将会被写成NUll,那可就大事不妙了。在Case函数中Else部分的默认值是NULL，这点是需要注意的地方。 <br />
这种方法还可以在很多地方使用，比如说变更主键这种累活。 <br />
一般情况下，要想把两条数据的Primary key,a和b交换，需要经过临时存储，拷贝，读回数据的三个过程，要是使用Case函数的话，一切都变得简单多了。 <br />
<table style="border-bottom: #1e7ab4 1px solid; border-left: #1e7ab4 1px solid; padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; border-collapse: collapse; border-top: #1e7ab4 1px solid; border-right: #1e7ab4 1px solid; padding-top: 0px" width="300">
    <tbody>
        <tr>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">p_key</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">col_1</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold" width="100" align="center">col_2</td>
        </tr>
        <tr>
            <td align="center">a</td>
            <td align="center">1</td>
            <td align="center">张三</td>
        </tr>
        <tr>
            <td align="center">b</td>
            <td align="center">2</td>
            <td align="center">李四</td>
        </tr>
        <tr>
            <td align="center">c</td>
            <td align="center">3</td>
            <td align="center">王五</td>
        </tr>
    </tbody>
</table>
<br />
<br />
假设有如上数据，需要把主键<code>a</code>和<code>b</code>相互交换。用Case函数来实现的话，代码如下 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">UPDATE</span> SomeTable
<span style="color: #0000ff">SET</span> p_key = <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> p_key = <span style="color: #800080">'a'</span>
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'b'</span>
<span style="color: #0000ff">WHEN</span> p_key = <span style="color: #800080">'b'</span>
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'a'</span>
<span style="color: #0000ff">ELSE</span> p_key <span style="color: #0000ff">END</span>
<span style="color: #0000ff">WHERE</span> p_key <span style="color: #0000ff">IN</span> (<span style="color: #800080">'a'</span>, <span style="color: #800080">'b'</span>);
</pre>
<br />
同样的也可以交换两个Unique key。需要注意的是，如果有需要交换主键的情况发生，多半是当初对这个表的设计进行得不够到位，建议检查表的设计是否妥当。 <br />
<br />
<strong>五，两个表数据是否一致的检查。</strong> <br />
<br />
Case函数不同于DECODE函数。在Case函数中，可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS等等。比如说使用IN,EXISTS，可以进行子查询，从而 实现更多的功能。 <br />
下面具个例子来说明，有两个表，tbl_A,tbl_B，两个表中都有keyCol列。现在我们对两个表进行比较，tbl_A中的keyCol列的数据如果在tbl_B的keyCol列的数据中可以找到， 返回结果'Matched',如果没有找到，返回结果'Unmatched'。 <br />
要实现下面这个功能，可以使用下面两条语句 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--使用IN的时候</span>
<span style="color: #0000ff">SELECT</span> keyCol,
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> keyCol <span style="color: #0000ff">IN</span> ( <span style="color: #0000ff">SELECT</span> keyCol <span style="color: #0000ff">FROM</span> tbl_B )
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'Matched'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'Unmatched'</span> <span style="color: #0000ff">END</span> Label
<span style="color: #0000ff">FROM</span> tbl_A;
<span style="color: #008000">--使用EXISTS的时候</span>
<span style="color: #0000ff">SELECT</span> keyCol,
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> EXISTS ( <span style="color: #0000ff">SELECT</span> * <span style="color: #0000ff">FROM</span> tbl_B
<span style="color: #0000ff">WHERE</span> tbl_A.keyCol = tbl_B.keyCol )
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'Matched'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'Unmatched'</span> <span style="color: #0000ff">END</span> Label
<span style="color: #0000ff">FROM</span> tbl_A;
</pre>
<br />
使用IN和EXISTS的结果是相同的。也可以使用NOT IN和NOT EXISTS，但是这个时候要注意NULL的情况。 <br />
<br />
<strong>六，在Case函数中使用合计函数</strong> <br />
<br />
假设有下面一个表<br />
<table style="border-bottom: #1e7ab4 1px solid; border-left: #1e7ab4 1px solid; padding-bottom: 1px; padding-left: 1px; padding-right: 1px; border-collapse: collapse; border-top: #1e7ab4 1px solid; border-right: #1e7ab4 1px solid; padding-top: 1px">
    <tbody>
        <tr>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold"  noWrap align="center">学号(std_id)</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold"  noWrap align="center">课程ID(class_id)</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold"  noWrap align="center">课程名(class_name)</td>
            <td style="background-color: #1e7ab4; color: #ffffff; font-weight: bold"  noWrap align="center">主修flag（main_class_flg)</td>
        </tr>
        <tr>
            <td align="center">100</td>
            <td align="center">1</td>
            <td align="center">经济学</td>
            <td align="center">Y</td>
        </tr>
        <tr>
            <td align="center">100</td>
            <td align="center">2</td>
            <td align="center">历史学</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">200</td>
            <td align="center">2</td>
            <td align="center">历史学</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">200</td>
            <td align="center">3</td>
            <td align="center">考古学</td>
            <td align="center">Y</td>
        </tr>
        <tr>
            <td align="center">200</td>
            <td align="center">4</td>
            <td align="center">计算机</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">300</td>
            <td align="center">4</td>
            <td align="center">计算机</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">400</td>
            <td align="center">5</td>
            <td align="center">化学</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">500</td>
            <td align="center">6</td>
            <td align="center">数学</td>
            <td align="center">N</td>
        </tr>
    </tbody>
</table>
<br />
有的学生选择了同时修几门课程(100,200)也有的学生只选择了一门课程(300,400,500)。选修多门课程的学生，要选择一门课程作为主修，主修flag里面写入 Y。只选择一门课程的学生，主修flag为N(实际上要是写入Y的话，就没有下面的麻烦事了，为了举例子，还请多多包含)。 <br />
现在我们要按照下面两个条件对这个表进行查询
<ol>
    <li>只选修一门课程的人，返回那门课程的ID</li>
    <li>选修多门课程的人，返回所选的主课程ID </li>
</ol>
<br />
简单的想法就是，执行两条不同的SQL语句进行查询。 <br />
条件1 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--条件1：只选择了一门课程的学生</span>
<span style="color: #0000ff">SELECT</span> std_id, MAX(class_id) <span style="color: #0000ff">AS</span> main_class
<span style="color: #0000ff">FROM</span> Studentclass
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> std_id
<span style="color: #0000ff">HAVING</span> COUNT(*) = 1;
</pre>
<br />
执行结果1 <br />
<pre class="src">STD_ID   MAIN_class
<span style="color: #008000">------   ----------</span>
300      4
400      5
500      6
</pre>
<br />
条件2 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--条件2：选择多门课程的学生</span>
<span style="color: #0000ff">SELECT</span> std_id, class_id <span style="color: #0000ff">AS</span> main_class
<span style="color: #0000ff">FROM</span> Studentclass
<span style="color: #0000ff">WHERE</span> main_class_flg = <span style="color: #800080">'Y'</span> ;
</pre>
<br />
执行结果2 <br />
<pre style="line-height: 109%; background-color: #fff7d6">STD_ID  MAIN_class
<span style="color: #008000">------  ----------</span>
100     1
200     3
</pre>
<br />
如果使用Case函数，我们只要一条SQL语句就可以解决问题，具体如下所示 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span>  std_id,
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> COUNT(*) = 1  <span style="color: #008000">--只选择一门课程的学生的情况</span>
<span style="color: #0000ff">THEN</span> MAX(class_id)
<span style="color: #0000ff">ELSE</span> MAX(<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> main_class_flg = <span style="color: #800080">'Y'</span>
<span style="color: #0000ff">THEN</span> class_id
<span style="color: #0000ff">ELSE</span> <span style="color: #0000ff">NULL</span> <span style="color: #0000ff">END</span>
)
<span style="color: #0000ff">END</span> <span style="color: #0000ff">AS</span> main_class
<span style="color: #0000ff">FROM</span> Studentclass
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> std_id;
</pre>
<br />
运行结果 <br />
<pre style="line-height: 109%; background-color: #fff7d6">STD_ID   MAIN_class
<span style="color: #008000">------   ----------</span>
100      1
200      3
300      4
400      5
500      6
</pre>
<br />
通过在Case函数中嵌套Case函数，在合计函数中使用Case函数等方法，我们可以轻松的解决这个问题。使用Case函数给我们带来了更大的自由度。 <br />
最后提醒一下使用Case函数的新手注意不要犯下面的错误 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">CASE</span> col_1
<span style="color: #0000ff">WHEN</span> 1    　   <span style="color: #0000ff">THEN</span> <span style="color: #800080">'Right'</span>
<span style="color: #0000ff">WHEN</span> <strong class="more">NULL</strong>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'Wrong'</span>
<span style="color: #0000ff">END</span>
</pre>
<p><br />
在这个语句中When Null这一行总是返回unknown，所以永远不会出现Wrong的情况。因为这句可以替换成WHEN col_1 = NULL，这是一个错误的用法，这个时候我们应该选择用WHEN col_1 IS NULL。</p>
</div>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/337422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-11-06 19:39 <a href="http://www.blogjava.net/sxyx2008/archive/2010/11/06/337422.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL SELECT INTO</title><link>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337421.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 06 Nov 2010 11:26:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337421.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/337421.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/337421.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/337421.html</trackback:ping><description><![CDATA[<p>SQL SELECT INTO 语句可用于创建表的备份复件。<br />
SELECT INTO 语句<br />
SELECT INTO 语句从一个表中选取数据，然后把数据插入另一个表中。</p>
<p>SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。</p>
<p>SQL SELECT INTO 语法<br />
您可以把所有的列插入新表：</p>
<p>SELECT *<br />
INTO new_table_name [IN externaldatabase] <br />
FROM old_tablename<br />
或者只把希望的列插入新表：</p>
<p>SELECT column_name(s)<br />
INTO new_table_name [IN externaldatabase] <br />
FROM old_tablename<br />
SQL SELECT INTO 实例 - 制作备份复件<br />
下面的例子会制作 "Persons" 表的备份复件：</p>
<p>SELECT *<br />
INTO Persons_backup<br />
FROM Persons<br />
IN 子句可用于向另一个数据库中拷贝表：</p>
<p>SELECT *<br />
INTO Persons IN 'Backup.mdb'<br />
FROM Persons<br />
如果我们希望拷贝某些域，可以在 SELECT 语句后列出这些域：</p>
<p>SELECT LastName,FirstName<br />
INTO Persons_backup<br />
FROM Persons<br />
SQL SELECT INTO 实例 - 带有 WHERE 子句<br />
我们也可以添加 WHERE 子句。</p>
<p>下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息，创建了一个带有两个列的名为 "Persons_backup" 的表：</p>
<p>SELECT LastName,Firstname<br />
INTO Persons_backup<br />
FROM Persons<br />
WHERE City='Beijing'<br />
SQL SELECT INTO 实例 - 被连接的表<br />
从一个以上的表中选取数据也是可以做到的。</p>
<p>下面的例子会创建一个名为 "Persons_Order_Backup" 的新表，其中包含了从 Persons 和 Orders 两个表中取得的信息：</p>
<p>SELECT Persons.LastName,Orders.OrderNo<br />
INTO Persons_Order_Backup<br />
FROM Persons<br />
INNER JOIN Orders<br />
ON Persons.Id_P=Orders.Id_P<br />
</p>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/337421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-11-06 19:26 <a href="http://www.blogjava.net/sxyx2008/archive/2010/11/06/337421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用SQL UNION 和 UNION ALL 操作符合并多条select语句</title><link>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337420.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 06 Nov 2010 11:22:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337420.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/337420.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/11/06/337420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/337420.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/337420.html</trackback:ping><description><![CDATA[<p>SQL UNION 操作符<br />
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。</p>
<p>请注意，UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时，每条 SELECT 语句中的列的顺序必须相同。</p>
<p>SQL UNION 语法<br />
SELECT column_name(s) FROM table_name1<br />
UNION<br />
SELECT column_name(s) FROM table_name2<br />
注释：默认地，UNION 操作符选取不同的值。如果允许重复的值，请使用 UNION ALL。</p>
<p>SQL UNION ALL 语法<br />
SELECT column_name(s) FROM table_name1<br />
UNION ALL<br />
SELECT column_name(s) FROM table_name2<br />
另外，UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。<br />
下面的例子中使用的原始表：<br />
Employees_China:<br />
E_ID E_Name <br />
01 Zhang, Hua <br />
02 Wang, Wei <br />
03 Carter, Thomas <br />
04 Yang, Ming </p>
<p>Employees_USA:<br />
E_ID E_Name <br />
01 Adams, John <br />
02 Bush, George <br />
03 Carter, Thomas <br />
04 Gates, Bill <br />
使用 UNION 命令<br />
实例<br />
列出所有在中国和美国的不同的雇员名：</p>
<p>SELECT E_Name FROM Employees_China<br />
UNION<br />
SELECT E_Name FROM Employees_USA<br />
结果<br />
E_Name <br />
Zhang, Hua <br />
Wang, Wei <br />
Carter, Thomas <br />
Yang, Ming <br />
Adams, John <br />
Bush, George <br />
Gates, Bill </p>
<p>注释：这个命令无法列出在中国和美国的所有雇员。在上面的例子中，我们有两个名字相同的雇员，他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。<br />
UNION ALL<br />
UNION ALL 命令和 UNION 命令几乎是等效的，不过 UNION ALL 命令会列出所有的值。</p>
<p>SQL Statement 1<br />
UNION ALL<br />
SQL Statement 2<br />
使用 UNION ALL 命令<br />
实例：<br />
列出在中国和美国的所有的雇员：</p>
<p>SELECT E_Name FROM Employees_China<br />
UNION ALL<br />
SELECT E_Name FROM Employees_USA<br />
结果<br />
E_Name <br />
Zhang, Hua <br />
Wang, Wei <br />
Carter, Thomas <br />
Yang, Ming <br />
Adams, John <br />
Bush, George <br />
Carter, Thomas <br />
Gates, Bill <br />
</p>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/337420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-11-06 19:22 <a href="http://www.blogjava.net/sxyx2008/archive/2010/11/06/337420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理</title><link>http://www.blogjava.net/sxyx2008/archive/2010/09/16/332193.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Thu, 16 Sep 2010 08:12:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/09/16/332193.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/332193.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/09/16/332193.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/332193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/332193.html</trackback:ping><description><![CDATA[<p>Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理<br />
<font color="red">温馨提示：您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!! </font><br />
最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。<br />
sqlserver分页 <br />
&nbsp;第一种分页方法<br />
&nbsp;需用到的参数: <br />
&nbsp;pageSize 每页显示多少条数据 <br />
&nbsp;pageNumber 页数 从客户端传来 <br />
&nbsp;totalRecouds 表中的总记录数 select count (*) from 表名 <br />
&nbsp;totalPages 总页数 <br />
&nbsp;totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 <br />
&nbsp;pages 计算前pages 条数据 <br />
&nbsp;pages= pageSize*(pageNumber-1) <br />
&nbsp;SQL语句: <br />
&nbsp;select top pageSize * from 表名 where id&nbsp; not in (select top pages id from 表名 order by id) order by id <br />
&nbsp;第二种分页方法<br />
&nbsp;pageSize 每页显示多少条数据 <br />
&nbsp;pageNumber 页数 从客户端传来<br />
&nbsp;pages=pageSize*(pageNumber-1)+1<br />
&nbsp;select top pageSize * from 表名 where id&gt;=(select max(id) from (select top pages id from 表名 order by id asc ) t )</p>
<p>mysql分页 <br />
&nbsp;需用到的参数: <br />
&nbsp;pageSize 每页显示多少条数据 <br />
&nbsp;pageNumber 页数 从客户端传来 <br />
&nbsp;totalRecouds 表中的总记录数 select count (*) from 表名 <br />
&nbsp;totalPages 总页数 <br />
&nbsp;totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 <br />
&nbsp;pages 起始位置 <br />
&nbsp;pages= pageSize*(pageNumber-1) <br />
&nbsp;SQL语句: <br />
&nbsp;select * from 表名 limit pages, pageSize; <br />
&nbsp;mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize <br />
&nbsp;起始位置=页大小*(页数-1) <br />
&nbsp;起始位置=pageSize*(pageNumber -1) </p>
<p>oracle分页<br />
&nbsp;pageSize 每页显示多少条数据 <br />
&nbsp;pageNumber 页数 从客户端传来 <br />
&nbsp;totalRecouds 表中的总记录数 select count (*) from 表名 <br />
&nbsp;totalPages 总页数 <br />
&nbsp;totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 <br />
&nbsp;startPage 起始位置 <br />
&nbsp;startPage= pageSize*(pageNumber-1)+1<br />
&nbsp;endPage=startPage+pageSize<br />
&nbsp;SQL语句<br />
&nbsp;select a.* from <br />
&nbsp;(<br />
&nbsp;&nbsp; select rownum num ,t.* from&nbsp; 表名 t where 某列=某值 order by id asc <br />
&nbsp;)a<br />
&nbsp;where a.num&gt;=startPage and a.num&lt;endPage</p>
<p>db2分页<br />
&nbsp;int startPage=1&nbsp; //起始页<br />
&nbsp;int endPage;&nbsp;&nbsp;&nbsp;&nbsp; //终止页<br />
&nbsp;int pageSize=5;&nbsp; //页大小<br />
&nbsp;int pageNumber=1 //请求页</p>
<p>&nbsp;startPage=(pageNumber-1)*pageSize+1 <br />
&nbsp;endPage=(startPage+pageSize);</p>
<p><br />
&nbsp;SQL语句<br />
&nbsp;select * from (select 字段1,字段2,字段3,字段4,字段5,rownumber() over(order by 排序字段 asc ) as rowid&nbsp; from 表名 )as a where a.rowid &gt;= startPage AND a.rowid &lt;endPage</p>
<p>access分页<br />
&nbsp;pageSize 每页显示多少条数据 <br />
&nbsp;pageNumber 页数 从客户端传来<br />
&nbsp;pages=pageSize*(pageNumber-1)+1<br />
&nbsp;SQL语句<br />
&nbsp;select top pageSize * from 表名 where id&gt;=(select max(id) from (select top pages id from 表名 order by id asc ) t )</p>
<p><br />
&nbsp;<font color="red">温馨提示：您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!! </font></p>
<img src ="http://www.blogjava.net/sxyx2008/aggbug/332193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-09-16 16:12 <a href="http://www.blogjava.net/sxyx2008/archive/2010/09/16/332193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle创建删除用户、角色、表空间、导入导出、命令总结</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324585.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:56:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324585.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324585.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324585.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324585.html</trackback:ping><description><![CDATA[<p>删除用户</p>
<p>drop user user_name cascade;</p>
<p>建立表空间</p>
<p>CREATE TABLESPACE data01<br />
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M<br />
UNIFORM. SIZE 128k; #指定区尺寸为128k,如不指定，区尺寸默认为64k</p>
<p>删除表空间</p>
<p>DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;</p>
<p>一、建立表空间</p>
<p>CREATE TABLESPACE data01<br />
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M<br />
UNIFORM. SIZE 128k; #指定区尺寸为128k,如不指定，区尺寸默认为64k</p>
<p>二、建立UNDO表空间</p>
<p>CREATE UNDO TABLESPACE UNDOTBS02<br />
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M</p>
<p>#注意：在OPEN状态下某些时刻只能用一个UNDO表空间，如果要用新建的表空间，必须切换到</p>
<p>该表空间:</p>
<p>ALTER SYSTEM SET undo_tablespace=UNDOTBS02;</p>
<p>三、建立临时表空间</p>
<p>CREATE TEMPORARY TABLESPACE temp_data<br />
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M</p>
<p>四、改变表空间状态</p>
<p>1.使表空间脱机</p>
<p>ALTER TABLESPACE game OFFLINE;</p>
<p>如果是意外删除了数据文件，则必须带有RECOVER选项</p>
<p>ALTER TABLESPACE game OFFLINE FOR RECOVER;</p>
<p>2.使表空间联机</p>
<p>ALTER TABLESPACE game ONLINE;</p>
<p><br />
3.使数据文件脱机</p>
<p>ALTER DATABASE DATAFILE 3 OFFLINE;</p>
<p>4.使数据文件联机</p>
<p>ALTER DATABASE DATAFILE 3 ONLINE;</p>
<p>5.使表空间只读</p>
<p>ALTER TABLESPACE game READ ONLY;</p>
<p>6.使表空间可读写</p>
<p>ALTER TABLESPACE game READ WRITE;</p>
<p>五、删除表空间</p>
<p>DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;</p>
<p>六、扩展表空间</p>
<p>首先查看表空间的名字和所属文件</p>
<p>select tablespace_name, file_id, file_name,<br />
round(bytes/(1024*1024),0) total_space<br />
from dba_data_files<br />
order by tablespace_name;</p>
<p>1.增加数据文件<br />
ALTER TABLESPACE game<br />
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;</p>
<p>2.手动增加数据文件尺寸<br />
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'<br />
RESIZE 4000M;</p>
<p>3.设定数据文件自动扩展<br />
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf<br />
AUTOEXTEND ON NEXT 100M<br />
MAXSIZE 10000M;</p>
<p>设定后查看表空间信息</p>
<p>SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,<br />
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"<br />
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C<br />
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE</p>
<p>&nbsp;</p>
<p>//创建临时表空间</p>
<p>create temporary tablespace zfmi_temp<br />
tempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf' <br />
size 32m <br />
autoextend on <br />
next 32m maxsize 2048m<br />
extent management local;</p>
<p>//tempfile参数必须有</p>
<p><br />
//创建数据表空间</p>
<p>create tablespace zfmi<br />
logging<br />
datafile 'D:\oracle\oradata\zfmi\zfmi.dbf' <br />
size 100m <br />
autoextend on <br />
next 32m maxsize 2048m<br />
extent management local;</p>
<p>//datafile参数必须有</p>
<p><br />
//删除用户以及用户所有的对象</p>
<p>drop user zfmi cascade;</p>
<p>//cascade参数是级联删除该用户所有对象，经常遇到如用户有对象而未加此参数则用户删不了的问题，所以习惯性的加此参数</p>
<p><br />
//删除表空间<br />
前提：删除表空间之前要确认该表空间没有被其他用户使用之后再做删除</p>
<p>drop tablespace zfmi including contents and datafiles cascade onstraints;</p>
<p>//including contents 删除表空间中的内容，如果删除表空间之前表空间中有内容，而未加此参数，表空间删不掉，所以习惯性的加此参数<br />
//including datafiles 删除表空间中的数据文件 <br />
//cascade constraints 同时删除tablespace中表的外键参照</p>
<p>&nbsp;</p>
<p>如果删除表空间之前删除了表空间文件，解决办法:</p>
<p>如果在清除表空间之前，先删除了表空间对应的数据文件，会造成数据库无法正常启动和关闭。<br />
可使用如下方法恢复（此方法已经在oracle9i中验证通过）：<br />
下面的过程中，filename是已经被删除的数据文件，如果有多个，则需要多次执行；tablespace_name是相应的表空间的名称。<br />
$ sqlplus /nolog<br />
SQL&gt; conn / as sysdba;<br />
如果数据库已经启动，则需要先执行下面这行：<br />
SQL&gt; shutdown abort<br />
SQL&gt; startup mount <br />
SQL&gt; alter database datafile 'filename' offline drop; <br />
SQL&gt; alter database open; <br />
SQL&gt; drop tablespace tablespace_name including contents;</p>
<p><br />
//创建用户并指定表空间</p>
<p>create user zfmi identified by zfmi<br />
default tablespace zfmi temporary tablespace zfmi_temp;</p>
<p>//identified by 参数必须有</p>
<p><br />
//授予message用户DBA角色的所有权限</p>
<p>GRANT DBA TO zfmi;</p>
<p><br />
//给用户授予权限</p>
<p>grant connect,resource to zfmi; (db2：指定所有权限)</p>
<p>&nbsp;</p>
<p>导入导出命令：</p>
<p>Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件， imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库，一个用来测试，一个用来正式使用。</p>
<p>执行环境：可以在SQLPLUS.EXE或者DOS（命令行）中执行，<br />
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径，<br />
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。<br />
oracle用java编写，SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。<br />
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类，完成导入导出功能。</p>
<p>下面介绍的是导入导出的实例。<br />
数据导出：<br />
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中<br />
&nbsp;&nbsp; exp system/manager@TEST file=d:daochu.dmp full=y<br />
2 将数据库中system用户与sys用户的表导出<br />
&nbsp;&nbsp; exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)<br />
3 将数据库中的表inner_notify、notify_staff_relat导出<br />
&nbsp;&nbsp;&nbsp; exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)</p>
<p>4 将数据库中的表table1中的字段filed1以"00"打头的数据导出<br />
&nbsp;&nbsp; exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"</p>
<p>上面是常用的导出，对于压缩，既用winzip把dmp文件可以很好的压缩。<br />
也可以在上面命令后面 加上 compress=y 来实现。</p>
<p>数据的导入<br />
1 将D:daochu.dmp 中的数据导入 TEST数据库中。<br />
&nbsp;&nbsp; imp system/manager@TEST file=d:daochu.dmp<br />
&nbsp;&nbsp; imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y<br />
&nbsp;&nbsp; 上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<br />
&nbsp;&nbsp; 在后面加上 ignore=y 就可以了。<br />
2 将d:daochu.dmp中的表table1 导入<br />
imp system/manager@TEST file=d:daochu.dmp tables=(table1)</p>
<p>基本上上面的导入导出够用了。不少情况要先是将表彻底删除，然后导入。</p>
<p>注意：<br />
操作者要有足够的权限，权限不够它会提示。<br />
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。</p>
<p>附录一：<br />
给用户增加导入数据权限的操作<br />
第一,启动sql*puls<br />
第二，以system/manager登陆<br />
第三，create user 用户名 IDENTIFIED BY 密码 （如果已经创建过用户，这步可以省略）<br />
第四，GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,<br />
&nbsp;&nbsp; DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字<br />
第五, 运行-cmd-进入dmp文件所在的目录,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imp userid=system/manager full=y file=*.dmp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 或者 imp userid=system/manager full=y file=filename.dmp</p>
<p>执行示例:<br />
F:WorkOracle_Databackup&gt;imp userid=test/test full=y file=inner_notify.dmp</p>
<p>屏幕显示<br />
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006<br />
(c) Copyright 2000 Oracle Corporation. All rights reserved.</p>
<p>连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production<br />
With the Partitioning option<br />
JServer Release 8.1.7.0.0 - Production</p>
<p>经由常规路径导出由EXPORT:V08.01.07创建的文件<br />
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入<br />
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)<br />
. 正在将AICHANNEL的对象导入到 AICHANNEL<br />
. . 正在导入表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "INNER_NOTIFY"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4行被导入<br />
准备启用约束条件...<br />
成功终止导入，但出现警告。</p>
<p><br />
附录二：<br />
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.<br />
先建立import9.par,<br />
然后，使用时命令如下：imp parfile=/filepath/import9.par<br />
例 import9.par 内容如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROMUSER=TGPMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TOUSER=TGPMS2&nbsp;&nbsp;&nbsp;&nbsp; （注：把表的拥有者由FROMUSER改为TOUSER，FROMUSER和TOUSER的用户可以不同）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROWS=Y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INDEXES=Y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GRANTS=Y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONSTRAINTS=Y<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BUFFER=409600<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file==/backup/ctgpc_20030623.dmp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log==/backup/import_20030623.log<br />
</p>
 <img src ="http://www.blogjava.net/sxyx2008/aggbug/324585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:56 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle系统表查询</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324584.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:45:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324584.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324584.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324584.html</trackback:ping><description><![CDATA[数据字典dict总是属于Oracle用户sys的。 <br />
1、用户： <br />
　select username from dba_users; <br />
改口令 <br />
　alter user spgroup identified by spgtest; <br />
2、表空间： <br />
　select * from dba_data_files; <br />
　select * from dba_tablespaces;//表空间 <br />
　select tablespace_name,sum(bytes), sum(blocks) <br />
from dba_free_space group by tablespace_name;//空闲表空间 <br />
　select * from dba_data_files <br />
where tablespace_name='RBS';//表空间对应的数据文件 <br />
　select * from dba_segments <br />
where tablespace_name='INDEXS'; <br />
3、数据库对象： <br />
　select * from dba_objects; <br />
　CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 <br />
　PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。 <br />
4、表： <br />
　select * from dba_tables; <br />
　analyze my_table compute statistics;-&gt;dba_tables后6列 <br />
　select extent_id,bytes from dba_extents <br />
　where segment_name='CUSTOMERS' and segment_type='TABLE' <br />
　order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息 <br />
　列信息： <br />
select distinct table_name <br />
from user_tab_columns <br />
where column_name='SO_TYPE_ID'; <br />
5、索引：　 <br />
　select * from dba_indexes;//索引，包括主键索引 <br />
　select * from dba_ind_columns;//索引列 <br />
　select i.index_name,i.uniqueness,c.column_name <br />
from user_indexes i,user_ind_columns c <br />
　where i.index_name=c.index_name <br />
　and i.table_name ='ACC_NBR';//联接使用 <br />
6、序列： <br />
　select * from dba_sequences; <br />
7、视图： <br />
　select * from dba_views; <br />
　select * from all_views; <br />
text 可用于查询视图生成的脚本 <br />
8、聚簇： <br />
　select * from dba_clusters; <br />
9、快照： <br />
　select * from dba_snapshots; <br />
快照、分区应存在相应的表空间。 <br />
10、同义词： <br />
　select * from dba_synonyms <br />
where table_owner='SPGROUP'; <br />
//if owner is PUBLIC,then the synonyms is a public synonym. <br />
　if owner is one of users,then the synonyms is a private synonym. <br />
11、数据库链： <br />
　select * from dba_db_links; <br />
在spbase下建数据库链 <br />
　create database link dbl_spnew <br />
　connect to spnew identified by spnew using 'jhhx'; <br />
　insert into acc_nbr@dbl_spnew <br />
　select * from acc_nbr where nxx_nbr='237' and line_nbr='8888'; <br />
12、触发器： <br />
　select * from dba_trigers; <br />
存储过程，函数从dba_objects查找。 <br />
其文本：select text from user_source where name='BOOK_SP_EXAMPLE'; <br />
建立出错：select * from user_errors; <br />
oracle总是将存储过程，函数等软件放在SYSTEM表空间。 <br />
13、约束： <br />
（1）约束是和表关联的，可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 <br />
可以临时禁止约束，如： <br />
　alter table book_example <br />
　disable constraint book_example_1; <br />
　alter table book_example <br />
　enable constraint book_example_1; <br />
（2）主键和外键被称为表约束，而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面，而列约束可放在列定义的同一行，这样更具有可读性。 <br />
（3）列约束可从表定义看出，即describe;表约束即主键和外键，可从dba_constraints和dba_cons_columns 查。 <br />
　select * from user_constraints <br />
　where table_name='BOOK_EXAMPLE'; <br />
　select owner,CONSTRAINT_NAME,TABLE_NAME <br />
from user_constraints <br />
where constraint_type='R' <br />
order by table_name; <br />
（4）定义约束可以无名（系统自动生成约束名）和自己定义约束名（特别是主键、外键） <br />
如：create table book_example <br />
(identifier number not null); <br />
create table book_example <br />
(identifier number constranit book_example_1 not null); <br />
14、回滚段： <br />
在所有的修改结果存入磁盘前，回滚段中保持恢复该事务所需的全部信息，必须以数据库发生的事务来相应确定其大小（DML语句才可回滚，create,drop,truncate等DDL不能回滚）。 <br />
回滚段数量=并发事务/4，但不能超过50；使每个回滚段大小足够处理一个完整的事务； <br />
　create rollback segment r05 <br />
　tablespace rbs; <br />
　create rollback segment rbs_cvt <br />
　tablespace rbs <br />
　storage(initial 1M next 500k); <br />
使回滚段在线 <br />
　alter rollback segment r04 online; <br />
用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 <br />
回滚段的区间信息 <br />
　select * from dba_extents <br />
　where segment_type='ROLLBACK' and segment_name='RB1'; <br />
回滚段的段信息,其中bytes显示目前回滚段的字节数 <br />
　select * from dba_segments <br />
where segment_type='ROLLBACK' and segment_name='RB1'; <br />
为事物指定回归段 <br />
　set transaction use rollback segment rbs_cvt <br />
针对bytes可以使用回滚段回缩。 <br />
　alter rollback segment rbs_cvt shrink; <br />
　select bytes,extents,max_extents from dba_segments <br />
where segment_type='ROLLBACK' and segment_name='RBS_CVT'; <br />
回滚段的当前状态信息： <br />
　select * from dba_rollback_segs <br />
where segment_name='RB1'; <br />
比多回滚段状态status，回滚段所属实例instance_num <br />
查优化值optimal <br />
　select n.name,s.optsize <br />
from v$rollname n,v$rollstat s <br />
　where n.usn=s.usn; <br />
回滚段中的数据 <br />
　set transaction use rollback segment rb1;/*回滚段名*/ <br />
　select n.name,s.writes <br />
from v$rollname n,v$rollstat s <br />
　where n.usn=s.usn; <br />
当事务处理完毕，再次查询$rollstat，比较writes(回滚段条目字节数)差值，可确定事务的大小。 <br />
查询回滚段中的事务 <br />
　column rr heading 'RB Segment' format a18 <br />
　column us heading 'Username' format a15 <br />
　column os heading 'Os User' format a10 <br />
　column te heading 'Terminal' format a10 <br />
　select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te <br />
from v$lock l,v$session s,v$rollname r <br />
　where l.sid=s.sid(+) <br />
　and trunc(l.id1/65536)=R.USN <br />
　and l.type='TX' <br />
　and l.lmode=6 <br />
　order by r.name; <br />
15、作业 <br />
查询作业信息 <br />
　select job,broken,next_date,interval,what from user_jobs; <br />
　select job,broken,next_date,interval,what from dba_jobs; <br />
查询正在运行的作业 <br />
　select * from dba_jobs_running; <br />
使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟 <br />
exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。 <br />
<img src ="http://www.blogjava.net/sxyx2008/aggbug/324584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:45 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 创建数据库缓冲池和表空间</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324583.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:41:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324583.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324583.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324583.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324583.html</trackback:ping><description><![CDATA[1、创建数据库 <br />
CREATE DATABASE frk <br />
AUTOMATIC STORAGE NO&nbsp; ON <br />
'C:\' USING CODESET UTF-8 TERRITORY CN COLLATE <br />
USING SYSTEM PAGESIZE 32768 <br />
CATALOG TABLESPACE&nbsp; MANAGED BY DATABASE <br />
USING ( FILE 'E:\db2 data\frksysdectablespace' 51200 )&nbsp; <br />
USER TABLESPACE&nbsp; MANAGED BY DATABASE <br />
USING ( FILE 'E:\db2 data\frksysusertablespace' 51200 ) <br />
TEMPORARY TABLESPACE&nbsp; MANAGED BY DATABASE <br />
USING ( FILE 'E:\db2 data\frksystemptablespace' 51200 ) ; <br />
2、创建缓冲池 <br />
CONNECT TO FRK; <br />
CREATE BUFFERPOOL BUFFER1 IMMEDIATE&nbsp; SIZE 250 PAGESIZE 32 K ; <br />
CREATE BUFFERPOOL BUFFER2 IMMEDIATE&nbsp; SIZE 250 PAGESIZE 32 K ; <br />
CREATE BUFFERPOOL BUFFER3 IMMEDIATE&nbsp; SIZE 250 PAGESIZE 32 K ; <br />
CREATE BUFFERPOOL BUFFER4 IMMEDIATE&nbsp; SIZE 250 PAGESIZE 32 K ; <br />
CONNECT RESET; <br />
3、创建表空间 <br />
CONNECT TO FRK; <br />
CREATE&nbsp; REGULAR&nbsp; TABLESPACE FRKREGTABLESPACE PAGESIZE 32 K&nbsp; MANAGED BY DATABASE&nbsp; USING ( FILE 'E:\db2 data\frkregtablespacedata' 16000 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL&nbsp; BUFFER1&nbsp; DROPPED TABLE RECOVERY ON; <br />
CREATE&nbsp; SYSTEM TEMPORARY&nbsp; TABLESPACE FRKSYSTEMPTSPACE PAGESIZE 32 K&nbsp; MANAGED BY DATABASE&nbsp; USING ( FILE 'E:\db2 data\frmsystemtablespacedata' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL&nbsp; BUFFER2 ; <br />
CREATE&nbsp; USER TEMPORARY&nbsp; TABLESPACE FRKUSERTEMPTSPACE PAGESIZE 32 K&nbsp; MANAGED BY DATABASE&nbsp; USING ( FILE 'E:\db2 data\frkusertemptablespacedata' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL&nbsp; BUFFER3 ; <br />
CREATE&nbsp; LARGE&nbsp; TABLESPACE FRKLAGGERTSPACE PAGESIZE 32 K&nbsp; MANAGED BY DATABASE&nbsp; USING ( FILE 'E:\db2 data\frkloggertablespacedata' 16000 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL&nbsp; BUFFER4 ; <br />
CONNECT RESET; <br />
4、创建表 <br />
CREATE TABLE abc( <br />
&nbsp; id integer NOT NULL , <br />
&nbsp; name VARCHAR(180)) <br />
IN FRKREGTABLESPACE; 
<img src ="http://www.blogjava.net/sxyx2008/aggbug/324583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:41 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2中创建数据库和表的过程</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324582.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:40:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324582.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324582.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324582.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324582.html</trackback:ping><description><![CDATA[1、用户可以通过DB2的工具创建数据库 <br />
2、创建缓冲层 一般建三个32K页的缓冲池 <br />
3、创建三个表空间，系统表空间、用户表空间、常规表空间，这三个表空间分别使用刚才创建的缓冲池 <br />
4、创建数据库表 <br />
（1）无主键 <br />
create table helpDoConfg <br />
( <br />
&nbsp;&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER , <br />
&nbsp;&nbsp; IP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(16), <br />
&nbsp;&nbsp; PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(8), <br />
&nbsp;&nbsp; projectName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(16) <br />
)&nbsp; in webwfuserspace; <br />
（2）主键自增长但不控制起点 <br />
create table helpDoConfg <br />
( <br />
&nbsp;&nbsp; ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null generated&nbsp; as identity, <br />
&nbsp;&nbsp; IP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(16), <br />
&nbsp;&nbsp; PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(8), <br />
&nbsp;&nbsp; projectName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(16) <br />
)&nbsp; in webwfuserspace; <br />
（3）主键自增长控制起点 <br />
create table helpDoConfg <br />
( <br />
&nbsp;&nbsp; ID&nbsp;&nbsp; INTEGER&nbsp;&nbsp; NOT NULL&nbsp; GENERATED BY DEFAULT AS IDENTITY (START WITH 20000, INCREMENT BY 1, CACHE 20, NO CYCLE, <br />
<br />
NO ORDER), <br />
&nbsp;&nbsp; IP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(16), <br />
&nbsp;&nbsp; PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(8), <br />
&nbsp;&nbsp; projectName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR(16) <br />
)&nbsp; in webwfuserspace; <br />
<img src ="http://www.blogjava.net/sxyx2008/aggbug/324582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:40 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle创建表空间、用户、用户授权</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324581.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:38:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324581.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324581.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324581.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324581.html</trackback:ping><description><![CDATA[ORACLE中，表空间是数据管理的基本方法，所有用户的对象要存放在表空间中，也就是用户有空间的使用权，才能创建用户对象．否则是不充许创建对象，因为就是想创建对象, 如表,索引等，也没有地方存放,Oracle会提示:没有存储配额． <br />
<br />
　　因此，在创建对象之前，首先要分配存储空间． <br />
　　分配存储，就要创建表空间： <br />
　　创建表空间示例如下： <br />
create tablespace knowledgeuserspace logging datafile 'F:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management <br />
<br />
local uniform segment space management auto; <br />
<br />
上面的语句分以下几部分： <br />
第一: create tablespace knowledgeuserspace 　创建一个名为 knowledgeuserspace&nbsp; 的表空间. <br />
&nbsp;&nbsp;&nbsp; 对表空间的命名,遵守Oracle 的命名规范就可了. <br />
&nbsp;&nbsp; ORACLE可以创建的表空间有三种类型: <br />
(1)TEMPORARY: 临时表空间,用于临时数据的存放; <br />
创建临时表空间的语法如下: <br />
CREATE TEMPORARY TABLESPACE "SAMPLE"...... <br />
&nbsp;&nbsp; (2)UNDO : 还原表空间. 用于存入重做日志文件. <br />
创建还原表空间的语法如下: <br />
CREATE UNDO TABLESPACE "SAMPLE"...... <br />
(3)用户表空间: 最重要,也是用于存放用户数据表空间 <br />
&nbsp;&nbsp;&nbsp; 可以直接写成: CREATE TABLESPACE "SAMPLE" <br />
TEMPORARY 和 UNDO 表空间是ORACLE 管理的特殊的表空间.只用于存放系统相关数据. <br />
第二:&nbsp;&nbsp; LOGGING 有 NOLOGGING 和 LOGGING 两个选项, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOLOGGING: 创建表空间时,不创建重做日志. <br />
&nbsp;&nbsp;&nbsp;&nbsp; LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志. <br />
用NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表 <br />
<br />
空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选择 NOLOGGING,以加快表空间的创建速度. <br />
第三: DATAFILE 用于指定数据文件的具体位置和大小. <br />
如: datafile 'F:\OracleData\knowledge_data.dbf' size 20m <br />
说明文件的存放位置是 'F:\OracleData\knowledge_data.dbf' size 20m , 文件的大小为20M. <br />
如果有多个文件,可以用逗号隔开: <br />
'F:\OracleData\knowledge_data.dbf' size 20m,&nbsp;&nbsp;&nbsp;&nbsp; 'F:\OracleData\knowledge_data1.dbf' size 20m <br />
但是每个文件都需要指明大小.单位以指定的单位为准如 5M 或 500K. <br />
对具体的文件,可以根据不同的需要,存放大不同的介质上,如磁盘阵列,以减少IO竟争. <br />
指定文件名时,必须为绝对地址,不能使用相对地址. <br />
第四: EXTENT MANAGEMENT LOCAL 存储区管理方法 <br />
在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点. <br />
在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元做为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生 <br />
<br />
很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因. <br />
本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够自动跟踪记录临近空闲空间的情况，避免进行空闲区的合并操作。 <br />
第五: SEGMENT SPACE MANAGEMENT&nbsp;&nbsp; <br />
磁盘扩展管理方法: <br />
SEGMENT SPACE MANAGEMENT: 使用该选项时区大小由系统自动确定。由于 Oracle 可确定各区的最佳大小，所以区大小是可变的。 <br />
UNIFORM SEGMENT SPACE MANAGEMENT:指定区大小，也可使用默认值 (1 MB)。 <br />
第六: 段空间的管理方式: <br />
AUTO: 只能使用在本地管理的表空间中. 使用LOCAL管理表空间时,数据块中的空闲空间增加或减少后，其新状态都会在位图中反映出来。位图使 Oracle 管理空闲空间的行为更加 <br />
<br />
自动化，并为管理空闲空间提供了更好的性,但对含有LOB字段的表不能自动管理. <br />
MANUAL: 目前已不用,主要是为向后兼容. <br />
第七: 指定块大小. 可以具体指定表空间数据块的大小. <br />
创建例子如下: <br />
create tablespace knowledgeuserspace logging datafile 'F:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management <br />
<br />
local uniform segment space management auto; <br />
SQL&gt; / <br />
表空间已创建。 <br />
要删除表空间进,可以 <br />
SQL&gt; drop tablespace knowledgeuserspace; <br />
表空间已丢弃。 <br />
<br />
创建表用、表空间、用户授权完成的过程： <br />
--创建临时表空间 <br />
create temporary tablespace knowledge_temp&nbsp; tempfile 'd:\OracleData\knowledge_temp.dbf' size 10m autoextend on next 10m maxsize unlimited extent management local; <br />
--创建数据表空间 <br />
create tablespace knowledgeuserspace logging datafile 'd:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management local uniform segment space management auto; <br />
--创建用户并指定表空间 <br />
create user knowledge identified by knowledge default tablespace knowledgeuserspace temporary tablespace knowledge_temp; <br />
--给用户授予权限 <br />
grant connect,resource,dba to knowledge; <br />
--连接用户或用户登录 <br />
conn knowledge/knowledge; 
<img src ="http://www.blogjava.net/sxyx2008/aggbug/324581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:38 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql 创建数据库和表的语法以及常用的操作</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324580.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:36:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324580.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324580.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324580.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324580.html</trackback:ping><description><![CDATA[创建数据库的语法 <br />
1、基本语法 <br />
create database tour character set gbk; <br />
<br />
use tour; <br />
无主键自增长的 <br />
create table EMB_T_Employee <br />
( <br />
&nbsp;&nbsp; emb_c_operatorID&nbsp;&nbsp;&nbsp;&nbsp; int not null, <br />
&nbsp;&nbsp; emb_c_empCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; emb_c_gender&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int not null, <br />
&nbsp;&nbsp; emb_c_email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; emb_c_empMPhone&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; emb_c_empTel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(255), <br />
&nbsp;&nbsp; emb_c_empZipCode&nbsp;&nbsp;&nbsp;&nbsp; varchar(50), <br />
&nbsp;&nbsp; emb_c_empPID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar(50), <br />
&nbsp;&nbsp; emb_c_empBirthDate&nbsp;&nbsp; datetime, <br />
&nbsp;&nbsp; emb_c_empAddress&nbsp;&nbsp;&nbsp;&nbsp; varchar(512), <br />
&nbsp;&nbsp; emb_c_regDate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datetime not null, <br />
&nbsp;&nbsp; emb_c_displayOrder&nbsp;&nbsp; int not null, <br />
&nbsp;&nbsp; primary key (emb_c_operatorID) <br />
)engine=INNODB default charset=gbk; <br />
有主键自增长不控制主键的起点 <br />
create table emb_t_dictBusType <br />
( <br />
&nbsp;&nbsp; emb_c_busTypeID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int not null auto_increment, <br />
&nbsp;&nbsp; emb_c_busTypeEnName&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; emb_c_busTypeZhName&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; primary key(emb_c_busTypeID)&nbsp;&nbsp; <br />
)engine=INNODB&nbsp; default charset=gbk; <br />
有主键自增长控制主键的起点 <br />
create table emb_t_dictBusType <br />
( <br />
&nbsp;&nbsp; emb_c_busTypeID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int not null auto_increment, <br />
&nbsp;&nbsp; emb_c_busTypeEnName&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; emb_c_busTypeZhName&nbsp; varchar(255) not null, <br />
&nbsp;&nbsp; primary key(emb_c_busTypeID)&nbsp;&nbsp; <br />
)engine=INNODB auto_increment=1001 default charset=gbk; <br />
2、查看当前所有的数据 <br />
show databases; <br />
3、查看当前数据库的所有表 <br />
show tables; <br />
4、查看表结构 <br />
desc emb_t_dictBusType ; <br />
5、查看字符集 <br />
show variables like 'collation_%'; <br />
show variables like 'character_set_%'; <br />
6、修改数据库的字符集 <br />
alter database tour character set utf-8; <br />
 <img src ="http://www.blogjava.net/sxyx2008/aggbug/324580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:36 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sqlserver创建数据库和表的语法</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324579.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:34:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324579.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324579.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324579.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324579.html</trackback:ping><description><![CDATA[创建数据库表 <br />
use master --切换到master数据库 <br />
go <br />
--检测是否存在同名的数据库 <br />
if exists(select 1 from sysdatabases where name = 'tour') <br />
begin <br />
&nbsp; drop database tour <br />
end <br />
go <br />
create database tour <br />
on --数据文件 <br />
( <br />
&nbsp; name = 'tour_mdf', --数据文件逻辑名 <br />
&nbsp; filename = 'D:\tour.mdf',--数据文件存放路径 <br />
&nbsp; size = 1MB,--初始大小 <br />
&nbsp; maxsize = 10MB,--最大大小 <br />
&nbsp; filegrowth = 1MB--增长速度 <br />
) <br />
log on --日志文件 <br />
( <br />
&nbsp; name = 'tour_ldf', --日志文件逻辑名 <br />
&nbsp; filename = 'D:\tour.ldf',--日志文件存放路径 <br />
&nbsp; size = 1MB,--初始大小 <br />
&nbsp; maxsize = 10MB,--最大大小 <br />
&nbsp; filegrowth = 1MB--增长速度 <br />
) <br />
go <br />
use tour <br />
go <br />
创建数据库表 <br />
if exists(select * from sysobjects where name='stuInfo') drop table stuInfo <br />
create table&nbsp;&nbsp; stuInfo&nbsp;&nbsp;&nbsp; /*-创建学员信息表-*/ <br />
( <br />
<br />
stuNo&nbsp;&nbsp; varchar(6) not null unique,&nbsp;&nbsp; --学号，非空（必填） <br />
stuName&nbsp; varchar(20) not null ,&nbsp; --姓名，非空（必填） <br />
stuAge&nbsp; int&nbsp; not null,&nbsp; --年龄，INT类型默认为4个字节 <br />
stuID&nbsp; NUMERIC(18,0),&nbsp;&nbsp;&nbsp;&nbsp; --身份证号 <br />
stuSeat&nbsp;&nbsp; int&nbsp; IDENTITY (1,1),&nbsp;&nbsp; --座位号，自动编号 <br />
stuAddress&nbsp;&nbsp; text&nbsp;&nbsp; --住址，允许为空，即可选输入 <br />
) <br />
go <br />
<br />
if exists(select * from sysobjects where name='stuMarks') drop table stuMarks <br />
create table&nbsp; stuMarks <br />
( <br />
ExamNo&nbsp; varchar(6)&nbsp; not null foreign key references stuInfo(stuNo) ,&nbsp; --考号 <br />
stuNo&nbsp; varchar(6) not null,&nbsp;&nbsp; --学号 <br />
writtenExam&nbsp; int&nbsp; not null,&nbsp; --笔试成绩 <br />
LabExam&nbsp; int&nbsp; not null&nbsp;&nbsp;&nbsp; --机试成绩 <br />
) <br />
go <br />
<br />
if exists(select * from sysobjects where name='users') drop table users <br />
create table users <br />
( <br />
&nbsp;&nbsp;&nbsp; userID int not null primary key identity(1,1), <br />
&nbsp;&nbsp;&nbsp; userName varchar(255) not null unique, <br />
&nbsp;&nbsp;&nbsp; userPWD varchar(255) not null, <br />
&nbsp;&nbsp;&nbsp; userAge int, <br />
&nbsp;&nbsp;&nbsp; userBirthDay datetime, <br />
&nbsp;&nbsp;&nbsp; userEmail varchar(255) <br />
) <br />
go 
<img src ="http://www.blogjava.net/sxyx2008/aggbug/324579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:34 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle中创建用户和表</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324578.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:33:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324578.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324578.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324578.html</trackback:ping><description><![CDATA[--创建临时表空间 <br />
create temporary tablespace tour_temp tempfile 'd:\OracleData\tour_temp.dbf' size 10m autoextend on next 10m maxsize unlimited extent <br />
<br />
management local; <br />
--创建数据表空间 <br />
create tablespace tour_data logging datafile 'd:\OracleData\tour_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent <br />
<br />
management local; <br />
--创建用户并指定表空间 <br />
create user tour identified by tour default tablespace tour_data temporary tablespace tour_temp; <br />
--给用户授予权限 <br />
grant connect,resource,dba to tour; <br />
--连接用户或用户登录 <br />
conn tour/tour; <br />
<br />
创建表 <br />
非主键自增长 <br />
主表 <br />
create table EMB_T_Role <br />
( <br />
&nbsp;&nbsp; emb_c_roleID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int not null, <br />
&nbsp;&nbsp; emb_c_roleEnName&nbsp;&nbsp;&nbsp;&nbsp; varchar2(255) not null, <br />
&nbsp;&nbsp; emb_c_roleZhName&nbsp;&nbsp;&nbsp;&nbsp; varchar2(255) not null, <br />
&nbsp;&nbsp; emb_c_displayOrder&nbsp;&nbsp; int not null, <br />
&nbsp;&nbsp; primary key (emb_c_roleID) <br />
)tablespace tour_data; <br />
字表 <br />
create table EMB_T_RoleMenu <br />
( <br />
&nbsp;&nbsp; emb_c_roleID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int not null, <br />
&nbsp;&nbsp; emb_c_menuID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int not null <br />
)tablespace tour_data; <br />
外键 <br />
alter table EMB_T_RoleMenu add constraint FK_role_rmenu_roleID foreign key (emb_c_roleID) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; references EMB_T_Role (emb_c_roleID); <br />
<br />
主键自增长 <br />
创建表 <br />
CREATE TABLE EG_THEME <br />
( <br />
&nbsp;&nbsp; THEMEID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTEGER, <br />
&nbsp;&nbsp; THEMENAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar2(256), <br />
&nbsp;&nbsp; MEMO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar2(1000), <br />
&nbsp;&nbsp; constraint PK_THEME_ID primary key (THEMEID) <br />
) tablespace dataInfo_data; <br />
创建序列 <br />
create sequence seq_THEME_THEMEID increment by 1 start with 10001 maxvalue 999999999 minvalue 1; <br />
创建出发器 <br />
create or replace trigger tri_THEME_THEMEID <br />
before insert on EG_THEME for each row <br />
begin <br />
select seq_THEME_THEMEID.nextval into:new.THEMEID from dual; <br />
end; <br />
/ <br />
<br />
在oracle中只有创建序列和触发器才可以解决主键自增长的问题 
<img src ="http://www.blogjava.net/sxyx2008/aggbug/324578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:33 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle所有权限</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324577.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:31:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324577.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324577.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324577.html</trackback:ping><description><![CDATA[<p>grant alter system to sxyx2008; <br />
grant audit system to sxyx2008; </p>
<p>grant create session to sxyx2008; <br />
grant alter session to sxyx2008; <br />
grant restricted session to sxyx2008; <br />
grant debug connect session to sxyx2008; </p>
<p>grant create tablespace to sxyx2008; <br />
grant alter tablespace to sxyx2008; <br />
grant manage tablespace to sxyx2008; <br />
grant drop tablespace to sxyx2008; <br />
grant unlimited tablespace to sxyx2008; </p>
<p>grant create user to sxyx2008; <br />
grant become user to sxyx2008; <br />
grant alter user to sxyx2008; <br />
grant drop user to sxyx2008; </p>
<p>grant create rollback segment to sxyx2008; <br />
grant alter rollback segment to sxyx2008; <br />
grant drop rollback segment to sxyx2008; </p>
<p>grant create table to sxyx2008; <br />
grant create any table to sxyx2008; <br />
grant alter any table to sxyx2008; <br />
grant backup any table to sxyx2008; <br />
grant drop any table to sxyx2008; <br />
grant lock any table to sxyx2008; <br />
grant comment any table to sxyx2008; <br />
grant select any table to sxyx2008; <br />
grant insert any table to sxyx2008; <br />
grant update any table to sxyx2008; <br />
grant delete any table to sxyx2008; <br />
grant under any table to sxyx2008; <br />
grant flashback any table to sxyx2008; </p>
<p>grant create cluster to sxyx2008; <br />
grant create any cluster to sxyx2008; <br />
grant alter any cluster to sxyx2008; <br />
grant drop any cluster to sxyx2008; </p>
<p>grant create any index to sxyx2008; <br />
grant alter any index to sxyx2008; <br />
grant drop any index to sxyx2008; </p>
<p>grant create synonym to sxyx2008; <br />
grant create any synonym to sxyx2008; <br />
grant drop any synonym to sxyx2008; <br />
grant create public synonym to sxyx2008; <br />
grant drop public synonym to sxyx2008; </p>
<p>grant create view to sxyx2008; <br />
grant create any view to sxyx2008; <br />
grant drop any view to sxyx2008; <br />
grant under any view to sxyx2008; <br />
grant merge any view to sxyx2008; <br />
grant drop any materialized view to sxyx2008; <br />
grant create materialized view to sxyx2008; <br />
grant create any materialized view to sxyx2008; <br />
grant alter any materialized view to sxyx2008; </p>
<p>grant create sequence to sxyx2008; <br />
grant create any sequence to sxyx2008; <br />
grant alter any sequence to sxyx2008; <br />
grant drop any sequence to sxyx2008; <br />
grant select any sequence to sxyx2008; </p>
<p>grant create database link to sxyx2008; <br />
grant create public database link to sxyx2008; <br />
grant drop public database link to sxyx2008; <br />
grant alter database to sxyx2008; <br />
grant administer database trigger to sxyx2008; <br />
grant export full database to sxyx2008; <br />
grant import full database to sxyx2008; </p>
<p><br />
grant create role to sxyx2008; <br />
grant drop any role to sxyx2008; <br />
grant grant any role to sxyx2008; <br />
grant alter any role to sxyx2008; </p>
<p>grant force transaction to sxyx2008; <br />
grant force any transaction to sxyx2008; <br />
grant select any transaction to sxyx2008; </p>
<p>grant create procedure to sxyx2008; <br />
grant create any procedure to sxyx2008; <br />
grant alter any procedure to sxyx2008; <br />
grant drop any procedure to sxyx2008; <br />
grant execute any procedure to sxyx2008; <br />
grant debug any procedure to sxyx2008; </p>
<p>grant create trigger to sxyx2008; <br />
grant create any trigger to sxyx2008; <br />
grant alter any trigger to sxyx2008; <br />
grant drop any trigger to sxyx2008; </p>
<p>grant create profile to sxyx2008; <br />
grant alter profile to sxyx2008; <br />
grant drop profile to sxyx2008; <br />
grant drop any sql profile to sxyx2008; <br />
grant alter any sql profile to sxyx2008; <br />
grant create any sql profile to sxyx2008; </p>
<p>grant create type to sxyx2008; <br />
grant create any type to sxyx2008; <br />
grant alter any type to sxyx2008; <br />
grant drop any type to sxyx2008; <br />
grant execute any type to sxyx2008; <br />
grant under any type to sxyx2008; </p>
<p>grant create any directory to sxyx2008; <br />
grant drop any directory to sxyx2008; </p>
<p>grant create library to sxyx2008; <br />
grant create any library to sxyx2008; <br />
grant alter any library to sxyx2008; <br />
grant drop any library to sxyx2008; <br />
grant execute any library to sxyx2008; </p>
<p>grant create operator to sxyx2008; <br />
grant create any operator to sxyx2008; <br />
grant alter any operator to sxyx2008; <br />
grant drop any operator to sxyx2008; <br />
grant execute any operator to sxyx2008; </p>
<p>grant create indextype to sxyx2008; <br />
grant create any indextype to sxyx2008; <br />
grant alter any indextype to sxyx2008; <br />
grant drop any indextype to sxyx2008; <br />
grant execute any indextype to sxyx2008; </p>
<p>grant create dimension to sxyx2008; <br />
grant create any dimension to sxyx2008; <br />
grant alter any dimension to sxyx2008; <br />
grant drop any dimension to sxyx2008; </p>
<p>grant manage any queue to sxyx2008; <br />
grant enqueue any queue to sxyx2008; <br />
grant dequeue any queue to sxyx2008; </p>
<p>grant query rewrite to sxyx2008; <br />
grant global query rewrite to sxyx2008; </p>
<p>grant create any context to sxyx2008; <br />
grant drop any context to sxyx2008; <br />
grant create evaluation context to sxyx2008; <br />
grant create any evaluation context to sxyx2008; <br />
grant alter any evaluation context to sxyx2008; <br />
grant drop any evaluation context to sxyx2008; <br />
grant execute any evaluation context to sxyx2008; </p>
<p>grant create any outline to sxyx2008; <br />
grant alter any outline to sxyx2008; <br />
grant drop any outline to sxyx2008; </p>
<p>grant create rule set to sxyx2008; <br />
grant create any rule set to sxyx2008; <br />
grant alter any rule set to sxyx2008; <br />
grant drop any rule set to sxyx2008; <br />
grant execute any rule set to sxyx2008; <br />
grant create rule to sxyx2008; <br />
grant create any rule to sxyx2008; <br />
grant alter any rule to sxyx2008; <br />
grant drop any rule to sxyx2008; <br />
grant execute any rule to sxyx2008; </p>
<p>grant administer sql tuning set to sxyx2008; <br />
grant administer any sql tuning set to sxyx2008; </p>
<p>grant manage file group to sxyx2008; <br />
grant manage any file group to sxyx2008; <br />
grant read any file group to sxyx2008; </p>
<p>grant create job to sxyx2008; <br />
grant create any job to sxyx2008; <br />
grant create external job to sxyx2008; </p>
<p>grant select any dictionary to sxyx2008; <br />
grant analyze any dictionary to sxyx2008; </p>
<p>grant grant any privilege to sxyx2008; <br />
grant grant any object privilege to sxyx2008; </p>
<p>grant exempt access policy to sxyx2008; <br />
grant exempt identity policy to sxyx2008; </p>
<p>grant alter resource cost to sxyx2008; <br />
grant administer resource manager to sxyx2008; </p>
<p>grant sysdba to sxyx2008; </p>
<p>grant sysoper to sxyx2008; </p>
<p>grant audit any to sxyx2008; </p>
<p>grant analyze any to sxyx2008; </p>
<p>grant on commit refresh to sxyx2008; </p>
<p>grant resumable to sxyx2008; </p>
<p>grant advisor to sxyx2008; </p>
<p>grant execute any program to sxyx2008; </p>
<p>grant execute any class to sxyx2008; </p>
<p>grant manage scheduler to sxyx2008; </p>
<p>grant change notification to sxyx2008; <br />
</p>
 <img src ="http://www.blogjava.net/sxyx2008/aggbug/324577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:31 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle创建用户及表空间并授权</title><link>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324576.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sat, 26 Jun 2010 17:22:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324576.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/324576.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2010/06/27/324576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/324576.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/324576.html</trackback:ping><description><![CDATA[--创建临时表空间<br />
create temporary tablespace eos_temp tempfile 'D:\oracle\product\10.2.0\oradata\orcl\eos_temp.dbf' size 10m autoextend on next 10m maxsize unlimited extent management local;<br />
--创建数据表空间<br />
create tablespace eos_space logging datafile 'D:\oracle\product\10.2.0\oradata\orcl\eos_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management local;<br />
--创建用户并指定表空间<br />
create user eos identified by eos default tablespace eos_space temporary tablespace eos_temp;<br />
--给用户授予权限<br />
grant connect,resource,dba to eos;<br />
--连接用户或用户登录<br />
conn eos/eos;<br />
--查询该用户名中的表<br />
select table_name from user_tables where user='eos';
 <img src ="http://www.blogjava.net/sxyx2008/aggbug/324576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2010-06-27 01:22 <a href="http://www.blogjava.net/sxyx2008/archive/2010/06/27/324576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>