oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句

ORACLE 常用的SQL语法和数据对象
一.数码控制语句 (DML) 部分

1.INSERT (往数据表里插入记录之话语)

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

字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’
假定字段值里富含单引号’ 需要展开字符串转换,
我们将她替换成稀独单引号”.
字符串类型的字段值超过定义的长度会出错, 最好当插入前开展长度校验.

日子字段的许段值可以就此当下数据库的系统时SYSDATE, 精确到秒
要用字符串转换成为日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)
TO_DATE()还有好多种日期格式, 可以参看ORACLE DOC.
年-月-日 小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS

INSERT时不过老但操作的字符串长度小于等于4000个单字节,
如果要插入更丰富的字符串, 请考虑字段用CLOB类型,
主意借用ORACLE里由带的DBMS_LOB程序包.

INSERT时如要就此到起1起来活动增长的行列号, 应该事先树一个列号
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1
START WITH 1
MAXVALUE 99999 CYCLE NOCACHE;
个中最为可怜的价按字段的尺寸来定, 如果定义之自发性增长之序列号 NUMBER(6) ,
最深价值吗999999
INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL

2.DELETE (删除数据表里记录的讲话)

DELETE FROM表名 WHERE 条件;

瞩目:删除记录并无能够放ORACLE里吃挤占的数据块表空间.
它只有将那些为删除的数量片标成unused.

苟确如去一个老表里的万事记下, 可以就此 TRUNCATE 命令,
它可以释放占用的数额块表空间
TRUNCATE TABLE 表名;
是操作不可回退.

3.UPDATE (修改数据表里记录之口舌)

UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;

如果改动的值N没有赋值或概念时, 将把本来的记录内容清为NULL,
最好当窜前开展非空校验;
值N超过定义之长会出错, 最好当插入前进行长度校验..

注意事项:
A. 以上SQL语句对表都丰富了行级锁,
肯定就后, 必须长事物处理了之通令 COMMIT 才会规范生效,
不然改变不肯定写副数据库里.
若想撤回这些操作, 可以就此命令 ROLLBACK 复原.

B. 以运作INSERT, DELETE 和 UPDATE
语句前极端好量一下可能操作的笔录范围,
有道是把它界定于比较小 (一万漫长记下) 范围外,.
否则ORACLE处理这个事物用到老酷之回退段.
次第响应慢甚至去响应. 如果记录数上十万以上这些操作,
可以管这些SQL语句分段分次完成,
里加上COMMIT 确认事物处理.
二.数定义 (DDL) 部分
1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)

ORACLE常用的字段类型有
CHAR 固定长度的字符串
VARCHAR2 可转换长的字符串
NUMBER(M,N) 数字型M是各项数总长度, N是小数的长
DATE 日期类型

始建表时而拿于小的不为空的字段放在面前, 可能为空的字段放在后面

创建表时可以为此中文的字段名, 但最好要用英文的许段名

缔造表时可以为字段加上默认值, 例如 DEFAULT SYSDATE
诸如此类每次插入和修改时, 不用程序操作是字段都能得到动作之时日

创建表时可以叫字段加上约原则
诸如 不允许再 UNIQUE, 关键字 PRIMARY KEY

2.ALTER (改变表, 索引, 视图等)

转表底称
ALTER TABLE 表名1 TO 表名2;

当表明的末尾多一个字段
ALTER TABLE表名 ADD 字段名 字段名描述;

修改表里字段的概念描述
ALTER TABLE表名 MODIFY字段名 字段名描述;

为表里的字段加上约原则
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名);
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名);

把表放在要取出数据库的内存区
ALTER TABLE 表名 CACHE;
ALTER TABLE 表名 NOCACHE;

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

删除表和它们兼具的自律规范
DROP TABLE 表名 CASCADE CONSTRAINTS;

4.TRUNCATE (清空表里的持有记录, 保留表的组织)

TRUNCATE 表名;

三.查询语句 (SELECT) 部分
SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件;

字段名可以携带函数
例如: 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(AA﹐V1﹐R1﹐V2﹐R2….)函数
解释:
IF AA=V1 THEN RETURN R1
IF AA=V2 THEN RETURN R2
..…
ELSE
RETURN NULL

LPAD(char1,n,char2)函数
解释:
字符char1按制定的号数n显示,不足的位数用char2字符串替换左边的空位

许段名之间可进行算术运算
例如: (字段名1*字段名1)/3

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

有限只查询语句子的结果可以举行集合操作
诸如: 并集UNION(去丢重复记录), 并集UNION ALL(不失丢重复记录), 差集MINUS,
交集INTERSECT

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

少独盖上表之间的总是查询

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

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

有(+)号的字段位置自动补空值

询问结果集的排序操作, 默认的排序是升序ASC, 降序是DESC

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

字符串模糊比较的方

INSTR(字段名, ‘字符串’)>0
字段名 LIKE ‘字符串%’ [‘%字符串%’]

每个表还发出一个蕴含的字段ROWID, 它标志着记录之绝无仅有性.

四.ORACLE里常用的数量对象 (SCHEMA)
1.索引 (INDEX)

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

一个申明的目录最好永不过三个 (特殊的大表除外), 最好用词段索引,
结合SQL语句之剖析执行情况,
为得建立多字段的做索引和冲函数的目

ORACLE8.1.7字符串可以索引的极特别长也1578 单字节
ORACLE8.0.6配符串可以索引的绝要命长也758 单字节

2.视图 (VIEW)

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

视图仅是一个SQL查询语句, 它可拿表内复杂的涉及简洁化.

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

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

数据库连接字符串可以为此NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

数据库参数global_name=true时要求数据库链接名称和远端数据库名称一致

数据库全局名称可以为此以下命令查出
SELECT * FROM GLOBAL_NAME;

询问远端数据库里之说明
SELECT …… FROM 表名@数据库链接名;

五.权限管理 (DCL) 语句
1.GRANT 赋于权力
常用的网权限集合有以下三个:
CONNECT(基本的连接), RESOURCE(程序支付), DBA(数据库管理)
常用之数码对象权限有以下五单:
ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名,
DELETE ON 数据对象名, INSERT ON 数据对象名, ALTER ON 数据对象名

GRANT CONNECT, RESOURCE TO 用户名;
GRANT SELECT ON 表名 TO 用户名;
GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;

2.REVOKE 回收权限

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

查询数据库中第63声泪俱下错误:
select orgaddr,destaddr from sm_histable0116 where error_code=’63’;

查询数据库中开户用户最酷提交和极端酷下发数: select MSISDN,TCOS,OCOS from
ms_usertable;

查询数据库中各种错误代码的总数:
select error_code,count(*) from sm_histable0513 group by error_code
order
by error_code;

询问表数据库中说话才统计种类查询。
select sum(Successcount) from tbl_MiddleMt0411 where ServiceType2=111
select sum(successcount),servicetype from tbl_middlemt0411 group by
servicetype

oracle常用SQL语句

1、连接SQL*Plus system/manager
2、显示当前一连用户SQL> show user
3、查看系统所有什么样用户SQL> select * from all_users;
4、新建用户并授权SQL> create user a identified by
a;(默认建在SYSTEM表空间下)SQL> grant connect,resource to a;
5、连接受新用户SQL> conn a/a
6、查询时用户下有所目标SQL> select * from tab;
7、建立第一单表SQL> create table a(a number);
8、查询表结构SQL> desc a
9、插入新记录SQL> insert into a values(1);
10、查询记录SQL> select * from a;
11、更改记录SQL> update a set a=2;
12、删除记录SQL> delete from a;
13、回滚SQL> roll;SQL> rollback;

14、提交SQL> commit;


用户授权:GRANT ALTER ANY INDEX TO “user_id “GRANT “dba ” TO “user_id
“;ALTER USER “user_id ” DEFAULT ROLE ALL创建用户:CREATE USER “user_id
” PROFILE “DEFAULT ” IDENTIFIED BY ” DEFAULT TABLESPACE “USERS ”
TEMPORARY TABLESPACE “TEMP ” ACCOUNT UNLOCK;GRANT “CONNECT ” TO
“user_id “;用户密码设定:ALTER USER “CMSDB ” IDENTIFIED BY “pass_word
“表空间创建:CREATE TABLESPACE “table_space ” LOGGING DATAFILE

‘C:\ORACLE\ORADATA\dbs\table_space.ora’ SIZE 5M

1、查看时备目标
SQL > select * from tab;
2、建一个与a表结构同样的空表
SQL > create table b as select * from a where 1=2;
SQL > create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;
3、察看数据库的大小,和空间利用状况
SQL > col tablespace format a20SQL > select
b.file_id  文件ID,  b.tablespace_name  表空间,  b.file_name     物理文件称,  b.bytes       总字节数,  (b.bytes-sum(nvl(a.bytes,0)))   已下,  sum(nvl(a.bytes,0))        剩余,  sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分开比  from
dba_free_space a,dba_data_files b  where
a.file_id=b.file_id  group by
b.tablespace_name,b.file_name,b.file_id,b.bytes  order by
b.tablespace_name  /  dba_free_space
–表空间剩余空间状况  dba_data_files –数据文件空间占据情况
4、查看现有回滚段及其状态
SQL > col segment format a30SQL > SELECT
SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM
DBA_ROLLBACK_SEGS;
5、查看数据文件放置的门路
SQL > col file_name format a50SQL > select
tablespace_name,file_id,bytes/1024/1024,file_name from
dba_data_files order by file_id;
6、显示当前连用户
SQL > show user
7、把SQL*Plus当计算器
SQL > select 100*20 from dual;
8、连接字符串
SQL > select 列1 | |列2 from 表1;SQL > select concat(列1,列2) from
表1;
9、查询时日期
SQL > select to_char(sysdate,’yyyy-mm-dd,hh24:mi:ss’) from dual;
10、用户中复制数据
SQL > copy from user1 to user2 create table2 using select * from
table1;
11、视图中未能够采用order by,但可用group by代替来齐排序目的
SQL > create view a as select b1,b2 from b group by b1,b2;
12、通过授权的点子来创造用户
SQL > grant connect,resource to test identified by test;
SQL > conn test/test
13、查出时用户拥有表名。

select unique tname from col;

/* 向一个报表上加字段 */alter table alist_table add address
varchar2(100);
/* 修改字段 属性 字段为空 */alter table alist_table modify address
varchar2(80);
/* 修改字段名字 */create table alist_table_copy as select
ID,NAME,PHONE,EMAIL,QQ as QQ2, /*qq 改为qq2*/ADDRESS from
alist_table;
drop table alist_table;rename alist_table_copy to alist_table/*
修改表名 */
空值处理有时要求列值不可知啊空create table dept (deptno number(2) not
null, dname char(14), loc char(13));
以基表中加进一列alter table deptadd (headcnt number(3));
改就发生列属性alter table deptmodify dname
char(20);注:只有当某列所有值都为空时,才能够减多少其列值宽度。只有当某列所有值都为空时,才能够改变其列值类型。只有当某列所有值都为不空时,才能够定义该列为not
null。例:alter table dept modify (loc char(12));alter table dept modify
loc char(12);alter table dept modify (dname char(13),loc char(12));
探寻无断连接select process,osuser,username,machine,logon_time
,sql_textfrom v$session a,v$sqltext b where a.sql_address=b.address;
—————————————————————–1.以USER_起之多少字典视图包含当前用户所具有的消息,
查询时用户所享有的申信息:select * from
user_tables;2.以ALL_初始之数字典视图包含ORACLE用户所持有的音讯,查询用户拥有或有且访问的有所表信息:select
* from all_tables;
3.以DBA_发端的视图一般只有发生ORACLE数据库管理员可以看:select * from
dba_tables;
4.查询ORACLE用户:conn sys/change_on_installselect * from
dba_users;conn system/manager;select * from all_users;
5.创立数据库用户:CREATE USER user_name IDENTIFIED BY password;GRANT
CONNECT TO user_name;GRANT RESOURCE TO user_name;授权的格式: grant
(权限) on tablename to username;删除用户(或表):drop user(table)
username(tablename) (cascade);6.奔建筑好之用户导入数据表IMP SYSTEM/MANAGER
FROMUSER = FUSER_NAME TOUSER = USER_NAME FILE = C:\EXPDAT.DMP COMMIT
= Y7.索引create index [index_name] on [table_name]( “column_name
“)intersect运算
回到查询结果被千篇一律之一部分
exp:各个部门中起怎么样相同之工种
selectjob
fromaccount
intersect
selectjob
fromresearch
intersect
selectjob
fromsales;

minus运算
回去在率先独查询结果遭到以及亚个查询结果不等同的那么有些实践记录。
发出怎样工种在财会部被生出,而以销售部中从来不?
exp:selectjobfromaccount
minus
selectjobfromsales;

  1. oracle安装到位后底开头口令?
     internal/oracle
      sys/change_on_install
      system/manager
      scott/tiger
      sysman/oem_temp

  2. oracle9ias web cache的起来默认用户与密码?
    administrator/administrator

  3. oracle 8.0.5庸开创数据库?
    用orainst。假如有motif界面,可以用orainst /m

  4. oracle 8.1.7庸开创数据库?
    dbassist

  5. oracle 9i 怎么开创数据库?
    dbca

  6. oracle中的裸设备指的是呀?
    赤设备就是是纠缠了文件系统直接看的贮存空间

  7. oracle如何区分 64-bit/32bit 版???
    $ sqlplus ‘/ as sysdba’
    sql*plus: release 9.0.1.0.0 – production on mon jul 14 17:01:09 2003
    (c) copyright 2001 oracle corporation. all rights reserved.
    connected to:
    oracle9i enterprise edition release 9.0.1.0.0 – production
    with the partitioning option
    jserver release 9.0.1.0.0 – production
    sql> select * from v$version;
    banner


oracle9i enterprise edition release 9.0.1.0.0 – production
pl/sql release 9.0.1.0.0 – production
core 9.0.1.0.0 production
tns for solaris: version 9.0.1.0.0 – production
nlsrtl version 9.0.1.0.0 – production
sql>

  1. svrmgr什么意思?
    svrmgrl,server manager.
    9i下没有,已经变更呢用sqlplus了
    sqlplus /nolog
    成为归档日志型的

  2. 借问如何鉴别某个用户是起哪台机器登陆oracle的?
    select machine , terminal from v$session;

  3. 之所以啊语句询问字段呢?
    desc table_name 可以查询表的布局
    select field_name,… from … 可以查询字段的价
    select * from all_tables where table_name like ‘%’
    select * from all_tab_columns where table_name=’??’

  4. 怎么获得触发器、过程、函数的开创脚本?
    desc user_source
    user_triggers

  5. 什么计算一个申明占用的长空的尺寸?
    select owner,table_name,
    num_rows,
    blocks*aaa/1024/1024 “size m”,
    empty_blocks,
    last_analyzed
    from dba_tables
    where table_name=’xxx’;
    here: aaa is the value of db_block_size ;
    xxx is the table name you want to check

  6. 何以查看最大会话数?
    select * from v$parameter where name like ‘proc%’;
    sql>
    sql> show parameter processes
    name type value



aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 4
log_archive_max_processes integer 1
processes integer 200
这里为200个用户。
select * from v$license;
其中sessions_highwater纪录曾经到的无比大会话数

  1. 争查看系统于钉之事务时?
    select * from v$locked_object ;

  2. 哪些以archivelog的方式运行oracle。
    init.ora
    log_archive_start = true
    restart database

  3. 岂抱有什么样用户以使用数据库
    select username from v$session;

  4. 数码表中的字段最大数是有点?
    申要视图中的绝可怜列数为 1000

  5. 如何查得数据库的sid ?
    select name from v$database;
    啊可以一直翻 init.ora文件

  6. 争以oracle服务器上经过sqlplus查看本机ip地址 ?
    select sys_context(‘userenv’,’ip_address’) from dual;
    一旦是登陆本机数据库,只能回到127.0.0.1,呵呵

  7. unix 下怎么调数据库的辰?
    su -root
    date -u 08010000

  8. 以oracle table中安抓取memo类型字段为空的数据记录?
    select remark from oms_flowrec where trim(‘ ‘ from remark) is not null
    ;

  1. 什么用bbb表的数量去更新aaa表的数(有关系的字段)
    up2003-10-17 aaa set bns_snm=(select bns_snm from bbb where
    aaa.dpt_no=bbb.dpt_no) where bbb.dpt_no is not null;

  2. p4计算机安装方式
    将symcjit.dll改为sysmcjit.old

  3. 何查询server是不是ops?
    select * from v$option;
    假如parallel server=true则有ops能

  4. 乌查询每个用户的权限?
    select * from dba_sys_privs;

  5. 争用表明动表空间?
    alter table table_name move tablespace_name;

  6. 哪些拿引得移动表空间?
    alter index index_name rebuild tablespace tablespace_name;

  7. 以linux,unix下什么启动dba studio?
    oemapp dbastudio

  8. 查询锁的场面的目标来?
    v$lock, v$locked_object, v$session, v$sqlarea, v$process ;
    查询锁的表明的艺术:
    select s.sid session_id, s.username, decode(lmode, 0, ‘none’, 1,
    ‘null’, 2, ‘row-s (ss)’, 3, ‘row-x (sx)’, 4, ‘share’, 5, ‘s/row-x
    (ssx)’, 6, ‘exclusive’, to_char(lmode)) mode_held, decode(request, 0,
    ‘none’, 1, ‘null’, 2, ‘row-s (ss)’, 3, ‘row-x (sx)’, 4, ‘share’, 5,
    ‘s/row-x (ssx)’, 6, ‘exclusive’, to_char(request)) mode_requested,
    o.ccbzzp||’.’||o.object_name||’ (‘||o.object_type||’)’, s.type
    lock_type, l.id1 lock_id1, l.id2 lock_id2 from v$lock l,
    sys.dba_objects o, v$session s where l.sid = s.sid and l.id1 =
    o.object_id ;

  9. 怎解锁?
    alter system kill session ‘sid,serir#’;

  10. sqlplus下什么样修改编辑器?
    define _editor=”” — 必须抬高双引号
    来定义新的编辑器,也得以拿这写以$oracle_home/sqlplus/admin/glogin.sql里面如她世代有效。

  11. oracle有随机函数是?
    dbms_random.random

  12. linux下询问磁盘竞争状况令?
    sar -d

  13. linux下询问cpu竞争状况令?
    sar -r

  14. 询问时用户对象?
    select * from user_objects;
    select * from dba_segments;

  15. 怎么样获得错误信息?
    select * from user_errors;

  16. 怎赢得链接状况?
    select * from dba_db_links;

  17. 翻开数据库字符状况?
    select * from nls_database_parameters;
    select * from v$nls_parameters;

  18. 查询表空间信息?
    select * from dba_data_files;

  19. oracle的interal用户如果口令?
    修改 sqlnet.ora
    sqlnet.authentication_services=(nts)

  20. 起java.exe的解决办法?
    貌似是用oracleorahomexihttpserver改成为手工启动可以的
    x是8或9

  21. 什么样为表、列加注释?
    sql>comment on table 表 is ‘表注释’;
    诠释已开立。
    sql>comment on column 表.列 is ‘列注释’;
    注解已创造。
    sql> select * from user_tab_comments where comments is not null;

  22. 怎么样查看各个表空间占据磁盘情况?
    sql> col tablespace format a20
    sql> select
    b.file_id 文件id号,
    b.tablespace_name 表空间名,
    b.bytes 字节数,
    (b.bytes-sum(nvl(a.bytes,0))) 已使用,
    sum(nvl(a.bytes,0)) 剩余空间,
    sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
    from dba_free_space a,dba_data_files b
    where a.file_id=b.file_id
    group by b.tablespace_name,b.file_id,b.bytes
    order by b.file_id

  23. 若将oracle设置也mts或专用模式?
    #dispatchers=”(protocol=tcp) (service=sidxdb)”
    长就是mts,注释就是专用模式,sid是据你的实例名。

  24. 什么样才会得知系统当下的scn号 ?
    select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe;

  25. 借问如何当oracle中取毫秒?
    9i事先未支持,9i初始发timestamp.
    9i可以用select systimestamp from dual;

__________________
风从云涌,一锅子粥。
人生苦闷,开心就是实行。

为版主反映这帖子 | ip: 已记录
10-13-03 01:20

开心果
老牌会员

注册日期: aug 2003
来自: 福建
发帖数: 525
大家在动用oracle的时刻也许会见遇到很多拘留起容易的问题, 非凡对新手来说,
今天自我简单把它总一下, 发布让大家, 希望对大家来帮衬! 和豪门并追,
共同进步!

本着oracle高手来说是不要看之.

  1. 安当字符串里加回车?
    select ‘welcome to visit’||chr(10)||’www.csdn.net’ from dual ;

  2. 中文是什么样排序的?
    oracle9i之前,中文是依次前进制编码进行排序的。
    当oracle9i中新增了按拼音、部首、笔画排序功能。设置nls_sort值
    schinese_radical_m 按照部首(第一梯次)、笔划(第二依次)排序
    schinese_stroke_m 按照笔划(第一相继)、部首(第二相继)排序
    schinese_pinyin_m 按照拼音排序

  3. oracle8i中目标名好为此汉语也?
    可以

  4. 什么样转win中sql*plus启动选?
    sql*plus自身的选择项设置我们好当$oracle_home/sqlplus/admin/glogin.sql中设置。

  5. 怎么样修改oracel数据库的默认日期?
    alter session set nls_date_format=’yyyymmddhh24miss’;
    or
    可以在init.ora中增长一行
    nls_date_format=’yyyymmddhh24miss’

  6. 如何用小表放入keep池中?
    alter table xxx storage(buffer_pool keep);

  7. 何以检查是不是安装了某patch?
    check that orainventory

  8. 哪如select语句使查询结果自动生成序号?
    select rownum,col from table;

  9. 安理解多少裤中某个表所在的tablespace?
    select tablespace_name from user_tables where table_name=’test’;
    select * from user_tables中出个字段tablespace_name,(oracle);
    select * from dba_segments where …;

  10. 岂好长足开一个跟原表一样的备份表?
    create table new_table as (select * from old_table);

  11. 怎么在sqlplus下修改procedure?
    select line,trim(text) t from user_source where name =’a’ order by
    line;

  12. 怎么样消procedure被飞锁定?
    alter system kill session
    ,把万分session给杀掉,不过你要是事先摸清其的session id
    or
    拿该过程还改变个名字就是足以了。

  13. sql reference是独什么事物?
    举凡均等据sql的使用手册,包括语法、函数等等,oracle官方网站的文档中心发出下载.

  14. 怎么样查看数据库的状态?
    unix下
    ps -ef | grep ora
    windows下
    看服务是否起来
    是不是可以连上数据库

  15. 试问如何改一张表的主键?
    alter table aaa
    drop constraint aaa_key ;
    alter table aaa
    add constraint aaa_key primary key(a1,b1) ;

  16. 反数据文件的轻重缓急?
    用 alter database …. datafile …. ;
    手工改变数据文件的分寸,对于本来的 数据文件有没发出伤害。

  17. 哪些查看oracle中起安程序于运转中?
    查看v$sessions表

  18. 岂好观看数据库来小个tablespace?
    select * from dba_tablespaces;

  19. 怎么样修改oracle数据库的用户连接数?
    改initsid.ora,将process加大,重开数据库.

  20. 如何获悉一修记下的结尾更新时间?
    可以用logminer 察看

  21. 哪当pl/sql中读写文件?
    utl_file包答应用户通过pl/sql读写操作系统文件。

  22. 哪些把“&”放入平长条记下着?
    insert into a values (translate (‘at{&}t’,’at{}’,’at’));

  23. exp 如何加query参数?
    exp user/pass file=a.dmp tables(bsempms)
    query='”where emp_no=”‘s09394″‘”” ﹔

  24. 关于oracle8i支持简体和复杂的字符集问题?
    zhs16gbk可以支

  25. data guard是呀软件?
    虽standby的换代产品

  26. 怎创造spfile?
    sql> connect / as sysdba
    sql> select * from v$version;
    sql> create pfile from spfile;
    sql> create spfile from
    pfile=’e:”ora9i”admin”eygle”pfile”init.ora’;
    文本已经创造。
    sql> create spfile=’e:”ora9i”database”spfileeygle.ora’ from
    pfile=’e:”ora9i”admin”eygle”pfile”init.ora’;
    文件已开立。

  27. 水源参数的利用?
    shmmax
      含义:这个装置并无控制究竟oracle数据库或者操作系统使用多少物理内存,只控制了最好多足采取的内存数目。这个装置为不影响操作系统的基础资源。
      设置法:0.5*物理内存
      例子:set shmsys:shminfo_shmmax=10485760
      shmmin
      含义:共享内存的极致小尺寸。
      设置法:一般都设置成1。
      例子:set shmsys:shminfo_shmmin=1:
      shmmni
      含义:系统受到共享内存段的尽充分只数。
      例子:set shmsys:shminfo_shmmni=100
      shmseg
      含义:每个用户进程可以使的极其多的共享内存段的数据。
      例子:set shmsys:shminfo_shmseg=20:
      semmni
      含义:系统中semaphore identifierer的极度酷只数。
      设置方法:把这个变量的价设置为者体系Oracle及之有着oracle的实例的init.ora中之极致酷的深processes的良值加10。
      例子:set semsys:seminfo_semmni=100
      semmns
      含义:系统中emaphores的绝老单数。
      设置法:这个价好经过以下措施测算得到:各个oracle实例的initsid.ora里边的processes的价的总额(除去最充分的processes参数)+最可怜之百般processes×2+10×oracle实例的个数。
      例子:set semsys:seminfo_semmns=200
      semmsl:
      含义:一个set中semaphore的极其要命只数。
      设置法:设置成10+所有oracle实例的initsid.ora中极度充分之processes的值。
      例子:set semsys:seminfo_semmsl=-200

  28. 怎查看哪些用户拥有sysdba、sysoper权限?
    sql>conn sys/change_on_install
    sql>select * from v_$pwfile_users;

  29. 何以独立备份一个或多单说明?
    exp 用户/密码 tables=(表1,…,表2)

  30. 安独立备份一个要多个用户?
    exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件

  31. 什么对clob字段进行全文检索?
    select * from a where dbms_lob.instr(a.a,’k’,1,1)>0;

  32. 哪展示当前总是用户?
    show user

  33. 安查看数据文件放置的路径 ?
    col file_name format a50
    sql> select tablespace_name,file_id,bytes/1024/1024,file_name from
    dba_data_files order by file_id;

  34. 什么样查看现有回滚段及其状态 ?
    sql> col segment format a30
    sql> select
    segment_name,ccbzzp,tablespace_name,segment_id,file_id,status from
    dba_rollback_segs

  35. 怎样转移一个字段初始定义之check范围?
    sql> alter table xxx drop constraint constraint_name;
    日后再次创新约束:
    sql> alter table xxx add constraint constraint_name check();

  36. oracle常用系统文件有什么样?
    经以下视图显示这些文件信息:v$database,v$datafile,v$logfile
    v$controlfile v$parameter;

  37. 内连接inner join?
    select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no;

  38. 何以外接连?
    select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+);
    select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no;

  39. 哪履行脚本sql文件?
    sql>@$path/filename.sql;

  40. 争高效清空一个大表?
    sql>truncate table table_name;

  41. 安查有多少只数据库实例?
    sql>select * from v$instance;

  42. 哪些查询数据库有稍许表?
    sql>select * from all_tables;

  43. 怎样测试sql语句执行所用之时刻?
    sql>set timing on ;
    sql>select * from tablename;

  44. chr()的反函数是?
    ascii()
    select char(65) from dual;
    select ascii(‘a’) from dual;

  45. 字符串的连续
    select concat(col1,col2) from table ;
    select col1||col2 from table ;

  46. 岂把select出来的结果导到一个文书文件被?
    sql>spool c:”abcd.txt;
    sql>select * from table;
    sql >spool off;

  47. 如何估算sql执行之i/o数 ?
    sql>set autotrace on ;
    sql>select * from table;
    or
    sql>select * from v$filestat ;
    得查io数

  48. 哪当sqlplus下转移字段大小?
    alter table table_name modify (field_name varchar2(100));
    改变大行,改多少坏(除非都是空的)

  49. 哪些询问某天的数码?
    select * from table_name where
    trunc(日期字段)=to_date(‘2003-05-02′,’yyyy-mm-dd’);

  50. sql 语句如何插入全年日期?
    create table bsyear (d date);
    insert into bsyear
    select to_date(‘20030101′,’yyyymmdd’)+rownum-1
    from all_objects
    where rownum

  51. 假设修改表名?
    alter table old_table_name rename to new_table_name;

  52. 怎赢得命令的归状态值?
    sqlcode=0

  53. 什么理解用户所有的权位?
    select * from dba_sys_privs ;

  54. 自从网上下载的oracle9i与市场高达售的标准版有什么界别?
    从功能及说没有分别,只不过oracle公司发出明文规定;从网站及下载的oracle产品不得用于
    商业用途,否则侵权。

  55. 怎么判断数据库是运行在归档模式下要运行于非归档模式下?
    进入dbastudio,历程–〉数据库—〉归档查看。

  56. sql>startup pfile和ifile,spfiled有啊分别?
    pfile就是oracle传统的初始化参数文件,文本格式的。
    ifile类似于c语言里的include,用于把另外一个文本引入
    spfile是9i里新增的而是默认的参数文件,二迈入制格式
    startup后应该一味可接pfile

  57. 怎寻找来前n漫长记下?
    select * from employee where rownum

  58. 如何理解机器及之oracle支持小并发用户数?
    sql>conn internal ;
    sql>show parameter processes ;

  59. db_block_size可以改也?
    诚如不可以﹐不建议这样做的。

  60. 安统计两独说明的记录总数?
    select (select count(id) from aa)+(select count(id) from bb) 总数 from
    dual;

  61. 什么样用sql语句实现查找一排列着第n大值?
    select * from
    (select t.*,dense_rank() over (order by sal) rank from employee)
    where rank = n;

  1. 怎么以让现有的日期加上2年?(
    select add_months(sysdate,24) from dual;

  2. used_ublk也负值表示什么意思?
    it is “harmless”.

  3. connect string是乘什么?
    相应是tnsnames.ora中的服务名后面的情

  4. 哪扩大redo log的大大小小?
    建立一个临时之redolog组,然后切换日志,删除以前的日志,建立新的日记。

  5. tablespace 是否不能够盖4g?
    没有限制.

  6. 返回大于等于n的最为小整数值?
    select ceil(n) from dual;

  7. 归来小于等于n的极致小整数值?
    select floor(n) from dual;

  8. 回来时月份之末梢一天?
    select last_day(sys2003-10-17) from dual;

  9. 何以不同用户中数导入?
    imp system/manager file=aa.dmp fromuser=user_old touser=user_new
    rows=y indexes=y ;

  10. 哪寻找数据库表的主键字段的名号?
    sql>select * from user_constraints where constraint_type=’p’ and
    table_name=’table_name’;

  11. 区区只结实集互加的函数?
    sql>select * from bsempms_old intersect select * from
    bsempms_new;
    sql>select * from bsempms_old union select * from bsempms_new;
    sql>select * from bsempms_old union all select * from
    bsempms_new;

  12. 星星个结实集互减的函数?
    sql>select * from bsempms_old minus select * from bsempms_new;

  13. 怎样布置sequence?
    建sequence seq_custid
    create sequence seq_custid start 1 incrememt by 1;
    建表时:
    create table cust
    { cust_id smallint not null,
    …}
    insert 时:
    insert into table cust
    values( seq_cust.nextval, …)

日子的各有的常用之底写法
119>.取时间点的年的写法:
select to_char(sys2003-10-17,’yyyy’) from dual;

120>.取时间点的月份的写法:
select to_char(sys2003-10-17,’mm’) from dual;

121>.取时间点的日的写法:
select to_char(sys2003-10-17,’dd’) from dual;

122>.取时间点的经常的写法:
select to_char(sys2003-10-17,’hh24′) from dual;

123>.取时间点的剪切的写法:
select to_char(sys2003-10-17,’mi’) from dual;

124>.取时间点的秒的写法:
select to_char(sys2003-10-17,’ss’) from dual;

125>.取时间点的日期的写法:
select trunc(sys2003-10-17) from dual;

126>.取时间点的岁月的写法:
select to_char(sys2003-10-17,’hh24:mi:ss’) from dual;

127>.日期,时间形态变为字符形态
select to_char(sys2003-10-17) from dual;

128>.将字符串转换成日期或时刻形态:
select to_2003-10-17(‘2003/08/01’) from dual;

129>.返回参数的星期几的写法:
select to_char(sys2003-10-17,’d’) from dual;

130>.返回参数一年遭受之第几上之写法:
select to_char(sys2003-10-17,’ddd’) from dual;

http://www.cnblogs.com/mvcboy/p/4077699.html

 

相关文章