??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美私人网站,国产无遮挡在线视频免费观看,亚洲精品一级二级三级http://www.aygfsteel.com/jjshcc/category/54473.htmlzh-cnTue, 09 Jun 2015 10:42:04 GMTTue, 09 Jun 2015 10:42:04 GMT60 Java Jdbc q接 Oracle 执行单查询示?/title><link>http://www.aygfsteel.com/jjshcc/archive/2015/06/09/425579.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Tue, 09 Jun 2015 03:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/jjshcc/archive/2015/06/09/425579.html</guid><wfw:comment>http://www.aygfsteel.com/jjshcc/comments/425579.html</wfw:comment><comments>http://www.aygfsteel.com/jjshcc/archive/2015/06/09/425579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jjshcc/comments/commentRss/425579.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jjshcc/services/trackbacks/425579.html</trackback:ping><description><![CDATA[<div bg_java"="" style="width: 700.90625px; color: #333333; line-height: 26px; widows: auto;"><ol start="1"><li style="line-height: 18px;">package com.test.dbtest;  </li><li style="line-height: 18px;">  </li><li style="line-height: 18px;">import java.sql.CallableStatement;  </li><li style="line-height: 18px;">import java.sql.Connection;  </li><li style="line-height: 18px;">import java.sql.DriverManager;  </li><li style="line-height: 18px;">import java.sql.ResultSet;  </li><li style="line-height: 18px;">import java.sql.SQLException;  </li><li style="line-height: 18px;">import java.sql.Statement;  </li><li style="line-height: 18px;">  </li><li style="line-height: 18px;">/**Jdbc q接 Oracle 数据?nbsp;单示?nbsp;</li><li style="line-height: 18px;"> *@author wanggq </li><li style="line-height: 18px;"> *@version 创徏旉Q?014q??1?nbsp;上午11:00:06 </li><li style="line-height: 18px;"> *c说?nbsp;</li><li style="line-height: 18px;"> */  </li><li style="line-height: 18px;">public class TestO_procedure01 {  </li><li style="line-height: 18px;">  </li><li style="line-height: 18px;">    public static void main(String[] args) {  </li><li style="line-height: 18px;">        String driver = "oracle.jdbc.driver.OracleDriver";  </li><li style="line-height: 18px;">        String url = "jdbc:Oracle:thin:@localhost:1521:orcl";  </li><li style="line-height: 18px;">        Statement stmt = null;  </li><li style="line-height: 18px;">        ResultSet res = null;  </li><li style="line-height: 18px;">        Connection conn = null;  </li><li style="line-height: 18px;">        CallableStatement proc = null;  </li><li style="line-height: 18px;">        String sql = " select T.REC_NO, T.AIRLINE,T.DEPARTURE,T.ARRIVAL from CDP_MAIN_ORDER t where t.departure=upper('pek')";  </li><li style="line-height: 18px;">          </li><li style="line-height: 18px;">        try {  </li><li style="line-height: 18px;">            Class.forName(driver);  </li><li style="line-height: 18px;">            conn = DriverManager.getConnection(url, "abc123", "abc123");  </li><li style="line-height: 18px;">            stmt = conn.createStatement();  </li><li style="line-height: 18px;">            res = stmt.executeQuery(sql);  </li><li style="line-height: 18px;">            while(res.next())  </li><li style="line-height: 18px;">            {  </li><li style="line-height: 18px;">                String rec = res.getString("REC_NO");  </li><li style="line-height: 18px;">                String airline = res.getString("AIRLINE");  </li><li style="line-height: 18px;">                String dept = res.getString("DEPARTURE");  </li><li style="line-height: 18px;">                String arr = res.getString("ARRIVAL");  </li><li style="line-height: 18px;">                System.out.println(rec+" "+airline+" "+dept+" "+arr);  </li><li style="line-height: 18px;">            }  </li><li style="line-height: 18px;">              </li><li style="line-height: 18px;">        } catch (ClassNotFoundException e) {  </li><li style="line-height: 18px;">            // TODO Auto-generated catch block  </li><li style="line-height: 18px;">            e.printStackTrace();  </li><li style="line-height: 18px;">        } catch (SQLException e) {  </li><li style="line-height: 18px;">            // TODO Auto-generated catch block  </li><li style="line-height: 18px;">            e.printStackTrace();  </li><li style="line-height: 18px;">        }  </li><li style="line-height: 18px;">          </li><li style="line-height: 18px;">          </li><li style="line-height: 18px;">          </li><li style="line-height: 18px;">  </li><li style="line-height: 18px;">    }  </li><li style="line-height: 18px;">  </li><li style="line-height: 18px;">}  </li></ol></div><p style="color: #333333; font-family: Arial; line-height: 26px; widows: auto; background-color: #ffffff;">也可以用防止SQL注入PreparedStatementҎ(gu)</p><div bg_java"="" style="width: 700.90625px; color: #333333; line-height: 26px; widows: auto;"><div><div><strong>[java]</strong> <a title="view plain" style="padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;">view plain</a><a title="copy" style="padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_copy.gif); background-position: 0% 0%; background-repeat: no-repeat;">copy</a><a target="_blank" title="在CODE上查看代码片" style="padding: 1px; display: inline-block; width: 16px; height: 16px; background-position: 0% 0%; background-repeat: no-repeat;"><img src="https://code.csdn.net/assets/CODE_ico.png" width="12" height="12" alt="在CODE上查看代码片" style="border: none; max-width: 100%; position: relative; top: 1px; left: 2px;" /></a><a target="_blank" title="z到我的代码片" style="padding: 1px; display: inline-block; width: 16px; height: 16px; background-position: 0% 0%; background-repeat: no-repeat;"><img src="https://code.csdn.net/assets/ico_fork.svg" width="12" height="12" alt="z到我的代码片" style="border: none; max-width: 100%; position: relative; top: 2px; left: 2px;" /></a><div style="position: absolute; left: 557px; top: 1565px; width: 18px; height: 18px; z-index: 99;"></div></div></div><ol start="1"><li style="line-height: 18px;">PreparedStatement stmt = null;  </li><li style="line-height: 18px;">ResultSet res = null;  </li><li style="line-height: 18px;">Connection conn = null;  </li><li style="line-height: 18px;">CallableStatement proc = null;  </li><li style="line-height: 18px;">String sql = " select T.REC_NO, T.AIRLINE,T.DEPARTURE,T.ARRIVAL from CDP_MAIN_ORDER t where t.departure=upper(?)";  </li><li style="line-height: 18px;">  </li><li style="line-height: 18px;">try {  </li><li style="line-height: 18px;">    Class.forName(driver);  </li><li style="line-height: 18px;">    conn = DriverManager.getConnection(url, "abc123", "abc123");  </li><li style="line-height: 18px;">    stmt = conn.prepareStatement(sql);  </li><li style="line-height: 18px;">    stmt.setString(<span style="color: #c00000;">1</span>, "pek");  </li><li style="line-height: 18px;">    res = stmt.executeQuery();  </li></ol></div><img src ="http://www.aygfsteel.com/jjshcc/aggbug/425579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jjshcc/" target="_blank">Eric_jiang</a> 2015-06-09 11:48 <a href="http://www.aygfsteel.com/jjshcc/archive/2015/06/09/425579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle sql语句 http://www.aygfsteel.com/jjshcc/archive/2014/07/31/416401.htmlEric_jiangEric_jiangThu, 31 Jul 2014 04:57:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2014/07/31/416401.htmlhttp://www.aygfsteel.com/jjshcc/comments/416401.htmlhttp://www.aygfsteel.com/jjshcc/archive/2014/07/31/416401.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/416401.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/416401.html
一、ORACLE的启动和关闭
1、在单机环境?br />要想启动或关闭ORACLEpȝ必须首先切换到ORACLE用户Q如?br />su - oracle

a、启动ORACLEpȝ
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit

b、关闭ORACLEpȝ
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>shutdown
SVRMGR>quit

启动oracle9i数据库命令:(x)
Q?nbsp;sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> connect / as sysdba  
Connected to an idle instance.
SQL> startup^C

SQL> startup
ORACLE instance started.



2、在双机环境?br />要想启动或关闭ORACLEpȝ必须首先切换到root用户Q如?br />su Q?nbsp;root

a、启动ORACLEpȝ
hareg Qy oracle

b、关闭ORACLEpȝ
hareg Qn oracle

Oracle数据库有哪几U启动方?br />


说明Q?br />
有以下几U启动方式:(x)
1、startup nomount
非安装启动,q种方式启动下可执行Q重建控制文件、重建数据库

dinit.ora文gQ启动instanceQ即启动SGA和后台进E,q种启动只需要init.ora文g?br />

2、startup mount dbname
安装启动Q这U方式启动下可执行:(x)
数据库日志归档?br />数据库介质恢复?br />使数据文件联机或脱机Q?br />重新定位数据文g、重做日志文件?br />
执行“nomount”Q然后打开控制文gQ确认数据文件和联机日志文g的位|,
但此时不Ҏ(gu)据文件和日志文gq行校验查?br />

3、startup open dbname
先执?#8220;nomount”Q然后执?#8220;mount”Q再打开包括Redo log文g在内的所有数据库文gQ?br />q种方式下可讉K数据库中的数据?br />

4、startupQ等于以下三个命?br />startup nomount
alter database mount
alter database open


5、startup restrict
U束方式启动
q种方式能够启动数据库,但只允许h一定特权的用户讉K
非特权用戯问时Q会(x)出现以下提示Q?br />ERRORQ?br />ORA-01035: ORACLE 只允许具?nbsp;RESTRICTED SESSION 权限的用户?br />

6、startup force
强制启动方式
当不能关闭数据库Ӟ可以用startup force来完成数据库的关?br />先关闭数据库Q再执行正常启动数据库命?br />

7、startup pfile=参数文g?br />带初始化参数文g的启动方?br />先读取参数文Ӟ再按参数文g中的讄启动数据?br />例:(x)startup pfile=E:Oracleadminoradbpfileinit.ora


8、startup EXCLUSIVE
二、用户如何有效地利用数据字典
   ORACLE的数据字典是数据库的重要l成部分之一Q它随着数据库的产生而? 随着数据库的变化而变?
体现为sys用户下的一些表和视图。数据字典名U是大写的英文字W?br />
    数据字典里存有用户信息、用L(fng)权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视囄?br />我们不能手工修改数据字典里的信息?br />
  很多时候,一般的ORACLE用户不知道如何有效地利用它?br />
  dictionary   全部数据字典表的名称和解释,它有一个同义词dict
    dict_column   全部数据字典表里字段名称和解?br />
    如果我们x询跟索引有关的数据字典时Q可以用下面q条SQL语句:

    SQL>select * from dictionary where instr(comments,'index')>0;

    如果我们想知道user_indexes表各字段名称的详l含义,可以用下面这条SQL语句:

    SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';

    依此cLQ就可以L知道数据字典的详l名U和解释Q不用查看ORACLE的其它文档资料了?br />
    下面按类别列Z些ORACLE用户常用数据字典的查询用方法?br />
    1、用?br />
            查看当前用户的缺省表I间
            SQL>select username,default_tablespace from user_users;

        查看当前用户的角?br />        SQL>select * from user_role_privs;

        查看当前用户的系l权限和表权限
        SQL>select * from user_sys_privs;
        SQL>select * from user_tab_privs;

    2、表

            查看用户下所有的?br />            SQL>select * from user_tables;

            查看名称包含log字符的表
            SQL>select object_name,object_id from user_objects
                where instr(object_name,'LOG')>0;

            查看某表的创建时?br />            SQL>select object_name,created from user_objects where object_name=upper('&table_name');

            查看某表的大?br />            SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
                where segment_name=upper('&table_name');

            查看攑֜ORACLE的内存区里的?br />            SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;

    3、烦?br />
            查看索引个数和类?br />            SQL>select index_name,index_type,table_name from user_indexes order by table_name;

            查看索引被烦引的字段
            SQL>select * from user_ind_columns where index_name=upper('&index_name');

            查看索引的大?br />            SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
                where segment_name=upper('&index_name');

    4、序列号

            查看序列Plast_number是当前?br />            SQL>select * from user_sequences;

    5、视?br />
            查看视图的名U?br />            SQL>select view_name from user_views;

            查看创徏视图的select语句
            SQL>set view_name,text_length from user_views;
            SQL>set long 2000;                说明Q可以根据视囄text_lengthD定set long 的大?br />            SQL>select text from user_views where view_name=upper('&view_name');

    6、同义词

            查看同义词的名称
            SQL>select * from user_synonyms;

    7、约束条?br />
            查看某表的约束条?br />            SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
                from user_constraints where table_name = upper('&table_name');

        SQL>select c.constraint_name,c.constraint_type,cc.column_name
            from user_constraints c,user_cons_columns cc
            where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
            and c.owner = cc.owner and c.constraint_name = cc.constraint_name
            order by cc.position;

    8、存储函数和q程

            查看函数和过E的状?br />            SQL>select object_name,status from user_objects where object_type='FUNCTION';
            SQL>select object_name,status from user_objects where object_type='PROCEDURE';

            查看函数和过E的源代?br />            SQL>select text from all_source where owner=user and name=upper('&plsql_name');


三、查看数据库的SQL
1、查看表I间的名U及大小

    select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
    from dba_tablespaces t, dba_data_files d
    where t.tablespace_name = d.tablespace_name
    group by t.tablespace_name;

2、查看表I间物理文g的名U及大小

    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;

3、查看回滚段名称及大?br />
    select segment_name, tablespace_name, r.status,
    (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
    max_extents, v.curext CurExtent
    From dba_rollback_segs r, vQrollstat v
    Where r.segment_id = v.usn(+)
    order by segment_name ;

4、查看控制文?br />
    select name from vQcontrolfile;

5、查看日志文?br />
    select member from vQlogfile;

6、查看表I间的用情?br />
    select sum(bytes)/(1024*1024) as free_space,tablespace_name
    from dba_free_space
    group by tablespace_name;

    SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
    (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
    FROM SYS.SMQTS_AVAIL A,SYS.SMQTS_USED B,SYS.SMQTS_FREE C
    WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

7、查看数据库库对?br />
    select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;

8、查看数据库的版?br />
    Select version FROM Product_component_version
    Where SUBSTR(PRODUCT,1,6)='Oracle';

9、查看数据库的创建日期和归档方式

    Select Created, Log_Mode, Log_Mode From VQDatabase;
四、ORACLE用户q接的管?br />
用系l管理员Q查看当前数据库有几个用戯接:(x)

SQL> select username,sid,serial# from vQsession;

如果要停某个q接?br />
SQL> alter system kill session 'sid,serial#';

如果q命令不?扑֮UNIX的进E数

SQL> select pro.spid from vQsession ses,vQprocess pro where ses.sid=21 and ses.paddr=pro.addr;

说明Q?1是某个连接的sid?br />
然后?nbsp;kill 命o(h)杀此进E号?br />



五、SQL*PLUS使用
a、近入SQL*Plus
Qsqlplus 用户?密码

   退出SQL*Plus
SQL>exit

b、在sqlplus下得到帮助信?br />列出全部SQL命o(h)和SQL*Plus命o(h)
SQL>help
列出某个特定的命令的信息
SQL>help 命o(h)?br />
c、显Cl构命o(h)DESCRIBE
SQL>DESC 表名

d、SQL*Plus中的~辑命o(h)
昄SQL~冲区命?br />SQL>L

修改SQL命o(h)
首先要将待改正行变ؓ(f)当前?br />SQL>n
用CHANGE命o(h)修改内容
SQL>c/??br />重新认是否已正?br />SQL>L

使用INPUT命o(h)可以在SQL~冲Z增加一行或多行
SQL>i
SQL>输入内容

e、调用外部系l编辑器
SQL>edit 文g?br />可以使用DEFINE命o(h)讄pȝ变量EDITOR来改变文本编辑器的类型,在login.sql文g中定义如下一?br />DEFINE_EDITOR=vi

f、运行命令文?br />SQL>START test
SQL>@test

常用SQL*Plus语句
a、表的创建、修攏V删?br />创徏表的命o(h)格式如下Q?br />create table 表名 Q列说明列表Q;

为基表增加新列命令如下:(x)
ALTER TABLE 表名 ADD Q列说明列表Q?br />例:(x)为test表增加一列AgeQ用来存攑ֹ?br />    sql>alter table test
        add QAge number(3)Q;

修改列定义命令如下:(x)
ALTER TABLE 表名
MODIFY Q列?nbsp;数据cdQ?br />例:(x)test表中的Count列宽度加长ؓ(f)10个字W?br />    sql>alter atble test
        modify QCounty char(10)Q;

b、将一张表删除语句的格式如下:(x)
DORP TABLE 表名Q?br />例:(x)表删除将同时删除表的数据和表的定?br />sql>drop table test

c、表I间的创建、删?br />

六、ORACLE逻辑备䆾的SH文g

完全备䆾的SH文gQexp_comp.sh

rq=` date +"%m%d" `

su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_compQrq.dmp"

累计备䆾的SH文gQexp_cumu.sh

rq=` date +"%m%d" `

su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumuQrq.dmp"

增量备䆾的SH文g: exp_incr.sh

rq=` date +"%m%d" `

su - oracle -c "exp system/manager full=y inctype=incremental file=/oracle/export/db_incrQrq.dmp"

root用户crontab文g
/var/spool/cron/crontabs/root增加以下内容

0 2 1 * * /oracle/exp_comp.sh

30 2 * * 0-5 /oracle/exp_incr.sh

45 2 * * 6 /oracle/exp_cumu.sh

当然q个旉表可以根据不同的需求来改变的,q只是一个例子?br />


七、ORACLE 常用的SQL语法和数据对?br />
一.数据控制语句 (DML) 部分

1.INSERT  (往数据表里插入记录的语?

INSERT INTO 表名(字段?, 字段?, ……) VALUES ( ?, ?, ……);
INSERT INTO 表名(字段?, 字段?, ……)  SELECT (字段?, 字段?, ……) FROM 另外的表?

字符串类型的字段值必ȝ单引hh, 例如: ’GOOD DAY’
如果字段值里包含单引?#8217; 需要进行字W串转换, 我们把它替换成两个单引号'.
字符串类型的字段Dq定义的长度?x)出? 最好在插入前进行长度校?

日期字段的字D值可以用当前数据库的pȝ旉SYSDATE, _到秒
或者用字符串{换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)
TO_DATE()q有很多U日期格? 可以参看ORACLE DOC.
q???nbsp;时:分钟:U?nbsp;的格式YYYY-MM-DD HH24:MI:SS

INSERT时最大可操作的字W串长度于{于4000个单字节, 如果要插入更长的字符? 误虑字段用CLOBcd,
Ҏ(gu)借用ORACLE里自带的DBMS_LOBE序?

INSERT时如果要用到?开始自动增长的序列? 应该先徏立一个序列号
CREATE SEQUENCE 序列L(fng)名称 (最好是表名+序列h? INCREMENT BY 1  START  WITH  1
MAXVALUE  99999  CYCLE  NOCACHE;
其中最大的值按字段的长度来? 如果定义的自动增长的序列?nbsp;NUMBER(6) , 最大gؓ(f)999999
INSERT 语句插入q个字段gؓ(f): 序列L(fng)名称.NEXTVAL

2.DELETE  (删除数据表里记录的语?

DELETE FROM表名 WHERE 条g;

注意Q删除记录ƈ不能释放ORACLE里被占用的数据块表空? 它只把那些被删除的数据块标成unused.

如果实要删除一个大表里的全部记? 可以?nbsp;TRUNCATE 命o(h), 它可以释攑֍用的数据块表I间
TRUNCATE TABLE 表名;
此操作不可回退.

3.UPDATE  (修改数据表里记录的语?

UPDATE表名 SET 字段?=?, 字段?=?, …… WHERE 条g;

如果修改的值N没有赋值或定义? 把原来的记录内Ҏ(gu)为NULL, 最好在修改前进行非I校?
值N过定义的长度会(x)出错, 最好在插入前进行长度校?.

注意事项:
A.        以上SQL语句对表都加上了行?
        认完成? 必须加上事物处理l束的命?nbsp;COMMIT 才能正式生效,
        否则改变不一定写入数据库?
        如果x回这些操? 可以用命?nbsp;ROLLBACK 复原.

B.        在运行INSERT, DELETE ?nbsp;UPDATE 语句前最好估一下可能操作的记录范围,
        应该把它限定在较?yu)?nbsp;(一万条记录) 范围?. 否则ORACLE处理q个事物用到很大的回退D?
        E序响应慢甚臛_d? 如果记录C十万以上q些操作, 可以把这些SQL语句分段分次完成,
        光加上COMMIT 认事物处理.
?数据定义 (DDL) 部分

1.CREATE (创徏? 索引, 视图, 同义? q程, 函数, 数据库链接等)

ORACLE常用的字D늱型有
CHAR                        固定长度的字W串
VARCHAR2                可变长度的字W串
NUMBER(M,N)                数字型M是位数总长? N是小数的长度
DATE                        日期cd

创徏表时要把较小的不为空的字D|在前? 可能为空的字D|在后?br />
创徏表时可以用中文的字段? 但最好还是用英文的字D名

创徏表时可以l字D加上默认? 例如 DEFAULT SYSDATE
q样每次插入和修Ҏ(gu), 不用E序操作q个字段都能得到动作的时?br />
创徏表时可以l字D加上约束条?br />例如 不允?dng)R?nbsp;UNIQUE, 关键?nbsp;PRIMARY KEY

2.ALTER        (改变? 索引, 视图{?

改变表的名称
ALTER TABLE 表名1  TO 表名2;

在表的后面增加一个字D?br />ALTER TABLE表名 ADD 字段?nbsp;字段名描q?

修改表里字段的定义描q?br />ALTER TABLE表名 MODIFY字段?nbsp;字段名描q?

l表里的字段加上U束条g
ALTER TABLE 表名 ADD CONSTRAINT U束?nbsp;PRIMARY KEY (字段?;
ALTER TABLE 表名 ADD CONSTRAINT U束?nbsp;UNIQUE (字段?;

把表攑֜或取出数据库的内存区
ALTER TABLE 表名 CACHE;
ALTER TABLE 表名 NOCACHE;

3.DROP        (删除? 索引, 视图, 同义? q程, 函数, 数据库链接等)

删除表和它所有的U束条g
DROP TABLE 表名 CASCADE CONSTRAINTS;

4.TRUNCATE (清空表里的所有记? 保留表的l构)

TRUNCATE 表名;

?查询语句 (SELECT) 部分

SELECT字段?, 字段?, …… FROM 表名1, [表名2, ……] WHERE 条g;

字段名可以带入函?br />  例如:  COUNT(*), MIN(字段?,  MAX(字段?,  AVG(字段?, DISTINCT(字段?,
           TO_CHAR(DATE字段?'YYYY-MM-DD HH24:MI:SS')

NVL(EXPR1, EXPR2)函数
解释:
IF EXPR1=NULL
                RETURN EXPR2
ELSE
                       RETURN EXPR1

DECODE(AAHV1HR1HV2HR2....)函数
解释:
IF AA=V1 THEN RETURN R1
IF AA=V2 THEN RETURN R2
..…

ELSE
RETURN NULL

LPAD(char1,n,char2)函数
解释:
字符char1按制定的位数n昄Q不的位数用char2字符串替换左边的IZ

字段名之间可以进行算术运?br />例如:  (字段?*字段?)/3

查询语句可以嵌套
例如: SELECT …… FROM
(SELECT …… FROM表名1, [表名2, ……] WHERE 条g) WHERE 条g2;

两个查询语句的结果可以做集合操作
例如: qUNION(L重复记录), qUNION ALL(不去掉重复记?, 差集MINUS,  交集INTERSECT

分组查询
SELECT字段?, 字段?, …… FROM 表名1, [表名2, ……] GROUP BY字段?
[HAVING 条g] ;

两个以上表之间的q接查询

SELECT字段?, 字段?, …… FROM 表名1, [表名2, ……] WHERE
                表名1.字段?nbsp;= 表名2. 字段?nbsp;[ AND ……] ;

SELECT字段?, 字段?, …… FROM 表名1, [表名2, ……] WHERE
                表名1.字段?nbsp;= 表名2. 字段?+) [ AND ……] ;

?+)L(fng)字段位置自动补空?br />
查询l果集的排序操作, 默认的排序是升序ASC, 降序是DESC

SELECT字段?, 字段?, …… FROM 表名1, [表名2, ……]
ORDER BY字段?, 字段? DESC;

字符串模p比较的Ҏ(gu)

INSTR(字段? ‘字符?#8217;)>0
字段?nbsp;LIKE  ‘字符?’  [‘%字符?’]

每个表都有一个隐含的字段ROWID, 它标记着记录的唯一?

?ORACLE里常用的数据对象 (SCHEMA)

1.索引 (INDEX)

CREATE INDEX 索引名ON 表名 ( 字段1, [字段2, ……] ;
ALTER INDEX 索引?nbsp;REBUILD;

一个表的烦引最好不要超q三?nbsp;(Ҏ(gu)的大表除?, 最好用单字D늃? l合SQL语句的分析执行情?
也可以徏立多字段的组合烦引和Z函数的烦?br />
ORACLE8.1.7字符串可以烦引的最大长度ؓ(f)1578 单字?br />ORACLE8.0.6字符串可以烦引的最大长度ؓ(f)758 单字?br />
2.视图 (VIEW)

CREATE VIEW 视图名AS SELECT …. FROM …..;
ALTER VIEW视图?nbsp;COMPILE;

视图仅是一个SQL查询语句, 它可以把表之间复杂的关系z化.

3.同义?nbsp;(SYNONMY)
CREATE SYNONYM同义词名FOR 表名;
CREATE SYNONYM同义词名FOR 表名@数据库链接名;

4.数据库链?nbsp;(DATABASE LINK)
CREATE DATABASE LINK数据库链接名CONNECT TO 用户?nbsp;IDENTIFIED BY 密码 USING ‘数据库连接字W串’;

数据库连接字W串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定?

数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一?br />
数据库全局名称可以用以下命令查?br />SELECT * FROM GLOBAL_NAME;

查询q端数据库里的表
SELECT …… FROM 表名@数据库链接名;

?权限理 (DCL) 语句

1.GRANT        赋于权限
常用的系l权限集合有以下三个:
CONNECT(基本的连?, RESOURCE(E序开?, DBA(数据库管?
常用的数据对象权限有以下五个:
ALL         ON 数据对象?         SELECT ON 数据对象?         UPDATE ON 数据对象?
DELETE         ON 数据对象?  INSERT ON 数据对象?   ALTER  ON 数据对象?br />
GRANT CONNECT, RESOURCE TO 用户?
GRANT SELECT ON 表名 TO 用户?
GRANT SELECT, INSERT, DELETE ON表名 TO 用户?, 用户?;

2.REVOKE 回收权限

REVOKE CONNECT, RESOURCE FROM 用户?
REVOKE SELECT ON 表名 FROM 用户?
REVOKE SELECT, INSERT, DELETE ON表名 FROM 用户?, 用户?;


查询数据库中W?3号错误:(x)
select orgaddr,destaddr from sm_histable0116 where error_code='63';

查询数据库中开L(fng)h大提交和最大下发数Q?nbsp;select MSISDN,TCOS,OCOS from ms_usertableQ?br />

查询数据库中各种错误代码的dQ?br />select error_code,count(*) from sm_histable0513 group by error_code order
by error_code;

查询报表数据库中话单l计U类查询?br />select sum(Successcount) from tbl_MiddleMt0411 where ServiceType2=111
select sum(successcount),servicetype from tbl_middlemt0411 group by servicetype


Eric_jiang 2014-07-31 12:57 发表评论
]]>
վ֩ģ壺 ޻| ̨| | ƽ| ʯɽ| | ¤| | | | | | | ľ| ͻȪ| | | Ž| | ٺ| е| | Ԫ| ʲ| ĵ| | ɽ| | | | ʲ| ƽ| | üɽ| Ϫ| ¸| غ| | | | Ѯ|