??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
jdbc.properties?/span>
mysql.jdbc.url=jdbc:mysql://192.168.1.246:3306/wxb_site1?useUnicode=true&characterEncoding=utf-8
jndi的写法:(x) context.xml里的写法Q?lt;Resource name="jndi/wxb_site" auth="Container"
type="javax.sql.DataSource" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.246:3306/wxb_site1?useUnicode=true&characterEncoding=utf-8"
maxActive="100" maxIdle="10" maxWait="-1"/>
]]>
]]>
1Q删除表I间
DROP TABLESPACE TableSpaceName [INCLUDING CONTENTS [AND DATAFILES]]
2Q删除用?/font>
DROP USER User_Name CASCADE
3Q删除表的注意事?/font>
在删除一个表中的全部数据ӞM用TRUNCATE TABLE 表名;因ؓ(f)用DROP TABLEQDELETE * FROM 表名ӞTABLESPACE表空间该表的占用I间q未释放Q反复几ơDROPQDELETE操作后,该TABLESPACE上百兆的I间p耗光?jin)?br />
4Qhaving子句的用?/font>
having子句对group by子句所定的行l进行控Ӟhaving子句条g中只允许涉及(qing)帔R,聚组函数或group by 子句中的列?/font>
5Q外部联?+"的用?/font>
外部联接"+"按其?="的左Ҏ(gu)双分左联接和右联接.若不?+"q算W的表中的一个行不直接匹配于?+"预算W的表中的Q何行,则前者的行与后者中的一个空行相匚wq被q回.若二者均不带??则二者中无法匚w的均被返?利用外部联接"+",可以替代效率十分低下?not in q算,大大提高q行速度.例如,下面q条命o(h)执行h很慢
用外联接提高表连接的查询速度
在作表连?常用于视?Ӟ怋用以下方法来查询数据:
SELECT PAY_NO, PROJECT_NAME
FROM A
WHERE A.PAY_NO NOT IN (SELECT PAY_
NO FROM B WHERE VALUE >=120000);
---- 但是若表A?0000条记录,表B?0000条记录,则要用掉30分钟才能查完Q主要因为NOT IN要进 行一条一条的比较Q共需?0000*10000ơ比较后Q才能得到结果。该用外联接后,可以~短?分左右的旉:
SELECT PAY_NO,PROJECT_NAME
FROM A,B
WHERE A.PAY_NO=B.PAY_NO(+)
AND B.PAY_NO IS NULL
AND B.VALUE >=12000;
6Qset transaction命o(h)的用?
在执行大事务?有时oracle?x)报出如下的错?
ORA-01555:snapshot too old (rollback segment too small)
q说明oraclel此事务随机分配的回滚段太小?q时可以为它指定一个够大的回滚段,以确保这个事务的成功执行.例如
set transaction use rollback segment roll_abc;
delete from table_name where ...
commit;
回滚Droll_abc被指定给q个delete事务,commit命o(h)则在事务l束之后取消?jin)回滚段的指?
7Q数据库重徏应注意的问题
在利用importq行数据库重E中,有些视图可能?x)带来问?因ؓ(f)l构输入的顺序可能造成视图的输入先于它低层ơ表的输?q样建立视图׃(x)p|.要解册一问题,可采取分两步走的Ҏ(gu):首先输入l构,然后输入数据.命o(h)举例如下 (uesrname:jfcl,password:hfjf,host sting:ora1,数据文g:expdata.dmp):
imp jfcl/hfjf@ora1 file=empdata.dmp rows=N
imp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000
commit=Y ignore=Y
W一条命令输入所有数据库l构,但无记录.W二ơ输入结构和数据,64000字节提交一?ignore=Y选项保证W二ơ输入既使对象存在的情况下也能成?
select a.empno from emp a where a.empno not in (select empno from emp1 where job=’SALE?;
倘若利用外部联接,改写命o(h)如下:
select a.empno from emp a ,emp1 b
where a.empno=b.empno(+)
and b.empno is null
and b.job=’SALE?
可以发现,q行速度明显提高.
8Q从已知表新建另一个表Q?/font>
CREATE TABLE b
AS SELECT * (可以是表a中的几列)
FROM a
WHERE a.column = ...;
9Q查找、删除重复记?
法一: 用Group by语句 此查扑־快的
select count(num), max(name) from student --查找表中num列重复的Q列出重复的记录敎ͼq列Z的name属?br />group by num
having count(num) >1 --按num分组后找?gu)中num列重复,卛_现次数大于一?br />delete from student(上面Select?
q样的话把所有重复的都删除了(jin)?----慎重
法二:当表比较?例如10万条以上)?q个Ҏ(gu)的效率之差o(h)人无法忍?需要另惛_?
---- 执行下面SQL语句后就可以昄所有DRAWING和DSNO相同且重复的记录
SELECT * FROM EM5_PIPE_PREFAB
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D --D相当于First,Second
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND
EM5_PIPE_PREFAB.DSNO=D.DSNO);
---- 执行下面SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录
DELETE FROM EM5_PIPE_PREFAB
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND
EM5_PIPE_PREFAB.DSNO=D.DSNO);
10Q返回表中[NQM]条记录:(x)
取得某列中第N大的?
select column_name from
(select table_name.*,dense_rank() over (order by column desc) rank from table_name)
where rank = &NQ?
假如要返回前5条记录:(x)
select * from tablename where rownum<6;(或是rownum <= 5 或是rownum != 6)
假如要返回第5-9条记录:(x)
select * from tablename
where ?
and rownum<10
minus
select * from tablename
where ?
and rownum<5
order by name
选出l果后用name排序昄l果?先选再排序)
注意Q只能用以上W号(<?lt;=?=)?
select * from tablename where rownum != 10;q回的是前9条记录?
不能用:(x)>,>=,=,Between...and。由于rownum是一个L?开始的伪列QOracle 认ؓ(f)q种条g 不成立,查不到记?
另外Q这个方法更快:(x)
select * from (
select rownum r,a from yourtable
where rownum <= 20
order by name )
where r > 10
q样取出W?1-20条记?(先选再排序再?
要先排序再选则ȝselect嵌套Q内层排序外层选?
rownum是随着l果集生成的Q一旦生成,׃?x)变化?jin)Q同?生成的结果是依次递加的,没有1永q不?x)?!
rownum 是在 查询集合产生的过E中产生的伪列,q且如果where条g中存?rownum 条g的话Q则:
1Q?假如 判定条g是常量,则:(x)
只能 rownum = 1, <= 大于1 的自然数Q?= 大于1 的数是没有结果的Q?大于一个数也是没有l果?
?当出C?rownum 不满x(chng)件的时候则 查询l束 this is stop key!
2: 当判定g是常量的时?
若条件是 = var , 则只有当 var ? 的时候才满条gQ这个时候不存在 stop key ,必须q行 full scan ,Ҏ(gu)个满_他where条g的数据进行判?
选出一行后才能去选rownum=2的行…?
11Q快速编译所有视?
---- 当在把数据库倒入到新的服务器上后(数据库重?Q需要将视图重新~译一遍,因ؓ(f)该表I间视图到其它表I间的表的连接会(x)出现问题Q可以利用PL/SQL的语aҎ(gu),快速编译?
SQL >SPOOL ON.SQL
SQL >SELECT ‘ALTER VIEW ‘||TNAME||?
COMPILE;?FROM TAB;
SQL >SPOOL OFF
然后执行ON.SQL卛_?
SQL >@ON.SQL
当然Q授权和创徏同义词也可以快速进行,如:(x)
SQL >SELECT ‘GRANT SELECT ON ?br />||TNAME||?TO USERNAME;?FROM TAB;
SQL >SELECT ‘CREATE SYNONYM
‘||TNAME||?FOR USERNAME.’||TNAME||??FROM TAB;
12Q读写文本型操作pȝ文g
---- 在PL/SQL 3.3以上的版本中QUTL_FILE包允许用户通过PL/SQLd操作pȝ文g。如下:(x)
DECALRE
FILE_HANDLE UTL_FILE.FILE_TYPE;
BEGIN
FILE_HANDLE:=UTL_FILE.FOPEN(
‘C:\?’TEST.TXT?’A?;
UTL_FILE.PUT_LINE(FILE_HANDLE,?br />HELLO,IT’S A TEST TXT FILE?;
UTL_FILE.FCLOSE(FILE_HANDLE);
END;
13Q在数据库触发器中用列的新g旧?
---- 在数据库触发器中几乎L要用触发器的列|如果某条语句需要某列修改前的|使用:OLD可以了(jin)Q用某列修改后的新|?NEW可以了(jin)。如:OLD.DEPT_NO,:NEW.DEPT_NO?
14Q数据库文g的移动方?
当想数据库文gUd到另外一个目录下Ӟ可以用ALTER DATABASE命o(h)来移?比ALTER TABLESPACE适用性强)Q?
1. 使用SERVER MANAGER关闭实例.
SVRMGR > connect internal;
SVRMGR > shutdown;
SVRMGR >exit;
2. 使用操作pȝ命o(h)来移动数据库文g位置(假设q里操作pȝ为SOLARIS 2.6). 在UNIX中用 mv命o(h)可以把文件移动到新的位置Q?
#mv /ora13/orarun/document.dbf /ora12/orarun
3. 装蝲数据库ƈ用alter database命o(h)来改变数据库中的文g?
SVRMGR > connect internal;
SVRMGR > startup mount RUN73;
SVRMGR > alter database rename file
> ? ora13/orarun/document.dbf?
> ? ora12/orarun/document.dbf?
4. 启动实例.
SVRMGR > alter database open;
15Q连接查询结果:(x)
表a ?a1 a2
记录 1 a
1 b
2 x
2 y
2 z
用select能选成以下l果:
1 ab
2 xyz
下面有两个例子:(x)
1.使用pl/sql代码实现Q但要求你组合后的长度不能超出oracle varchar2长度的限?
create or replace type strings_table is table of varchar2(20);
/
create or replace function merge (pv in strings_table) return varchar2
is
ls varchar2(4000);
begin
for i in 1..pv.count loop
ls := ls || pv(i);
end loop;
return ls;
end;
/
create table t (id number,name varchar2(10));
insert into t values(1,'Joan');
insert into t values(1,'Jack');
insert into t values(1,'Tom');
insert into t values(2,'Rose');
insert into t values(2,'Jenny');
column names format a80;
select t0.id,merge(cast(multiset(select name from t where t.id = t0.id) as strings_table)) names
from (select distinct id from t) t0;
drop type strings_table;
drop function merge;
drop table t;
2.Ua(b)用sqlQ?
表dept, emp
要得到如下结?
deptno, dname, employees
---------------------------------
10, accounting, clark;king;miller
20, research, smith;adams;ford;scott;jones
30, sales, allen;blake;martin;james;turners
每个dept的employee串v来作Z条记录返?
This example uses a max of 6, and would need more cut n pasting to do more than thatQ?
SQL> select deptno, dname, emps
2 from (
3 select d.deptno, d.dname, rtrim(e.ename ||', '||
4 lead(e.ename,1) over (partition by d.deptno
5 order by e.ename) ||', '||
6 lead(e.ename,2) over (partition by d.deptno
7 order by e.ename) ||', '||
8 lead(e.ename,3) over (partition by d.deptno
9 order by e.ename) ||', '||
10 lead(e.ename,4) over (partition by d.deptno
11 order by e.ename) ||', '||
12 lead(e.ename,5) over (partition by d.deptno
13 order by e.ename),', ') emps,
14 row_number () over (partition by d.deptno
15 order by e.ename) x
16 from emp e, dept d
17 where d.deptno = e.deptno
18 )
19 where x = 1
20 /
DEPTNO DNAME EMPS
------- ----------- ------------------------------------------
10 ACCOUNTING CLARK, KING, MILLER
20 RESEARCH ADAMS, FORD, JONES, ROONEY, SCOTT, SMITH
30 SALES ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD
16Q在Oracle中徏一个编号会(x)自动增加的字D?以利于查?
1、徏立序列:(x)
CREATE SEQUENCE checkup_no_seq
NOCYCLE
MAXVALUE 9999999999
START WITH 2;
2、徏立触发器Q?
CREATE OR REPLACE TRIGGER set_checkup_no
BEFORE INSERT ON checkup_history
FOR EACH ROW
DECLARE
next_checkup_no NUMBER;
BEGIN
--Get the next checkup number from the sequence
SELECT checkup_no_seq.NEXTVAL
INTO next_checkup_no
FROM dual;
--use the sequence number as the primary key
--for the record being inserted
:new.checkup_no := next_checkup_no;
END;
17Q查看对象的依赖关系(比如视图与表的引?
查看视图Qdba_dependencies 记录?jin)相关的依赖关?
查东西不知道要查看哪个视图时Q可以在DBA_Objects里看Q?
select object_name from dba_objects where object_name like '%ROLE%'(假如查看ROLE相关)
然后DESC一下就大体上知道了(jin)?/font>
18Q要扑ֈ某月中所有周五的具体日期
select to_char(t.d,'YY-MM-DD') from (
select trunc(sysdate, 'MM')+rownum-1 as d
from dba_objects
where rownum < 32) t
where to_char(t.d, 'MM') = to_char(sysdate, 'MM') --扑և当前月䆾的周五的日期
and trim(to_char(t.d, 'Day')) = '星期?
--------
03-05-02
03-05-09
03-05-16
03-05-23
03-05-30
如果把where to_char(t.d, 'MM') = to_char(sysdate, 'MM')Ҏ(gu)sysdate-90Q即为查扑ֽ前月份的前三个月中的每周五的日期?br />2.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(tng) (tng) (tng) (tng) (tng) Oracle的sql*plus是与oracleq行交互的客L(fng)工具。在sql*plus中,可以q行sql*plus命o(h)与sql*plus语句?
(tng) (tng)我们通常所说的DML、DDL、DCL语句都是sql*plus语句Q它们执行完后,都可以保存在一个被UCؓ(f)sql buffer的内存区域中Qƈ且只能保存(sh)条最q执行的sql语句Q我们可以对保存在sql buffer中的sql 语句q行修改Q然后再ơ执行,sql*plus一般都与数据库打交道?
(tng) (tng)除了(jin)sql*plus语句Q在sql*plus中执行的其它语句我们UC为sql*plus命o(h)。它们执行完后,不保存在sql buffer的内存区域中Q它们一般用来对输出的结果进行格式化昄Q以便于制作报表?
(tng) (tng)下面׃l一下一些常用的sql*plus命o(h)Q?
(tng) (tng)
1. 执行一个SQL脚本文g
SQL>start file_name
SQL>@ file_name
我们可以多条sql语句保存在一个文本文件中Q这样当要执行这个文件中的所有的sql语句Ӟ用上面的M命o(h)卛_Q这cM于dos中的批处理?
(tng) (tng)
2. 对当前的输入q行~辑
SQL>edit
(tng) (tng)
3. 重新q行上一ơ运行的sql语句
SQL>/
(tng) (tng)
4. 显C的内容输出到指定文?
SQL> SPOOL file_name
(tng) (tng)在屏q上的所有内定w包含在该文g中,包括你输入的sql语句?
(tng) (tng)
5. 关闭spool输出
SQL> SPOOL OFF
(tng) (tng)只有关闭spool输出Q才?x)在输出文g中看到输出的内容?
(tng) (tng)
6Q显CZ个表的结?
SQL> desc table_name
(tng) (tng)
7. COL命o(h)Q?
主要格式化列的显CŞ式?
该命令有许多选项Q具体如下:(x)
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
(tng) (tng)
1). 改变~省的列标题
COLUMN column_name HEADING column_heading
For example:
Sql>select * from dept;
(tng) (tng) (tng) (tng)DEPTNO DNAME (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)LOC
---------- ---------------------------- ---------
(tng) (tng) (tng) (tng) (tng) (tng)10 ACCOUNTING (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) NEW YORK
sql>col (tng) (tng)LOC heading location
sql>select * from dept;
(tng) (tng) DEPTNO DNAME (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)location
--------- ---------------------------- -----------
(tng) (tng) (tng) (tng) (tng) (tng)10 ACCOUNTING (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) NEW YORK
(tng) (tng)
2). 列名ENAME改ؓ(f)新列名EMPLOYEE NAMEq将新列名放在两行上Q?
Sql>select * from emp
Department (tng) (tng)name (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)Salary
---------- ---------- ----------
(tng) (tng) (tng) (tng) (tng) (tng)10 aaa (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 11 (tng) (tng) (tng) (tng) (tng) (tng)
SQL> COLUMN ENAME HEADING ’Employee|Name?
Sql>select * from emp
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)Employee
Department (tng) (tng)name (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)Salary
---------- ---------- ---------- (tng) (tng)
(tng) (tng) (tng) (tng) (tng) (tng)10 aaa (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 11
note: the col heading turn into two lines from one line.
(tng) (tng)
3). 改变列的昄长度Q?
FOR[MAT] format
Sql>select empno,ename,job from emp;
(tng) (tng) (tng) (tng)EMPNO ENAME (tng) (tng) (tng) (tng)JOB (tng) (tng) (tng) (tng) (tng) (tng)
---------- ---------- (tng) (tng) (tng) (tng)---------
(tng) (tng) (tng) (tng) 7369 SMITH (tng) (tng) (tng) (tng)CLERK (tng) (tng) (tng) (tng)
(tng) (tng) (tng) (tng) 7499 ALLEN (tng) (tng) (tng) (tng)SALESMAN (tng) (tng)
7521 WARD (tng) (tng) (tng) (tng) SALESMAN (tng) (tng)
Sql> col ename format a40
(tng) (tng) (tng) (tng)EMPNO ENAME (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)JOB
---------- (tng) (tng)---------------------------------------- (tng) (tng) (tng) (tng) (tng) (tng)---------
(tng) (tng) (tng) (tng) 7369 SMITH (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)CLERK
(tng) (tng) (tng) (tng) 7499 ALLEN (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)SALESMAN
(tng) (tng) (tng) (tng) 7521 WARD (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)SALESMAN
(tng) (tng)
4). 讄列标题的寚w方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
(tng) (tng) (tng) (tng)EMPNO (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)ENAME (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) JOB
---------- (tng) (tng)---------------------------------------- (tng) (tng) (tng) (tng) ---------
(tng) (tng) (tng) (tng) 7369 SMITH (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)CLERK
(tng) (tng) (tng) (tng) 7499 ALLEN (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)SALESMAN
7521 WARD (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) SALESMAN
对于NUMBER型的列,列标题缺省在双Q其它类型的列标题缺省在左边
(tng) (tng)
5). 不让一个列昄在屏q上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
(tng) (tng) (tng) (tng)EMPNO (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)ENAME
---------- (tng) (tng) (tng) (tng)----------------------------------------
(tng) (tng) (tng) (tng) 7369 SMITH
(tng) (tng) (tng) (tng) 7499 ALLEN
7521 WARD
(tng) (tng)
6). 格式化NUMBERcd列的昄Q?
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name (tng) (tng) (tng) (tng) (tng) (tng)Salary (tng) (tng) Commission
---------- ---------- --------- ----------
30 (tng) (tng) (tng) (tng) (tng) (tng) ALLEN (tng) (tng) (tng) (tng) (tng) (tng)$1,600 (tng) (tng) 300
(tng) (tng)
7). 昄列值时Q如果列gؓ(f)NULL|用textg替NULL?
COMM NUL[L] text
SQL>COL COMM NUL[L] text
(tng) (tng)
8). 讄一个列的回l方?
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
(tng) (tng) (tng) (tng) (tng) (tng)COL1
--------------------
HOW ARE YOU?
(tng) (tng)
SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
(tng) (tng)
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
(tng) (tng)
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
(tng) (tng)
9). 昄列的当前的显C属性?
SQL> COLUMN column_name
(tng) (tng)
10). 所有列的显C属性设为缺省?
SQL> CLEAR COLUMNS
(tng) (tng)
8. 屏蔽掉一个列中显C的相同的?
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL
FROM EMP
(tng) (tng)WHERE SAL < 2500
(tng) (tng)ORDER BY DEPTNO;
DEPTNO (tng) (tng) (tng) (tng)ENAME (tng) (tng) (tng) (tng) (tng) (tng)SAL
---------- ----------- ---------
10 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)CLARK (tng) (tng) (tng) (tng) (tng) (tng)2450
MILLER (tng) (tng) (tng) (tng)1300
20 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)SMITH (tng) (tng) (tng) (tng) 800
ADAMS (tng) (tng) (tng) (tng) 1100
(tng) (tng)
9. 在上面屏蔽掉一个列中显C的相同的值的昄中,每当列值变化时在值变化之前插入n个空行?
BREAK ON break_column SKIP n
(tng) (tng)
SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
(tng) (tng)
20 SMITH 800
ADAMS 1100
(tng) (tng)
10. 昄对BREAK的设|?
SQL> BREAK
(tng) (tng)
11. 删除6?的设|?
SQL> CLEAR BREAKS
(tng) (tng)
12. Set 命o(h)Q?
该命令包含许多子命o(h)Q?
SET system_variable value
system_variable value 可以是如下的子句之一Q?
APPI[NFO]{ON|OFF|text}
ARRAY[SIZE] {15|n}
AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
AUTOP[RINT] {ON|OFF}
AUTORECOVERY [ON|OFF]
AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
BLO[CKTERMINATOR] {.|c}
CMDS[EP] {;|c|ON|OFF}
COLSEP {_|text}
COM[PATIBILITY]{V7|V8|NATIVE}
CON[CAT] {.|c|ON|OFF}
COPYC[OMMIT] {0|n}
COPYTYPECHECK {ON|OFF}
DEF[INE] {&|c|ON|OFF}
DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
ECHO {ON|OFF}
EDITF[ILE] file_name[.ext]
EMB[EDDED] {ON|OFF}
ESC[APE] {\|c|ON|OFF}
FEED[BACK] {6|n|ON|OFF}
FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
FLU[SH] {ON|OFF}
HEA[DING] {ON|OFF}
HEADS[EP] {||c|ON|OFF}
INSTANCE [instance_path|LOCAL]
LIN[ESIZE] {80|n}
LOBOF[FSET] {n|1}
LOGSOURCE [pathname]
LONG {80|n}
LONGC[HUNKSIZE] {80|n}
MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
{ON|OFF}] [PRE[FORMAT] {ON|OFF}]
NEWP[AGE] {1|n|NONE}
NULL text
NUMF[ORMAT] format
NUM[WIDTH] {10|n}
PAGES[IZE] {24|n}
PAU[SE] {ON|OFF|text}
RECSEP {WR[APPED]|EA[CH]|OFF}
RECSEPCHAR {_|c}
SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
WRAPPED]|TRU[NCATED]}]
SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
SHOW[MODE] {ON|OFF}
SQLBL[ANKLINES] {ON|OFF}
SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
SQLCO[NTINUE] {> |text}
SQLN[UMBER] {ON|OFF}
SQLPRE[FIX] {#|c}
SQLP[ROMPT] {SQL>|text}
SQLT[ERMINATOR] {;|c|ON|OFF}
SUF[FIX] {SQL|text}
TAB {ON|OFF}
TERM[OUT] {ON|OFF}
TI[ME] {ON|OFF}
TIMI[NG] {ON|OFF}
TRIM[OUT] {ON|OFF}
TRIMS[POOL] {ON|OFF}
UND[ERLINE] {-|c|ON|OFF}
VER[IFY] {ON|OFF}
WRA[P] {ON|OFF}
(tng) (tng)
1). 讄当前session是否对修改的数据q行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
(tng) (tng)
2)Q在用start命o(h)执行一个sql脚本Ӟ是否昄脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
(tng) (tng)
3).是否昄当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|ON|OFF}
(tng) (tng)默认只有l果大于6行时才显C结果的行数。如果set feedback 1 Q则不管查询到多行都返回。当为off Ӟ一律不昄查询的行?
(tng) (tng)
4).是否昄列标?
SQL> SET HEA[DING] {ON|OFF}
当set heading off Ӟ在每늚上面不显C列标题Q而是以空白行代替
(tng) (tng)
5).讄一行可以容U的字符?
SQL> SET LIN[ESIZE] {80|n}
(tng) (tng)如果一行的输出内容大于讄的一行可容纳的字W数Q则折行昄?
(tng) (tng)
6).讄与之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 Ӟ?x)在每页的开头有一个小的黑Ҏ(gu)?
当set newpage n Ӟ?x)在和之间隔着n个空行?
当set newpage none Ӟ?x)在和之间没有Q何间隔?
(tng) (tng)
7).昄Ӟ用textg替NULL?
SQL> SET NULL text
(tng) (tng)
8).讄一|多少行数
SQL> SET PAGES[IZE] {24|n}
如果设ؓ(f)0Q则所有的输出内容Zƈ且不昄列标?
(tng) (tng)
9).是否昄用DBMS_OUTPUT.PUT_LINE包进行输出的信息?
SQL> SET SERVEROUT[PUT] {ON|OFF} (tng) (tng)
在编写存储过E时Q我们有时会(x)用dbms_output.put_line必要的信息输出Q以便对存储q程q行调试Q只有将serveroutput变量设ؓ(f)on后,信息才能昄在屏q上?
(tng) (tng)
10).当SQL语句的长度大于LINESIZEӞ是否在显C时截取SQL语句?
SQL> SET WRA[P] {ON|OFF}
(tng) (tng)当输出的行的长度大于讄的行的长度时Q用set linesize n命o(h)讄Q,当set wrap onӞ输出行的多于的字W会(x)另v一行显C,否则Q会(x)输?gu)的多于字W切除,不予昄?
(tng) (tng)
11).是否在屏q上昄输出的内容,主要用与SPOOLl合使用?
SQL> SET TERM[OUT] {ON|OFF}
(tng) (tng)在用spool命o(h)一个大表中的内容输出到一个文件中Ӟ内容输出在屏幕上会(x)耗费大量的时_(d)讄set termspool off后,则输出的内容只会(x)保存在输出文件中Q不?x)显C在屏幕上,极大的提高(sh)(jin)spool的速度?
(tng) (tng)
12).SPOOL输出中每行后面多余的I格L
SQL> SET TRIMS[OUT] {ON|OFF} (tng) (tng)
(tng) (tng)
13)昄每个sql语句p的执行时?
set TIMING (tng) (tng){ON|OFF}
(tng) (tng)
14Q修改sql buffer中的当前行中Q第一个出现的字符?
C[HANGE] /old_value/new_value
SQL> l
(tng) (tng)1* select * from dept
SQL> c/dept/emp
(tng) (tng)1* select * from emp
(tng) (tng)
15Q编辑sql buffer中的sql语句
EDI[T]
(tng) (tng)
16Q显Csql buffer中的sql语句Qlist n昄sql buffer中的Wn行,qɽWn行成为当前行
L[IST] [n]
(tng) (tng)
17Q在sql buffer的当前行下面加一行或多行
I[NPUT]
(tng) (tng)
18Q将指定的文本加到sql buffer的当前行后面
A[PPEND]
SQL> select deptno,
(tng) (tng)2 (tng) (tng)dname
(tng) (tng)3 (tng) (tng)from dept;
(tng) (tng) (tng) (tng)DEPTNO DNAME
---------- --------------
(tng) (tng) (tng) (tng) (tng) (tng)10 ACCOUNTING
(tng) (tng) (tng) (tng) (tng) (tng)20 RESEARCH
(tng) (tng) (tng) (tng) (tng) (tng)30 SALES
(tng) (tng) (tng) (tng) (tng) (tng)40 OPERATIONS
(tng) (tng)
SQL> L 2
(tng) (tng)2* dname
SQL> a ,loc
(tng) (tng)2* dname,loc
SQL> L
(tng) (tng)1 (tng) (tng)select deptno,
(tng) (tng)2 (tng) (tng)dname,loc
(tng) (tng)3* from dept
SQL> /
(tng) (tng)
(tng) (tng) (tng) (tng)DEPTNO DNAME (tng) (tng) (tng) (tng) (tng) (tng) LOC
---------- -------------- -------------
(tng) (tng) (tng) (tng) (tng) (tng)10 ACCOUNTING (tng) (tng) (tng) (tng)NEW YORK
(tng) (tng) (tng) (tng) (tng) (tng)20 RESEARCH (tng) (tng) (tng) (tng) DALLAS
(tng) (tng) (tng) (tng) (tng) (tng)30 SALES (tng) (tng) (tng) (tng) (tng) (tng) CHICAGO
(tng) (tng) (tng) (tng) (tng) (tng)40 OPERATIONS (tng) (tng) (tng) (tng)BOSTON
(tng) (tng)
19Q将sql buffer中的sql语句保存C个文件中
SAVE file_name
(tng) (tng)
20Q将一个文件中的sql语句导入到sql buffer?
GET file_name
(tng) (tng)
21Q再ơ执行刚才已l执行的sql语句
RUN
or
/
(tng) (tng)
22Q执行一个存储过E?
EXECUTE procedure_name
(tng) (tng)
23Q在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias
(tng) (tng)
24Q设|每个报表的剙标题
TTITLE
(tng) (tng)
25Q设|每个报表的N标题
BTITLE
(tng) (tng)
26Q写一个注?
REMARK [text]
(tng) (tng)
27Q将指定的信息或一个空行输出到屏幕?
PROMPT [text]
(tng) (tng)
28Q将执行的过E暂停,{待用户响应后l执?
PAUSE [text]
(tng) (tng)
Sql>PAUSE Adjust paper and press RETURN to continue.
(tng) (tng)
29Q将一个数据库中的一些数据拷贝到另外一个数据库Q如一个表的数据拷贝到另一个数据库Q?
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
(tng) (tng)
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST (tng) (tng)
create emp_temp
USING SELECT * FROM EMP
(tng) (tng)
30Q不退出sql*plusQ在sql*plus中执行一个操作系l命令:(x)
HOST
(tng) (tng)
Sql> host hostname
该命令在windows下可能被支持?
(tng) (tng)
31Q在sql*plus中,切换到操作系l命令提C符下,q行操作pȝ命o(h)后,可以再次切换回sql*plusQ?
!
(tng) (tng)
sql>!
$hostname
$exit
sql>
(tng) (tng)
该命令在windows下不被支持?
(tng) (tng)
32Q显Csql*plus命o(h)的帮?
HELP
如何安装帮助文gQ?
Sql>@ ?\sqlplus\admin\help\hlpbld.sql ?\sqlplus\admin\help\helpus.sql
Sql>help index
(tng) (tng)
33Q显Csql*pluspȝ变量的值或sql*plus环境变量的?
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
(tng) (tng)
1) . 昄当前环境变量的|(x)
Show all
(tng) (tng)
2) . 昄当前在创建函数、存储过E、触发器、包{对象的错误信息
Show error
当创Z个函数、存储过E等出错Ӟ变可以用该命令查看在那个地方出错?qing)相应的出错信息Q进行修改后再次q行~译?
(tng) (tng)
3) . 昄初始化参数的|(x)
show PARAMETERS [parameter_name]
(tng) (tng)
4) . 昄数据库的版本Q?
show REL[EASE]
(tng) (tng)
5) . 昄SGA的大?
show SGA
(tng) (tng)
6). 昄当前的用户名
show user