??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品亚洲人成在线观看下载 ,久久国产亚洲精品,亚洲精品乱码久久久久久蜜桃不卡http://www.tkk7.com/zhhp1314520/articles/hsql.html捕风捕风Fri, 14 Mar 2008 06:20:00 GMThttp://www.tkk7.com/zhhp1314520/articles/hsql.htmlhttp://www.tkk7.com/zhhp1314520/comments/186287.htmlhttp://www.tkk7.com/zhhp1314520/articles/hsql.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/186287.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/186287.htmlHSQLDB 是一个开源的DBMS数据库,以其体积y、功能实用、用方便而越来越受到开发h员的Ƣ迎Q特别是在^时的开发、单元测试中。如果你不想安装庞大? ORACLE、SQL Server数据库,同时又想快拥有一个可用的数据库,那么HSQLDBl对是你的首选?br />
Ant是一个h皆知之的打包发布工具Q其单的语法Q丰富的功能Q让我们不但可以方便地进行像资源理、编译、运行、测试的功能Q同时也能够快速地理数据库?br />
下面׃q两者ؓ例,来介l一下他们的l合q用?/span>


一、下载Ant和HSQLDBQ?/strong>

Ant的下载地址Q?a >http://ant.apache.org/bindownload.cgi
HSQLDB的下载地址Q?a >http://sourceforge.net/project/showfiles.php?group_id=23316

二、安装Ant和HSQLDBQ?/strong>

Ant的安装我׃多说了,可以参考其|站的文档。HSQLDB的安装更单,直接把hsqldb.jar包拷贝到你工E的lib目录下就可以了?br />
三、配|HSQLDBQ?/strong>

在你的工E目录下创徏一个名为data的目录,q是HSQLDB用来存放数据文g的地斏V够单吧Q^_^?br />
四、编写Ant脚本Q?br />
我们的Ant脚本很简单,主要的功能有Q启动数据库、关闭数据库、显CSwing界面的HSQLDB理工具。请看下面的XML文g

<?xml version="1.0" encoding="UTF-8"?>

<project name="hibernate-hsql" default="startDb">

  
<!-- Set default database properties -->
  
<property name="hjar" value="lib/hsqldb.jar" />
  
<property name="hclass" value="org.hsqldb.Server" />
  
<property name="hfile" value="-database.0 data/test" />
  
<property name="halias" value="test" />
  
<property name="hport" value="9005" />

  
<!-- Start up HSQLDB instance, use default properties as arguments: database file,database name,port -->
  
<target name="startDb">
  
<java fork="true" classname="${hclass}" 
        classpath
="${hjar}" 
        args
="${hfile} -dbname.0 ${halias} -port ${hport}" />
  
</target>

  
<!-- Start up HSQLDB swing manager UI -->    
  
<target name="hsqldm">
  
<java fork="true" classname="org.hsqldb.util.DatabaseManagerSwing" 
        classpath
="${hjar}"  />
  
</target> 
    
  
<!-- Shut down HSQLDB -->    
  
<target name="shutdownDb">
    
<sql classpath="${hjar}"
           driver
="org.hsqldb.jdbcDriver" 
           url
="jdbc:hsqldb:hsql://localhost:${hport}/${halias}" 
           userid
="sa" password="" 
           print
="yes">
        SHUTDOWN
    
</sql>
  
</target>
    
</project>


首先我们定义了几个属性:

·hjarQHSQLDB的JAR包位|?br /> ·hclassQorg.hsqldb.ServerQ代表了HSQLDB?br />

·hfileQ相当于URLQ其中database.0代表了第一个数据库Qdata是存放数据的地方Qtest是数据库?br /> ·haliasQ别?br /> ·hportQ端口号Q默认ؓ9905

接着我们我们看startDbq个TargetQ它相当于我们在DOS下{到data目录下,执行java -classpath /lib/hsqldb.jar org.hsqldb.Server。启动HSQLDB数据库。执行该Target后我们可以看到如下输出:

startDb:
     [java] The args attribute is deprecated. Please use nested arg elements.
     [java] [Server@a62fc3]: [Thread[main,5,main]]: checkRunning(false) entered
     [java] [Server@a62fc3]: [Thread[main,5,main]]: checkRunning(false) exited
     [java] [Server@a62fc3]: Startup sequence initiated from main() method
     [java] [Server@a62fc3]: Loaded properties from [D:\peng\Java\Pro\framework\hibernate\server.properties]
     [java] [Server@a62fc3]: Initiating startup sequence...
     [java] [Server@a62fc3]: Server socket opened successfully in 32 ms.
     [java] [Server@a62fc3]: Database [index=0, id=0, db=file:data/test, alias=test] opened sucessfully in 968 ms.
     [java] [Server@a62fc3]: Startup sequence completed in 1000 ms.
     [java] [Server@a62fc3]: 2008-02-24 22:56:39.468 HSQLDB server 1.8.0 is online
     [java] [Server@a62fc3]: To close normally, connect and execute SHUTDOWN SQL
     [java] [Server@a62fc3]: From command line, use [Ctrl]+[C] to abort abruptly

hsqldbmq个Target是一个Swing界面的HSQLDB理工具Q可以在上面执行一pd的简单的SQL操作Q对于不想看日志的h来说比较方便Q但功能不多。值得注意的是Q执行这个Targetq要先启动HSQLDB?br /> 启动后我们可以看到如下界面:



最后是HSQLB的关闭了。在Ant中我们可以采?lt;sql></sql>q个命o来执行SQL操作Q首先当然是指定数据库的一 pd配置信息Q然后在<sql></sql>之间书写SQL语句。这里SHUTDOWN是HSQLDB提供的一个用来关闭数据库 的命令。执行该命o后,我们可以看到如下输出Q?br />
 [java] [Server@a62fc3]: Initiating shutdown sequence...
 [java] [Server@a62fc3]: Shutdown sequence completed in 16 ms.
 [java] [Server@a62fc3]: 2008-02-24 22:57:27.375 SHUTDOWN : System.exit() is called next

OKQ这个简单的脚本完成了Q现在我们可以直接在DOS、Eclipse下启动、关闭、浏览HSQLDB了?/span>
posted on 2008-02-24 22:40 Paul Lin 阅读(820) 评论(2)  ~辑  收藏 所属分c? Java 工具


捕风 2008-03-14 14:20 发表评论
]]>
深入出理解索引l构http://www.tkk7.com/zhhp1314520/articles/sql_index.html捕风捕风Fri, 05 Jan 2007 07:06:00 GMThttp://www.tkk7.com/zhhp1314520/articles/sql_index.htmlhttp://www.tkk7.com/zhhp1314520/comments/91999.htmlhttp://www.tkk7.com/zhhp1314520/articles/sql_index.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/91999.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/91999.html阅读全文

捕风 2007-01-05 15:06 发表评论
]]>
ORACLE常用ȝ問題444?/title><link>http://www.tkk7.com/zhhp1314520/articles/oracle_444.html</link><dc:creator>捕风</dc:creator><author>捕风</author><pubDate>Thu, 04 Jan 2007 04:42:00 GMT</pubDate><guid>http://www.tkk7.com/zhhp1314520/articles/oracle_444.html</guid><wfw:comment>http://www.tkk7.com/zhhp1314520/comments/91725.html</wfw:comment><comments>http://www.tkk7.com/zhhp1314520/articles/oracle_444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zhhp1314520/comments/commentRss/91725.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zhhp1314520/services/trackbacks/91725.html</trackback:ping><description><![CDATA[     摘要: 大家在應用ORACLE的時候可能會遇到很多看v來不難的問題, 特別新手來? 今天我簡單把它總i一? 發布i大? 希望大家有q助! 和大家一ha? 共同進步! ORACLE高手來說是不用看?   1. Oracle安裝完成后的初始口o?  internal/oracle   sys/change_on_install   system/ma...  <a href='http://www.tkk7.com/zhhp1314520/articles/oracle_444.html'>阅读全文</a><img src ="http://www.tkk7.com/zhhp1314520/aggbug/91725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zhhp1314520/" target="_blank">捕风</a> 2007-01-04 12:42 <a href="http://www.tkk7.com/zhhp1314520/articles/oracle_444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL与OracleҎhttp://www.tkk7.com/zhhp1314520/articles/sql_vs_oracle.html捕风捕风Thu, 04 Jan 2007 04:40:00 GMThttp://www.tkk7.com/zhhp1314520/articles/sql_vs_oracle.htmlhttp://www.tkk7.com/zhhp1314520/comments/91724.htmlhttp://www.tkk7.com/zhhp1314520/articles/sql_vs_oracle.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/91724.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/91724.html阅读全文

捕风 2007-01-04 12:40 发表评论
]]>
ORACLE内置函数大全http://www.tkk7.com/zhhp1314520/articles/oracle_sql.html捕风捕风Mon, 30 Oct 2006 07:43:00 GMThttp://www.tkk7.com/zhhp1314520/articles/oracle_sql.htmlhttp://www.tkk7.com/zhhp1314520/comments/78065.htmlhttp://www.tkk7.com/zhhp1314520/articles/oracle_sql.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/78065.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/78065.htmlORACLE内置函数大全

SQL中的单记录函?br />1.ASCII
q回与指定的字符对应的十q制?
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

        A         A      ZERO     SPACE
--------- --------- --------- ---------
       65        97        48        32


2.CHR
l出整数,q回对应的字W?
SQL> select chr(54740) zhao,chr(65) chr65 from dual;

ZH C
-- -
?A

3.CONCAT
q接两个字符?
SQL> select concat('010-','88888888')||'?3'  高乾竞电?from dual;

高乾竞电?br />----------------
010-88888888?3

4.INITCAP
q回字符串ƈ字W串的第一个字母变为大?
SQL> select initcap('smith') upp from dual;

UPP
-----
Smith


5.INSTR(C1,C2,I,J)
在一个字W串中搜索指定的字符,q回发现指定的字W的位置;
C1    被搜索的字符?br />C2    希望搜烦的字W串
I     搜烦的开始位|?默认?
J     出现的位|?默认?
SQL> select instr('oracle traning','ra',1,2) instring from dual;

 INSTRING
---------
        9


6.LENGTH
q回字符串的长度;
SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;

NAME   LENGTH(NAME) ADDR             LENGTH(ADDR)       SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ --------- --------------------
高乾竞          ?3 北京市v锭区                6   9999.99                    7

 

7.LOWER
q回字符?q将所有的字符写
SQL> select lower('AaBbCcDd')AaBbCcDd from dual;

AABBCCDD
--------
aabbccdd


8.UPPER
q回字符?q将所有的字符大写
SQL> select upper('AaBbCcDd') upper from dual;

UPPER
--------
AABBCCDD

 

9.RPAD和LPAD(_脓字符)
RPAD  在列的右边粘贴字W?br />LPAD  在列的左边粘贴字W?br />SQL> select lpad(rpad('gao',10,'*'),17,'*')from dual;

LPAD(RPAD('GAO',1
-----------------
*******gao*******
不够字符则用*来填?/p>


10.LTRIM和RTRIM
LTRIM  删除左边出现的字W串
RTRIM  删除双出现的字W串
SQL> select ltrim(rtrim('   gao qian jing   ',' '),' ') from dual;

LTRIM(RTRIM('
-------------
gao qian jing


11.SUBSTR(string,start,count)
取子字符?从start开?取count?br />SQL> select substr('13088888888',3,8) from dual;

SUBSTR('
--------
08888888


12.REPLACE('string','s1','s2')
string   希望被替换的字符或变?br />s1       被替换的字符?br />s2       要替换的字符?br />SQL> select replace('he love you','he','i') from dual;

REPLACE('H
----------
i love you


13.SOUNDEX
q回一个与l定的字W串读音相同的字W串
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values('weather');
SQL> insert into table1 values('wether');
SQL> insert into table1 values('gao');

SQL> select xm from table1 where soundex(xm)=soundex('weather');

XM
--------
weather
wether


14.TRIM('s' from 'string')
LEADING   剪掉前面的字W?br />TRAILING  剪掉后面的字W?br />如果不指?默认为空格符

15.ABS
q回指定值的l对?br />SQL> select abs(100),abs(-100) from dual;

 ABS(100) ABS(-100)
--------- ---------
      100       100


16.ACOS
l出反余弦的?br />SQL> select acos(-1) from dual;

 ACOS(-1)
---------
3.1415927


17.ASIN
l出反正弦的?br />SQL> select asin(0.5) from dual;

ASIN(0.5)
---------
.52359878


18.ATAN
q回一个数字的反正切?br />SQL> select atan(1) from dual;

  ATAN(1)
---------
.78539816


19.CEIL
q回大于或等于给出数字的最整?br />SQL> select ceil(3.1415927) from dual;

CEIL(3.1415927)
---------------
              4


20.COS
q回一个给定数字的余u
SQL> select cos(-3.1415927) from dual;

COS(-3.1415927)
---------------
             -1


21.COSH
q回一个数字反余u?br />SQL> select cosh(20) from dual;

 COSH(20)
---------
242582598


22.EXP
q回一个数字e的nơ方?br />SQL> select exp(2),exp(1) from dual;

   EXP(2)    EXP(1)
--------- ---------
7.3890561 2.7182818


23.FLOOR
对给定的数字取整?br />SQL> select floor(2345.67) from dual;

FLOOR(2345.67)
--------------
          2345


24.LN
q回一个数字的Ҏ?br />SQL> select ln(1),ln(2),ln(2.7182818) from dual;

    LN(1)     LN(2) LN(2.7182818)
--------- --------- -------------
        0 .69314718     .99999999


25.LOG(n1,n2)
q回一个以n1为底n2的对?br />SQL> select log(2,1),log(2,4) from dual;

 LOG(2,1)  LOG(2,4)
--------- ---------
        0         2


26.MOD(n1,n2)
q回一个n1除以n2的余?br />SQL> select mod(10,3),mod(3,3),mod(2,3) from dual;

MOD(10,3)  MOD(3,3)  MOD(2,3)
--------- --------- ---------
        1         0         2


27.POWER
q回n1的n2ơ方?br />SQL> select power(2,10),power(3,3) from dual;

POWER(2,10) POWER(3,3)
----------- ----------
       1024         27


28.ROUND和TRUNC
按照指定的精度进行舍?br />SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;

ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
         56          -55          55          -55


29.SIGN
取数字n的符?大于0q回1,于0q回-1,{于0q回0
SQL> select sign(123),sign(-100),sign(0) from dual;

SIGN(123) SIGN(-100)   SIGN(0)
--------- ---------- ---------
        1         -1         0


30.SIN
q回一个数字的正u?br />SQL> select sin(1.57079) from dual;

SIN(1.57079)
------------
           1


31.SIGH
q回双曲正u的?br />SQL> select sin(20),sinh(20) from dual;

  SIN(20)  SINH(20)
--------- ---------
.91294525 242582598


32.SQRT
q回数字n的根
SQL> select sqrt(64),sqrt(10) from dual;

 SQRT(64)  SQRT(10)
--------- ---------
        8 3.1622777


33.TAN
q回数字的正切?br />SQL> select tan(20),tan(10) from dual;

  TAN(20)   TAN(10)
--------- ---------
2.2371609 .64836083


34.TANH
q回数字n的双曲正切?br />SQL> select tanh(20),tan(20) from dual;

 TANH(20)   TAN(20)
--------- ---------
        1 2.2371609

 

35.TRUNC
按照指定的精度截取一个数
SQL> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;

   TRUNC1 TRUNC(124.16666,2)
--------- ------------------
      100             124.16

 

36.ADD_MONTHS
增加或减L?br />SQL> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;

TO_CHA
------
200002
SQL> select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;

TO_CHA
------
199910


37.LAST_DAY
q回日期的最后一?br />SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual;

TO_CHAR(SY TO_CHAR((S
---------- ----------
2004.05.09 2004.05.10
SQL> select last_day(sysdate) from dual;

LAST_DAY(S
----------
31-5?-04


38.MONTHS_BETWEEN(date2,date1)
l出date2-date1的月?br />SQL> select months_between('19-12?1999','19-3?1999') mon_between from dual;

MON_BETWEEN
-----------
          9
SQL>selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd')) mon_betw from dual;

 MON_BETW
---------
      -60


39.NEW_TIME(date,'this','that')
l出在this时区=other时区的日期和旉
SQL> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time
  2  (sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual;

BJ_TIME             LOS_ANGLES
------------------- -------------------
2004.05.09 11:05:32 2004.05.09 18:05:32


40.NEXT_DAY(date,'day')
l出日期date和星期x之后计算下一个星期的日期
SQL> select next_day('18-5?2001','星期?) next_day from dual;

NEXT_DAY
----------
25-5?-01

 

41.SYSDATE
用来得到pȝ的当前日?br />SQL> select to_char(sysdate,'dd-mm-yyyy day') from dual;

TO_CHAR(SYSDATE,'
-----------------
09-05-2004 星期?br />trunc(date,fmt)按照l出的要求将日期截断,如果fmt='mi'表示保留?截断U?br />SQL> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,
  2  to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;

HH                  HHMM
------------------- -------------------
2004.05.09 11:00:00 2004.05.09 11:17:00

 

42.CHARTOROWID
字W数据类型{换ؓROWIDcd
SQL> select rowid,rowidtochar(rowid),ename from scott.emp;

ROWID              ROWIDTOCHAR(ROWID) ENAME
------------------ ------------------ ----------
AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES


43.CONVERT(c,dset,sset)
源字符?sset从一个语a字符集{换到另一个目的dset字符?br />SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual;

conver
------
strutz


44.HEXTORAW
一个十六进制构成的字符串{换ؓ二进?/p>


45.RAWTOHEXT
一个二q制构成的字W串转换为十六进?/p>

 

46.ROWIDTOCHAR
ROWID数据cd转换为字W类?/p>

 

47.TO_CHAR(date,'format')
SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2004/05/09 21:14:41

 

48.TO_DATE(string,'format')
字W串转化为ORACLE中的一个日?/p>


49.TO_MULTI_BYTE
字W串中的单字节字W{化ؓ多字节字W?br />SQL>  select to_multi_byte('?) from dual;

TO
--
?/p>


50.TO_NUMBER
给出的字符转换为数?br />SQL> select to_number('1999') year from dual;

     YEAR
---------
     1999


51.BFILENAME(dir,file)
指定一个外部二q制文g
SQL>insert into file_tb1 values(bfilename('lob_dir1','image1.gif'));


52.CONVERT('x','desc','source')
x字段或变量的源source转换为desc
SQL> select sid,serial#,username,decode(command,
  2  0,'none',
  3  2,'insert',
  4  3,
  5  'select',
  6  6,'update',
  7  7,'delete',
  8  8,'drop',
  9  'other') cmd  from v$session where type!='background';

      SID   SERIAL# USERNAME                       CMD
--------- --------- ------------------------------ ------
        1         1                                none
        2         1                                none
        3         1                                none
        4         1                                none
        5         1                                none
        6         1                                none
        7      1275                                none
        8      1275                                none
        9        20 GAO                            select
       10        40 GAO                            none


53.DUMP(s,fmt,start,length)
DUMP函数以fmt指定的内部数字格式返回一个VARCHAR2cd的?br />SQL> col global_name for a30
SQL> col dump_string for a50
SQL> set lin 200
SQL> select global_name,dump(global_name,1017,8,5) dump_string from global_name;

GLOBAL_NAME                    DUMP_STRING
------------------------------ --------------------------------------------------
ORACLE.WORLD                   Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D


54.EMPTY_BLOB()和EMPTY_CLOB()
q两个函数都是用来对大数据类型字D进行初始化操作的函?/p>


55.GREATEST
q回一l表辑ּ中的最大?x较字W的~码大小.
SQL> select greatest('AA','AB','AC') from dual;

GR
--
AC
SQL> select greatest('?,'?,'?) from dual;

GR
--
?/p>


56.LEAST
q回一l表辑ּ中的最?br />SQL> select least('?,'?,'?) from dual;

LE
--
?/p>


57.UID
q回标识当前用户的唯一整数
SQL> show user
USER ?GAO"
SQL> select username,user_id from dba_users where user_id=uid;

USERNAME                         USER_ID
------------------------------ ---------
GAO                                   25

 

58.USER
q回当前用户的名?br />SQL> select user from  dual;

USER
------------------------------
GAO


59.USEREVN
q回当前用户环境的信?opt可以?
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
ISDBA  查看当前用户是否是DBA如果是则q回true
SQL> select userenv('isdba') from dual;

USEREN
------
FALSE
SQL> select userenv('isdba') from dual;

USEREN
------
TRUE
SESSION
q回会话标志
SQL> select userenv('sessionid') from dual;

USERENV('SESSIONID')
--------------------
                 152
ENTRYID
q回会话人口标志
SQL> select userenv('entryid') from dual;

USERENV('ENTRYID')
------------------
                 0
INSTANCE
q回当前INSTANCE的标?br />SQL> select userenv('instance') from dual;

USERENV('INSTANCE')
-------------------
                  1
LANGUAGE
q回当前环境变量
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
LANG
q回当前环境的语a的羃?br />SQL> select userenv('lang') from dual;

USERENV('LANG')
----------------------------------------------------
ZHS
TERMINAL
q回用户的终端或机器的标?br />SQL> select userenv('terminal') from dual;

USERENV('TERMINA
----------------
GAO
VSIZE(X)
q回X的大?字节)?br />SQL> select vsize(user),user from dual;

VSIZE(USER) USER
----------- ------------------------------
          6 SYSTEM

 

60.AVG(DISTINCT|ALL)
all表示Ҏ有的值求q_?distinct只对不同的值求q_?br />SQLWKS> create table table3(xm varchar(8),sal number(7,2));
语句已处理?br />SQLWKS>  insert into table3 values('gao',1111.11);
SQLWKS>  insert into table3 values('gao',1111.11);
SQLWKS>  insert into table3 values('zhu',5555.55);
SQLWKS> commit;

SQL> select avg(distinct sal) from gao.table3;

AVG(DISTINCTSAL)
----------------
         3333.33

SQL> select avg(all sal) from gao.table3;

AVG(ALLSAL)
-----------
    2592.59


61.MAX(DISTINCT|ALL)
求最大?ALL表示Ҏ有的值求最大?DISTINCT表示对不同的值求最大?相同的只取一?br />  q回选择列表目的最大|如果x是字W串数据cdQ他q回一个VARCHAR2数据cdQ如果X是一个DATA数据cdQ返回一个日期,如果X是numeric数据cdQ返回一个数字。注意distinct和all不v作用Q应为最大gq两U设|是相同的?br />SQL> select max(distinct sal) from scott.emp;

MAX(DISTINCTSAL)
----------------
            5000


62.MIN(DISTINCT|ALL)
求最?ALL表示Ҏ有的值求最?DISTINCT表示对不同的值求最?相同的只取一?br />SQL> select min(all sal) from gao.table3;

MIN(ALLSAL)
-----------
    1111.11


63.STDDEV(distinct|all)
求标准差,ALL表示Ҏ有的值求标准?DISTINCT表示只对不同的值求标准?br />SQL> select stddev(sal) from scott.emp;

STDDEV(SAL)
-----------
  1182.5032

SQL> select stddev(distinct sal) from scott.emp;

STDDEV(DISTINCTSAL)
-------------------
           1229.951

 

64.VARIANCE(DISTINCT|ALL)
求协方差

SQL> select variance(sal) from scott.emp;

VARIANCE(SAL)
-------------
    1398313.9


65.GROUP BY
主要用来对一l数q行l计
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno;

   DEPTNO  COUNT(*)  SUM(SAL)
--------- --------- ---------
       10         3      8750
       20         5     10875
       30         6      9400

 

66.HAVING
对分l统计再加限制条?br />SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)>=5;

   DEPTNO  COUNT(*)  SUM(SAL)
--------- --------- ---------
       20         5     10875
       30         6      9400
SQL> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by deptno ;

   DEPTNO  COUNT(*)  SUM(SAL)
--------- --------- ---------
       20         5     10875
       30         6      9400


67.ORDER BY
用于Ҏ询到的结果进行排序输?br />SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc;

   DEPTNO ENAME            SAL
--------- ---------- ---------
       10 KING            5000
       10 CLARK           2450
       10 MILLER          1300
       20 SCOTT           3000
       20 FORD            3000
       20 JONES           2975
       20 ADAMS           1100
       20 SMITH            800
       30 BLAKE           2850
       30 ALLEN           1600
       30 TURNER          1500
       30 WARD            1250
       30 MARTIN          1250
       30 JAMES            950
     
68.sys_connect_by_path
自从Since Oracle 9i 开始,可以通过 SYS_CONNECT_BY_PATH 函数实现从父节点到当前行内容以“path”或者层ơ元素列表的形式昄出来?如下例所C:
column path format a50
select level,sys_connect_by_path(child,"/") path
from hier
start with parent is null
connect by prior child = parent;

LEVEL PATH
-------- --------------------------------------------
1 /Asia
2 /Asia/China
3 /Asia/China/Beijing
2 /Asia/Japan
3 /Asia/Japan/Osaka
3 /Asia/Japan/Tokyo
1 /Australia
2 /Australia/New South Wales
3 /Australia/New South Wales/Sydney
1 /Europe
2 /Europe/United Kingdom
3 /Europe/United Kingdom/England
4 /Europe/United Kingdom/England/London



捕风 2006-10-30 15:43 发表评论
]]>
SQLServer和Oracle常用函数Ҏhttp://www.tkk7.com/zhhp1314520/articles/sqlserver_vs_oracle.html捕风捕风Mon, 30 Oct 2006 07:42:00 GMThttp://www.tkk7.com/zhhp1314520/articles/sqlserver_vs_oracle.htmlhttp://www.tkk7.com/zhhp1314520/comments/78063.htmlhttp://www.tkk7.com/zhhp1314520/articles/sqlserver_vs_oracle.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/78063.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/78063.html   1.l对?
   S:select abs(-1) value
   O:select abs(-1) value from dual

  2.取整(?
   S:select ceiling(-1.001) value
   O:select ceil(-1.001) value from dual

  3.取整Q小Q?
   S:select floor(-1.001) value
   O:select floor(-1.001) value from dual

  4.取整Q截取)
   S:select cast(-1.002 as int) value
   O:select trunc(-1.002) value from dual

  5.四舍五入
   S:select round(1.23456,4) value 1.23460
   O:select round(1.23456,4) value from dual 1.2346

  6.e为底的幂
   S:select Exp(1) value 2.7182818284590451
   O:select Exp(1) value from dual 2.71828182

  7.取e为底的对?br />   S:select log(2.7182818284590451) value 1
   O:select ln(2.7182818284590451) value from dual; 1

  8.?0为底Ҏ
   S:select log10(10) value 1
   O:select log(10,10) value from dual; 1

  9.取^?br />   S:select SQUARE(4) value 16
   O:select power(4,2) value from dual 16

  10.取^Ҏ
   S:select SQRT(4) value 2
   O:select SQRT(4) value from dual 2

  11.求Q意数为底的幂
   S:select power(3,4) value 81
   O:select power(3,4) value from dual 81

  12.取随机数
   S:select rand() value
   O:select sys.dbms_random.value(0,1) value from dual;

  13.取符?br />   S:select sign(-8) value -1
   O:select sign(-8) value from dual -1

  14.圆周?br />   S:SELECT PI() value 3.1415926535897931
   O:不知?/p>

  15.sin,cos,tan 参数都以弧度为单?br />   例如Qselect sin(PI()/2) value 得到1QSQLServerQ?/p>

  16.Asin,Acos,Atan,Atan2 q回弧度

  17.弧度角度互换(SQLServerQOracle不知?
   DEGREESQ弧?〉角?br />   RADIANSQ角?〉弧?/p>

数值间比较

  18. 求集合最大?br />   S:select max(value) value from
   (select 1 value
   union
   select -2 value
   union
   select 4 value
   union
   select 3 value)a

  O:select greatest(1,-2,4,3) value from dual

  19. 求集合最?br />   S:select min(value) value from
   (select 1 value
   union
   select -2 value
   union
   select 4 value
   union
   select 3 value)a

  O:select least(1,-2,4,3) value from dual

  20.如何处理null?F2中的null?0代替)
   S:select F1,IsNull(F2,10) value from Tbl
   O:select F1,nvl(F2,10) value from Tbl

  21.求字W序?br />   S:select ascii('a') value
   O:select ascii('a') value from dual

  22.从序h字符
   S:select char(97) value
   O:select chr(97) value from dual

  23.q接
   S:select '11'+'22'+'33' value
   O:select CONCAT('11','22')||33 value from dual

23.子串位置 --q回3
   S:select CHARINDEX('s','sdsq',2) value
   O:select INSTR('sdsq','s',2) value from dual

  23.模糊子串的位|?--q回2,参数L中间%则返?
   S:select patindex('%d%q%','sdsfasdqe') value
   O:oracle没发玎ͼ但是instr可以通过W四个参数控制出现次?br />   select INSTR('sdsfasdqe','sd',1,2) value from dual q回6

  24.求子?br />   S:select substring('abcd',2,2) value
   O:select substr('abcd',2,2) value from dual

  25.子串代替 q回aijklmnef
   S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
   O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual

  26.子串全部替换
   S:没发?br />   O:select Translate('fasdbfasegas','fa','? ) value from dual

  27.长度
   S:len,datalength
   O:length

  28.大小写{?lower,upper

  29.单词首字母大?br />   S:没发?br />   O:select INITCAP('abcd dsaf df') value from dual

  30.左补I格QLPAD的第一个参CؓI格则同space函数Q?br />   S:select space(10)+'abcd' value
   O:select LPAD('abcd',14) value from dual

  31.双I格QRPAD的第一个参CؓI格则同space函数Q?br />   S:select 'abcd'+space(10) value
   O:select RPAD('abcd',14) value from dual

  32.删除I格
   S:ltrim,rtrim
   O:ltrim,rtrim,trim

  33. 重复字符?br />   S:select REPLICATE('abcd',2) value
   O:没发?/p>

  34.发音怼性比?q两个单词返回gP发音相同)
   S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
   O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
   SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差
   q回0-4Q?为同韻I1最?/p>

日期函数
   35.pȝ旉
   S:select getdate() value
   O:select sysdate value from dual

  36.前后几日
   直接与整数相加减

  37.求日?br />   S:select convert(char(10),getdate(),20) value
   O:select trunc(sysdate) value from dual
   select to_char(sysdate,'yyyy-mm-dd') value from dual

  38.求时?br />   S:select convert(char(8),getdate(),108) value
   O:select to_char(sysdate,'hh24:mm:ss') value from dual

39.取日期时间的其他部分
   S:DATEPART ?DATENAME 函数 Q第一个参数决定)
   O:to_char函数 W二个参数决?/p>

  参数---------------------------------下表需要补?br />   year yy, yyyy
   quarter qq, q (季度)
   month mm, m (m O无效)
   dayofyear dy, y (O表星?
   day dd, d (d O无效)
   week wk, ww (wk O无效)
   weekday dw (O不清?
   Hour hh,hh12,hh24 (hh12,hh24 S无效)
   minute mi, n (n O无效)
   second ss, s (s O无效)
   millisecond ms (O无效)
   ----------------------------------------------

  40.当月最后一?br />   S:不知?br />   O:select LAST_DAY(sysdate) value from dual

  41.本星期的某一天(比如星期日)
   S:不知?br />   O:SELECT Next_day(sysdate,7) vaule FROM DUAL;

  42.字符串{旉
   S:可以直接转或者select cast('2004-09-08'as datetime) value
   O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;

  43.求两日期某一部分的差Q比如秒Q?br />   S:select datediff(ss,getdate(),getdate()+12.3) value
   O:直接用两个日期相减(比如d1-d2=12.3Q?br />   SELECT (d1-d2)*24*60*60 vaule FROM DUAL;

  44.Ҏ差值求新的日期Q比如分钟)
   S:select dateadd(mi,8,getdate()) value
   O:SELECT sysdate+8/60/24 vaule FROM DUAL;

  45.求不同时区时?br />   S:不知?br />   O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;

  -----时区参数,北京在东8区应该是Ydt-------
   AST ADT 大西z标准时?br />   BST BDT 白oh准时?br />   CST CDT 中部标准旉
   EST EDT 东部标准旉
   GMT 格林治标准旉
   HST HDT 阿拉斯加?夏威h准时?br />   MST MDT 山区标准旉
   NST U芬兰标准时?br />   PST PDT 太^z标准时?br />   YST YDT YUKON标准旉



捕风 2006-10-30 15:42 发表评论
]]>
l典SQL语句集锦http://www.tkk7.com/zhhp1314520/articles/sql_all.html捕风捕风Wed, 18 Oct 2006 09:50:00 GMThttp://www.tkk7.com/zhhp1314520/articles/sql_all.htmlhttp://www.tkk7.com/zhhp1314520/comments/75998.htmlhttp://www.tkk7.com/zhhp1314520/articles/sql_all.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/75998.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/75998.htmll典SQL语句集锦

下列语句部分是MsSql语句Q不可以在access中用?br />
SQL分类Q?
DDL—数据定义语a(CREATEQALTERQDROPQDECLARE)
DML—数据操U语a(SELECTQDELETEQUPDATEQINSERT)
DCL—数据控制语a(GRANTQREVOKEQCOMMITQROLLBACK)

首先,要介l基语句Q?br />1、说明:创徏数据?br />CREATE DATABASE database-name
2、说明:删除数据?br />drop database dbname
3、说明:备䆾sql server
--- 创徏 备䆾数据?device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开?备䆾
BACKUP DATABASE pubs TO testBack
4、说明:创徏新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
Ҏ已有的表创徏新表Q?
AQcreate table tab_new like tab_old (使用旧表创徏新表)
BQcreate table tab_new as select col1,col2?from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后不能删除。DB2中列加上后数据类型也不能改变Q唯一能改变的是增加varcharcd的长度?br />7、说明:d主键Q?/font> Alter table tabname add primary key(col)
说明Q删除主键: Alter table tabname drop primary key(col)
8、说明:创徏索引Q?/font>create [unique] index idxname on tabname(col?)
删除索引Q?/font>drop index idxname
注:索引是不可更改的Q想更改必须删除重新建?br />9、说明:创徏视图Qcreate view viewname as select statement
删除视图Q?/font>drop view viewname
10、说明:几个单的基本的sql语句
选择Qselect * from table1 where 范围
插入Qinsert into table1(field1,field2) values(value1,value2)
删除Qdelete from table1 where 范围
更新Qupdate table1 set field1=value1 where 范围
查找Qselect * from table1 where field1 like ?value1%?---like的语法很_֦Q查资料!
排序Qselect * from table1 order by field1,field2 [desc]
LQselect count * as totalcount from table1
求和Qselect sum(field1) as sumvalue from table1
q_Qselect avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最:select min(field1) as minvalue from table1
11、说明:几个高查询q算?/font>
AQ?UNION q算W?
UNION q算W通过l合其他两个l果表(例如 TABLE1 ?TABLE2Qƈ消去表中M重复行而派生出一个结果表。当 ALL ?UNION 一起用时Q即 UNION ALLQ,不消除重复行。两U情况下Q派生表的每一行不是来?TABLE1 是来自 TABLE2?
BQ?EXCEPT q算W?
EXCEPT q算W通过包括所有在 TABLE1 中但不在 TABLE2 中的行ƈ消除所有重复行而派生出一个结果表。当 ALL ?EXCEPT 一起用时 (EXCEPT ALL)Q不消除重复行?
CQ?INTERSECT q算W?br />INTERSECT q算W通过只包?TABLE1 ?TABLE2 中都有的行ƈ消除所有重复行而派生出一个结果表。当 ALL ?INTERSECT 一起用时 (INTERSECT ALL)Q不消除重复行?
注:使用q算词的几个查询l果行必L一致的?
12、说明:使用外连?
A、left outer joinQ?
左外q接Q左q接Q:l果集几包括q接表的匚w行,也包括左q接表的所有行?
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
BQright outer join:
叛_q接(双?Q结果集既包括连接表的匹配连接行Q也包括双接表的所有行?
CQfull outer joinQ?
全外q接Q不仅包括符可接表的匹配行Q还包括两个q接表中的所有记录?br />
其次Q大家来看一些不错的sql语句
1、说明:复制?/font>(只复制结?源表名:a 新表名:b) (Access可用)
法一Qselect * into b from a where 1<>1
法二Qselect top 0 * into b from a

2、说明:拯?/font>(拯数据,源表名:a 目标表名Qb) (Access可用)
insert into b(a, b, c) select d,e,f from b;

3、说明:跨数据库之间表的拯(具体数据使用l对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库?where 条g
例子Q?.from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

4、说明:子查?/font>(表名1Qa 表名2Qb)
select a,b,c from a where a IN (select d from b ) 或? select a,b,c from a where a IN (1,2,3)

5、说明:昄文章、提交h和最后回复时?br />select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

6、说明:外连接查?表名1Qa 表名2Qb)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

7、说明:在线视图查询(表名1Qa )
select * from (SELECT a,b,c FROM a) T where t.a > 1;

8、说明:between的用?between限制查询数据范围时包括了边界?not between不包?/font>
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数? and 数?

9、说明:in 的用方?br />select * from table1 where a [not] in (‘??’??’??’??

10、说明:两张兌表,删除主表中已l在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

11、说明:四表联查问题Q?/font>
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

12、说明:日程安排提前五分钟提?
SQL: select * from 日程安排 where datediff('minute',f开始时?getdate())>5

13、说明:一条sql 语句搞定数据库分?/font>
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

14、说明:?0条记?/font>
select top 10 * form table1 where 范围

15、说明:选择在每一lb值相同的数据中对应的a最大的记录的所有信?/font>(cMq样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成l排?{等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行ƈ消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)

17、说明:随机取出10条数?/font>
select top 10 * from tablename order by newid()

18、说明:随机选择记录
select newid()

19、说明:删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

20、说明:列出数据库里所有的表名
select name from sysobjects where type='U'

21、说明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')

22、说明:列示type、vender、pcs字段Q以type字段排列Qcase可以方便地实现多重选择Q类似select 中的case?/font>
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
昄l果Q?br />type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3

23、说明:初始化表table1
TRUNCATE TABLE table1

24、说明:选择?0?5的记?/font>
select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
  
随机选择数据库记录的ҎQ用Randomize函数Q通过SQL语句实现Q?br />  对存储在数据库中的数据来_随机数特性能l出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解x案是建立如下所C的循环Q?
Randomize
RNumber = Int(Rnd*499) +1
 
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... q里是执行脚?...
end if
objRec.MoveNext
Wend
 
  q很Ҏ理解。首先,你取??00范围之内的一个随机数Q假?00是数据库内记录的LQ。然后,你遍历每一记录来测试ID 的倹{检查其是否匚wRNumber。满x件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber {于495Q那么要循环一遍数据库q旉可就长了。虽?00q个数字看v来大了些Q但相比更ؓE_的企业解x案这q是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不死定了Q?
  采用SQLQ你可以很快地扑և准确的记录ƈ且打开一个只包含该记录的recordsetQ如下所C:
Randomize
RNumber = Int(Rnd*499) + 1
 
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
 
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
 
  不必写出RNumber 和IDQ你只需要检查匹配情况即可。只要你对以上代码的工作满意Q你自可按需操作“随机”记录。Recordset没有包含其他内容Q因此你很快p扑ֈ你需要的记录q样大大降低了处理旉?
再谈随机?
  现在你下定决心要榨干Random 函数的最后一滴aQ那么你可能会一ơ取出多条随录或者想采用一定随围内的记录。把上面的标准Random CZ扩展一下就可以用SQL应对上面两种情况了?
  Z取出几条随机选择的记录ƈ存放在同一recordset内,你可以存储三个随机数Q然后查询数据库获得匚wq些数字的记录:
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
 
  假如你想选出10条记录(也许是每ơ页面装载时?0条链接的列表Q,你可以用BETWEEN 或者数学等式选出W一条记录和适当数量的递增记录。这一操作可以通过好几U方式来完成Q但?SELECT 语句只显CZU可能(q里的ID 是自动生成的LQ:
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"

  注意Q以上代码的执行目的不是查数据库内是否有9条ƈ发记录?br />
 
随机d若干条记录,试q?/font>
Access语法QSELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server语法Qselect top n * from 表名 order by newid()
MySql语法QSelect * From 表名 Order By rand() Limit n
Access左连接语?最q开发要用左q接,Access帮助什么都没有,|上没有Access的SQL说明,只有自己试, 现在C以备后查)
语法QSelect table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
使用SQL语句 ?..代替q长的字W串昄
语法Q?br />SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
 
Conn.Execute说明
ExecuteҎ
  该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集Q该Ҏ的用格式分Z下两U:
    1Q执行SQL查询语句Ӟ返回查询得到的记录集。用法ؓQ?br />    Set 对象变量?q接对象.Execute("SQL 查询语言")
   ExecuteҎ调用后,会自动创录集对象Qƈ查询结果存储在该记录对象中Q通过SetҎQ将记录集赋l指定的对象保存Q以后对象变量就代表了该记录集对象?br />
    2Q执行SQL的操作性语aӞ没有记录集的q回。此时用法ؓQ?br />    q接对象.Execute "SQL 操作性语? [, RecordAffected][, Option]
      ·RecordAffected 为可选项Q此出可攄一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过讉K该变量,可知道SQL语句队多条记录q行了操作?br />      ·Option 可选项Q该参数的取值通常为adCMDTextQ它用于告诉ADOQ应该将ExecuteҎ之后的第一个字W解释ؓ命o文本。通过指定该参敎ͼ可执行更高效?br />
·BeginTrans、RollbackTrans、CommitTransҎ
  q三个方法是q接对象提供的用于事务处理的Ҏ。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务QCommitTrans用于提交所有的事务处理l果Q即认事务的处理?br />  事务处理可以一l操作视Z个整体,只有全部语句都成功执行后Q事务处理才成功;若其中有一个语句执行失败,则整个处理就失败,q恢复到处里前的状态?br />  BeginTrans和CommitTrans用于标记事务的开始和l束Q在q两个之间的语句Q就是作Z务处理的语句。判断事务处理是否成功,可通过q接对象的Error集合来实玎ͼ若Error集合的成员个C?Q则说明有错误发生,事务处理p|。Error集合中的每一个Error对象Q代表一个错误信息?img src ="http://www.tkk7.com/zhhp1314520/aggbug/75998.html" width = "1" height = "1" />

捕风 2006-10-18 17:50 发表评论
]]>
行开源数据库hsqlhttp://www.tkk7.com/zhhp1314520/articles/hsql_1.html捕风捕风Mon, 16 Oct 2006 07:49:00 GMThttp://www.tkk7.com/zhhp1314520/articles/hsql_1.htmlhttp://www.tkk7.com/zhhp1314520/comments/75427.htmlhttp://www.tkk7.com/zhhp1314520/articles/hsql_1.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/75427.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/75427.html    修正d了第四点?br />
一、简介:
hsql 数据库是一ƄJava~写的免Ҏ据库Q许可是BSD-style的协议,如果你是使用Java~程的话Q不凡考虑一下用它Q相对其他数据库来说Q其体积,?63kb。仅一个hsqldb.jar文g包括了数据库引擎,数据库驱动,q有其他用户界面操作{内宏V在Java开源世界里Qhsql是极为受Ƣ迎的(Java本n来说Q,JBoss应用E序服务器默认也提供了这个数据库引擎。由于其体积的原因Q又是纯Java设计Q又支持 SQL99QSQL2003大部分的标准Q所以也是作为商业应用程序展C的一U选择。请C下地址下蝲hsqlQ?http://prdownloads.sourceforge.net/hsqldb/

二、用hsql数据库:
1、hsql数据库引擎有几种服务器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only数据库?br />2、最为常用的Server模式Q?br />1)首先却换到lib文g夹下Q运行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
执行命o后,会在db文g夹下创徏一个数据库mydbQ别名(用于讉K数据库)是xdbQ如果存在mydb数据库,会打开它?br />2)q行数据库界面操作工Pjava -cp hsqldb.jar org.hsqldb.util.DatabaseManager
在Type 选项里选上相应的服务器模式Q这里选择HSQL Database Engine Server模式QDriver不用修改QURL修改为jdbc:hsqldb:hsql://localhost/xdb Q主要这里xdb是上面我们讄的别名);user里设|用户名Q第一ơ登录时Q设|的是管理员的用户名Qpassword讄密码。然后点击Ok?br />3)W一ơ运行数据库引擎Q创建数据库完毕。好了,你可以打开db文g夹,会发现里面多了几个文件?br />mydb.properties文gQ是关于数据库的属性文件?br />mydb.scriptQhsql主要保存的表Q这里按hsql的说法是Memory表,是最为常用的Q,里面的格式都是文本格式,可以用文本查看,里面的语句都是sql语句Q熟悉sql语句的话Q你也可以手动修改它。每ơ运行数据库引擎的话都是从这里加载进内存的?br />mydb.lck表示数据库处于打开状态?br />其他的请参看hsqldb包里的手册?br />
3、WebServer模式和Serverq行模式基本一P只是支持了Http{协议,主要用于防火墙,默认端口?001。启动ServerQjava -cp hsqldb.jar org.hsqldb.WebServer ...剩余的和上面的一致?br />
4、Servlet模式可以允许你通过Servlet容器来访问数据库Q请查看hsqlServlet.java的源代码Q和WebServercM?br />
5、另一个值得思考的模式?/tt>Standalone模式Q不能通过|络来访问数据库Q主要是在一个JVM中用,那样的话Q访问的速度会更加快。虽然文档里面提C要是用于开发时使用Q但是我们可以假设一下,该方法不需要一个引擎类的东西,而类g打开文g的方式,q回一个Connection对象Q?br />Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");
会在当前目录找到mydb数据库相xӞ打开q返回一个Connection对象。该方式有点好处是可以不用引擎,在需要的时候操作数据。所以那些对数据库不是特别有要求的,但又需要一个操作数据库的方式的话,可以使用q种Ҏ。对于那些不想额外在数据库引擎花贚wq话,可以使用q种Ҏ。但是不推荐使用该方法。记得Hibernate里SessionFactory可以使用openSession(Connecttion c)来获得一个Session对象的,因此Q在试或者实际应用的话都可以q样使用?br />
6、Memory-Only 数据库:֐思义Q主要是内存中用,不用于保存数据。可以用于在内存中交换数据?br />
三、具体的链接与操作的话,和一般的JDBC操作一栗而相应的Server模式的话Q连接地址主要你运行数据库界面操作工具Ӟ在URL一栏时默认已经讑֥了,自己实习一下,Ҏ其中参数?br />
四、实例:
在Windows下用:
        ׃我们l常使用的是hibernate{orm工具作ؓ数据层,所以很多时候对底层的sql都不再关注。通常我们都交由hibernate{工h替我们管理数据库q接{内容,l常我们只需要学会运行数据库p够了?br />       Z化操作,我们可以创徏一个bat脚本Qrunhsql.batQ该脚本只需要和hsql.jar在一P我们通常使用的是server模式Q?br />      (1)runhsql.bat的内容:
          start  java  -cp  hsqldb.jar  org.hsqldb.Server
      (2)server.properties
           server.database.0=db/appfuse1
           server.dbname.0=appfuse1
           server.database.1=db/appfuse2
           server.dbname.1=appfuse2
     q行runhsql.bat之后Q将会在db文g夹下创徏两个数据库文Ӟ别名为appfuse1和appfuse2
相应的例子:hibernate.xml文g单配|?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost/appfuse1</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
       
        <property name="show_sql">true</property>
       
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
       
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>
    </session-factory>
</hibernate-configuration>      
      

对这文章有什么问题的话,Lal作者。作者联pd址Q?span style="TEXT-DECORATION: underline">Sidney.J.Yellow@gmail.com

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=373652



捕风 2006-10-16 15:49 发表评论
]]>
Hsql使用http://www.tkk7.com/zhhp1314520/articles/Hsql_using.html捕风捕风Mon, 16 Oct 2006 07:10:00 GMThttp://www.tkk7.com/zhhp1314520/articles/Hsql_using.htmlhttp://www.tkk7.com/zhhp1314520/comments/75419.htmlhttp://www.tkk7.com/zhhp1314520/articles/Hsql_using.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/75419.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/75419.html

前言Q该文章只是单介l一下hsql的入门内容,如果想仔l了解的话,参考官方帮助文档最为有用?/p>

一、简介:
hsql 数据库是一ƄJava~写的免Ҏ据库Q许可是BSD-style的协议,如果你是使用Java~程的话Q不凡考虑一下用它Q相对其他数据库来说Q其体积,?63kb。仅一个hsqldb.jar文g包括了数据库引擎,数据库驱动,q有其他用户界面操作{内宏V在Java开源世界里Qhsql是极为受Ƣ迎的(Java本n来说Q,JBoss应用E序服务器默认也提供了这个数据库引擎。由于其体积的原因Q又是纯Java设计Q又支持 SQL99QSQL2003大部分的标准Q所以也是作为商业应用程序展C的一U选择。请C下地址下蝲hsqlQ?http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_3_3.zip?download

二、用hsql数据库:
1、hsql数据库引擎有几种服务器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only数据库?br />2、最为常用的Server模式Q?br />1)首先却换到lib文g夹下Q运行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
执行命o后,会在db文g夹下创徏一个数据库mydbQ别名(用于讉K数据库)是xdbQ如果存在mydb数据库,会打开它?br />2)q行数据库界面操作工Pjava -cp hsqldb.jar org.hsqldb.util.DatabaseManager
在Type 选项里选上相应的服务器模式Q这里选择HSQL Database Engine Server模式QDriver不用修改QURL修改为jdbc:hsqldb:hsql://localhost/xdb Q主要这里xdb是上面我们讄的别名);user里设|用户名Q第一ơ登录时Q设|的是管理员的用户名Qpassword讄密码。然后点击Ok?br />3)W一ơ运行数据库引擎Q创建数据库完毕。好了,你可以打开db文g夹,会发现里面多了几个文件?br />mydb.properties文gQ是关于数据库的属性文件?br />mydb.scriptQhsql主要保存的表Q这里按hsql的说法是Memory表,是最为常用的Q,里面的格式都是文本格式,可以用文本查看,里面的语句都是sql语句Q熟悉sql语句的话Q你也可以手动修改它。每ơ运行数据库引擎的话都是从这里加载进内存的?br />mydb.lck表示数据库处于打开状态?br />其他的请参看hsqldb包里的手册?/p>

3、WebServer模式和Serverq行模式基本一P只是支持了Http{协议,主要用于防火墙,默认端口?001。启动ServerQjava -cp hsqldb.jar org.hsqldb.WebServer ...剩余的和上面的一致?/p>

4、Servlet模式可以允许你通过Servlet容器来访问数据库Q请查看hsqlServlet.java的源代码Q和WebServercM?/p>

5、另一个值得思考的模式是Standalone模式Q不能通过|络来访问数据库Q主要是在一个JVM中用,那样的话Q访问的速度会更加快。虽然文档里面提C要是用于开发时使用Q但是我们可以假设一下,该方法不需要一个引擎类的东西,而类g打开文g的方式,q回一个Connection对象Q?br />Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");
会在当前目录找到mydb数据库相xӞ打开q返回一个Connection对象。该方式有点好处是可以不用引擎,在需要的时候操作数据。所以那些对数据库不是特别有要求的,但又需要一个操作数据库的方式的话,可以使用q种Ҏ。对于那些不想额外在数据库引擎花贚wq话,可以使用q种Ҏ。但是不推荐使用该方法。记得Hibernate里SessionFactory可以使用openSession(Connecttion c)来获得一个Session对象的,因此Q在试或者实际应用的话都可以q样使用?/p>

6、Memory-Only 数据库:֐思义Q主要是内存中用,不用于保存数据。可以用于在内存中交换数据?/p>

三、具体的链接与操作的话,和一般的JDBC操作一栗而相应的Server模式的话Q连接地址主要你运行数据库界面操作工具Ӟ在URL一栏时默认已经讑֥了,自己实习一下,Ҏ其中参数?/p>

q篇文章介绍大致内容很详l,不过也大都是从Hsql的帮助上译的,我有必要加入Ҏ鲜的血涌Ӏ?br />q篇文章中不的是~少实战性,往往初学者第一步都C出来Q比如我?br />我在实践中遇到的问题是打开数据库管理器怎么也连接不上数据库QL?br />java.sql.sqlException Socket create error
搞了一个晚上,到第二天早上清醒一下,惌v来这个数据库应该在创建库之后Q保持那个cmdH口Q在此过E中q接?br />果然好用Q也q出了开拓Hsql的第一步?/p>

另外不用在互联网上搜索别的介l,Hsql自带的guide已l很详细了?/p>

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=472441

[点击此处收藏本文]   whoopee发表?2005q?9?6?10:54:00



捕风 2006-10-16 15:10 发表评论
]]>sql扚w更新http://www.tkk7.com/zhhp1314520/articles/sql_bat.html捕风捕风Fri, 13 Oct 2006 08:23:00 GMThttp://www.tkk7.com/zhhp1314520/articles/sql_bat.htmlhttp://www.tkk7.com/zhhp1314520/comments/75022.htmlhttp://www.tkk7.com/zhhp1314520/articles/sql_bat.html#Feedback0http://www.tkk7.com/zhhp1314520/comments/commentRss/75022.htmlhttp://www.tkk7.com/zhhp1314520/services/trackbacks/75022.html
  1、Statement

  Statement sm = cn.createStatement(); 
  sm.addBatch(sql1); 
  sm.addBatch(sql2); 
   
  sm.executeBatch() 


  一个Statement对象Q可以执行多个sql语句以后Q批量更新。这多个语句可以是delete、update、insert{或兼有

  2、PreparedStatement

  
PreparedStatement ps = cn.preparedStatement(sql); 
  

  ps.setXXX(
1,xxx); 
   
  ps.addBatch(); 
  }
 
  ps.executeBatch(); 

  一个PreparedStatementQ可以把一个sql语句Q变换参数多ơ执行,一ơ更新?img src ="http://www.tkk7.com/zhhp1314520/aggbug/75022.html" width = "1" height = "1" />

捕风 2006-10-13 16:23 发表评论
]]>
վ֩ģ壺 պѿվ| 91ѹۿվ| ޾ƷһĻ| ۺϳַ| ҳվѹۿ| ˳www߲| 99Ƶ߾Ʒѹۿ6| 456˳ӰԺ߹| ƷƵһ| Ļ| avվѹۿ| ɫɫwww| avһ߹ۿ| ѿŮҹƬ| ԭƵ| ˵վ| ޾ƷۺϾþĻ | þþ97ɫ| һëƬ߹ۿ| ˾޾ƷӰԺ| Ƶ| ޾ƷaĻ| Ѱββ8x| Ļ| ޻ɫƵ| ߹ۿѴվ| 9i9ƷѾþ| ߹ۿ| ƵvƬwww| aëƬͼƬ| 츾þþƷ| www.ɫͼ.com| þþþþëƬѲ| պĻ| Ʒ_˳| ޵Ӱѹۿ| Ƶѹۿ| 97츾͵ͼƬ| wwwƵ| ձ˳ƵѲ| ޾ƷVĻ|