`
修__
  • 浏览: 15524 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle常用命令积累

阅读更多
一、创建
1、创建表
create table new_protectiontcm(
<列名> <类型> NOT NULL,
<列名> <类型> NOT NULL,
constraint pk_名称 primary key(<列名>)
)
2、创建外键
alter table <要创建外键的表名>
add constraint fk_名称  foreign key(要创建外键的表的字段) references  <要关联的表名> (要关联的表名的字段) on delete cascade;
on delete cascade:当被参照的数据被删除是,参照该数据的那些数据的对应值将会删掉
on delete set null:当被参照的数据被删除是,参照该数据的那些数据的对应值将会变为空值,不能有not null约束,否则将会发生:ORA-01407: 无法更新

3、创建表空间
create tablespace 表空间名称 datafile '/ora/oracle/app/oracle/oradata/orcl/dev01.dbf' size 10240M;

create tablespace 表空间名称 datafile '/ora/oracle/oradata/orcl/dw01.dbf' size 3072M;--增加表空间 
4、创建用户
create user dw identified by dw2013_ora106 default tablespace dw;
grant resource,connect,dba,EXECUTE ANY PROCEDURE,sysdba to dw;--赋予权限
alter user dev identified by devPassword;--修改用户密码


二、修改(增删改)
1、修改表名
alter table <表名1> rename to <表名2>;--修改表名;
2、修改表字段
alter table <表名> rename colum <old列名> to <new列名>;--修改表中列名
alter table <表名> modify <列名> <类型>;--修改字段类型
alter table <表名> add <列名> <类型>;--增加字段
alter table <表名> drop COLUMN <列名>;--删除字段
ALTER TABLE OLD_TABLE_NAMERENAME TO NEW_TABLE_NAME;(大写为系统命令)
alter table cmh_brands move tablespace SINOHEALTH_DATA; --修改表空间
alter index PK_II_ID rebuild tablespace SINOHEALTH_DATA; --修改对应的索引

alter table user__ modify join_meeting_flag default 0; --修改默认值
3、修改数据
update area set areaid = 48 where areaid = 49

4、删除表
DROP TABLE  <表名>;
drop table  <表名> cascade constraints;--当表中有关联外键,删掉表也不会影响关联表的数据

oracle删除用户  最快的办法是:
conn /as sysdba
delete from user$ where name='dzysc';
commit;
alter system flush shared_pool;

oracle 没有方法批量删除表
select 'drop table '||tname|| ';' from tab
where lower(tname) like 'mdm%' --查询以MDM开头的表
select 'drop table '||table_name|| ';' from user_tables; -- 当前用户下面全部表

三、插入

update <表名> set <列名> = <值/字符>;--把字段的所有记录都改为同一个值或者字符
INSERT INTO BOOK(bookid,name,price)   VALUES('100123','oracle sql',54.70);
INSERT INTO BOOK                         VALUES('100123','oracle sql',54.70);
INSERT INTO BOOK(bookid)           VALUES('100123');

update 表名 set 列名=replace(列名 , '?' ,'')把问号替换成空就可以了

四、查询
select sid,serial#,username,program,machine,status,logon_time from
v$session
where username = 'DW'--产科当前用户被锁事件

select spid, osuser, s.program,s.sql_address,q.sql_text
from v$process p, v$session s ,v$sql q
where p.addr=s.paddr
and s.sql_address=q.address
and s.sid=&SID

alter system kill session 'sid,serial#';

dbms_output.put_line () 相当于 java 的System.out.println()

select table_name from user_tables;--查看当前用户所有表

select * from dba_role_privs where granted_role='DBA'--查看dba角色的权限

--当用户被锁
alter user dev account unlock;
用system用户进去或者sqlplus "/as sysdba"进去也行


五、序列
select preproject_seq.next.nextval from dual;--当前表最后一个序列号

DROP SEQUENCE "PREPROJECT_SEQ";

CREATE SEQUENCE "PREPROJECT_SEQ"
INCREMENT BY 1 --递增为1
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1593 --从第几个开始
CACHE 10;

建立数据表

create table Test_Increase(
           userid number(10) primary key,  /*主键*/
           username varchar2(20)
           );

2创建自动增长序列
CREATE SEQUENCE TestIncrease_Sequence
INCREMENT BY 1   -- 每次加几个 
     START WITH 1     -- 从1开始计数 
     NOMAXVALUE       -- 不设置最大值 
     NOCYCLE          -- 一直累加,不循环 
     CACHE 10;

3创建触发器
CREATE TRIGGER Test_Increase BEFORE
insert ON  Test_Increase FOR EACH ROW
begin
select TestIncrease_Sequence.nextval into:New.userid from dual;

end;

六、常用函数
substr( string, start_position, [ length ] )
       substr('This is a test', 6, 2)     would return 'is'
     substr('This is a test', 6)     would return 'is a test'
     substr('TechOnTheNet', -3, 3)     would return 'Net'
     substr('TechOnTheNet', -6, 3)     would return 'The'

length(字段名) 统计字符长度
lengthb(字段名)    求得是字节长度

replace 字符串级别的代替
replace(字段名,原来内容,替换内容)
replace(cm.medical_name,'(溶媒结晶)','')

translate 字符级别的代替
select TRANSLATE('kkaxksx', 'kx', '12') from dual
结果:11a21s2


instr(字段名,含有内容)<或>或= 长度
instr(字段名,字段名)
case when 条件 then 结果1 else 结果2 end
to_char(对象,格式) 例如 to_char(riqi,'yyyy-MM-dd')
regexp_substr(字段名,匹配正则)
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

nvl(字段名,0) 如果字段名为null返回0
nvl2(字段名,'a','b')
如果第一个参数为null,则返回第三个参数
如果第一个参数为非null,则返回第二个参数

sign(number) 函数返回一个数字的正负标志
If number < 0, then sign returns -1.
If number = 0, then sign returns 0.
If number > 0, then sign returns 1.

sign(-23) would return -1
sign(0) would return 0
sign(0.001) would return 1

trunc( number, [ decimal_places ] )
trunc function returns a number truncated to a certain number of decimal places.
number 要截取的数字.
decimal_places 要保留的小数位. 这个参数必须是个整数. 如果此参数缺省,默认保留0位小数
trunc(-125.815, 2) would return -125.81
trunc(125.815) would return 125
trunc(125.815, 0) would return 125

abs(number) 返回数值的绝对值 如abs(-5) 返回 5

ceil(number)   即   ceil(数值)
根据输入值返回一个数值,输入参数可以是非整数,但返回结果则是大于等于输入参数的最小整数。
例:   ceil(5.1)   返回  6
       abs(-5.2)   返回  -5

row_number() over(order by a.register_time asc)
排序

日期格式 用 to_date()
to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss')

floor() 去整数非四舍五入
round(字段, 小数位) 保留小数
dbms_random.value(30,50)取得随机数



七、注意
Oracle中like查询下划线等特殊字符的处理
ESCAPE Clause Example

You can include the actual characters "%" or "_" in the pattern by using the ESCAPE clause, which identifies the escape character. If the escape character appears in the pattern before the character "%" or "_" then Oracle interprets this character literally in the pattern, rather than as a special pattern matching character.

To search for employees with the pattern 'A_B' in their name:

SELECT last_name
    FROM employees
    WHERE last_name LIKE '%A\_B%' ESCAPE '\';

The ESCAPE clause identifies the backslash (\) as the escape character. In the pattern, the escape character precedes the underscore (_). This causes Oracle to interpret the underscore literally, rather than as a special pattern matching character.

制表符 chr(9)
换行符 chr(10)
回车符 chr(13)

在Oracle中特殊字符是可以通过转义实现的,在Oracle10g中可以这样
实现,
比较好用的方法是用这样的一个方法:q'{}'.比如:
select q'[@#%&&&]' from dual;
得到的结果就是中括号中的内容,原样输出,里面什么字符都可以包括
。我这里强调的是q'{}'也是可以的。意思是说这个两个单引号中的的符
号是很灵活的,只要成对就行,常用的是{}或者是[],他们中间的内容回
原样输出,感兴趣的同志可以试试!
select q'[!@#$%^&*()]' from dual;
得到的结果就是:
  !@#$%^&*()
分享到:
评论

相关推荐

    oracle常用命令大全

    以下是一些Oracle常用命令的详解: 1. **SQL*Plus**:Oracle的标准命令行接口,用于执行SQL语句和PL/SQL块。 - `CONNECT`:连接到数据库,格式为`CONNECT username/password@database`。 - `SPOOL`:将SQL*Plus...

    Oracle DBA常用的UNIX命令

    Oracle DBA在日常工作中经常会与UNIX/Linux操作系统打交道,掌握一些常用的UNIX命令对于高效管理Oracle数据库至关重要。以下是一些Oracle DBA在UNIX环境下常用的命令及其详细解释: 1. **删除Oracle进程**: - `ps...

    oracle常用函数和常见错误积累

    本文将围绕“Oracle常用函数和常见错误积累”这一主题,深入探讨Oracle数据库的一些关键知识点。 首先,Oracle函数是数据库操作中不可或缺的部分,它们用于处理数据、进行计算、提取特定信息等。例如: 1. **TO_...

    精通oracle 10g系统管理常用命令

    以上只是Oracle 10g系统管理常用命令的一部分,实际操作中还需要结合具体业务场景灵活运用,并不断学习和积累经验。在实践中,熟练掌握这些命令能帮助数据库管理员更有效地管理和维护数据库系统。

    Oracle常用操作(项目中积累的经验)

    Oracle数据库在IT行业中被广泛应用,尤其在大型...以上就是Oracle在实际项目中的一些常用但易错的操作经验,希望对你的工作有所帮助。在实践中不断积累,理解并熟练运用这些技巧,可以提升你的Oracle数据库管理技能。

    linux下oracle命令重复使用+硬盘安装linux所需文件

    为了高效管理和维护Oracle数据库,熟悉一些常用的Linux命令至关重要。"linux下oracle命令重复使用"这一主题表明我们将探讨那些经常在Oracle数据库管理中需要用到的Linux命令,以及如何在安装Linux系统时利用硬盘进行...

    整理汇总Oracle常用命令 方便你我他

    ### Oracle常用命令详解 #### 创建用户 - **命令格式**: ```sql CREATE USER 用户名 IDENTIFIED BY 密码; ``` - **注意事项**: - 用户名与密码建议采用英文字符,以避免不必要的编码问题。 - 示例: ```sql...

    Oracle常用傻瓜问题1000问

    以上只是《Oracle常用傻瓜问题1000问》中的一部分内容,学习Oracle需要不断地实践和积累经验。在日常操作中遇到问题时,查阅相关文档、社区问答以及官方资料都是解决问题的有效途径。希望这些解答能为初学者提供一些...

    常用Dos命令和Oracle数据库tnsnames.ora配置

    以下是一些常用的DOS命令: 1. **dir/p**: 列出目录中的文件和子目录,并分页显示。 2. **cd/**: 改变当前工作目录,cd .. 返回上一级目录,cd \ 返回根目录。 3. **md**: 创建目录,例如 `md 新目录名`。 4. **rd/...

    oracle常识-常用的知识

    Oracle是世界上最广泛使用的数据库管理系统之一,它在企业级数据存储、管理和处理方面有着深厚的技术积累。这篇“Oracle常识-常用的知识”将带你深入了解Oracle的基本概念、功能和常见操作。 1. Oracle数据库概述:...

    ORACLE常用傻瓜問題1000問

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它提供了高效的数据存储、管理及查询功能。以下是一些关于Oracle的常见问题和知识点...随着经验的积累,可以逐步探索更高级的主题,以提升自己的技能水平。

    最好最全的Oracle 数据库教程(内含命令使用实例)

    首先,"Oracle常用傻瓜问题1000问.txt"很可能是包含常见问题与解答的文档,涵盖了从安装配置到日常管理的各种场景。通过这份文档,你可以快速解决在学习和使用过程中遇到的问题,比如如何创建数据库、怎样进行用户...

    linux命令速查 oracle

    这篇文档集合了Linux命令和Oracle相关的操作指令,对于日常管理和维护工作具有很高的实用价值。 1. **Linux命令**: - **ls**:列出目录内容,常用选项有 `-l`(详细信息),`-a`(显示隐藏文件)。 - **cd**:...

    ORACLE 常用数据库

    Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级...对于初学者来说,理解这些基本操作是学习Oracle数据库的基础,随着经验的积累,可以深入学习更高级的特性,以满足更复杂的数据管理需求。

    Linux-Unix常用命令速查手册.doc

    Linux和Unix系统中,命令行是操作系统的灵魂,掌握常用命令是提高工作效率的关键。下面将详细介绍几个基础且常用的命令。 1. **更改档案拥有者** - `chown`: `chown`命令用于更改文件或目录的所有者(user)和组...

    oracle数据库开发的一些经验积累

    ### Oracle数据库开发的经验积累 #### 不安装Oracle客户端连接Oracle 8的方法 对于那些希望避免完整安装Oracle客户端但仍需连接Oracle 8数据库的情况,可以通过以下步骤实现: 1. **ODBC 动态库**:需要将特定的...

    orcle常用命令

    Oracle是世界上最广泛使用的数据库管理系统之一,对于初学者和专业DBA来说,掌握Oracle的常用命令是必不可少的。本文将深入探讨Oracle的启动和关闭过程,以及如何有效地利用数据字典。 首先,Oracle数据库的启动和...

    Oracle的一些小经验

    在日常使用Oracle数据库的过程中,我们往往会积累一些实用的小技巧或经验,这些经验能够帮助我们在处理各种问题时更加高效、便捷。本文将根据提供的标题、描述及部分内容,详细介绍几个与Oracle数据库相关的实用知识...

    Oracle参考手册---经典版

    10. **Oracle常用指令**:手册可能会列出一些常用的数据库管理命令,如SQL*Plus命令、数据泵操作等,方便快速查找和执行。 由于文件列表中只有一个“新建文件夹”,没有具体的文件名,无法进一步细化知识点。但根据...

    oracle日积月累

    常用命令有:`CONNECT`连接数据库,`DESCRIBE`查看表结构,`SPOOL`用于将输出保存到文件,`QUIT`退出会话。 4. **CMD Oracle命令**: 在命令行环境中,你可以使用如`sqlplus username/password@database`来连接...

Global site tag (gtag.js) - Google Analytics