Oracle 数据库常用操作语句大全

Oracle 数据库常用操作语句大全

一. Oracle数据库操作

1.创建数据库

create database data databasename

2.删除数据库

drop database dbname

3.备份数据库

完全备份
exp demo/demo@orcl buffer=1024 file =d: \back.dmp full=y
demo: 用户名
buffer:缓存大小
file:具体的备份文件地址
full:是否到处全部文件
ignore:忽略错误,如果表已存在,则也是覆盖

  • 将数据库中system用户与sys用户的表导出
    exp demo/demo@orcl file=d:\backup\1.dmp owner=(system,sys)

  • 导出指定的表
    exp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)

  • 按过滤条件,导出
    exp demo/demo@orcl file=d:\backup2.dmp tables=(table1) query=“where filed1 like ‘fg%’”
    导出时可以进行压缩;命令后面加上compress=y; 如果需要日志,后面: log=d:\log.txt

  • 备份远程服务服务器的数据库
    exp 用户名/密码@远程的IP:端口/实例 file-存放的位置:\文件名称.dmp full=y

4.数据库还原

打开cmd直接执行如下命令,不用再登录sqlplus.

  • 完整还原’’
    imp demo/demo@orcl file=d:\back.dmp full=y ignore=y log=d:implog.txt
    指定log很重要,便于分析错误进行扑救

  • 导入指定表
    imp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)

  • 还原到远程服务器
    imp 用户名/密码@远程的IP:端口/实例 file=存放的位置:\文件名称.dmp full=y

二.Oracle表操作

1.创建表

create table tabname(col1 type1 [not null] [primary key],col2 type2[not null],…)
根据已有的表创建表:
A:select * into table_new from table_old(使用旧表创建新表)
B:create table tab_new as select col1,col2…from tab_old definition only<仅适用于Oracle>

2.删除表

drop table tabname

3.重命名表

说明:alter table 表名 rename to 新表名
eg:alter table tablename rename to new table name

4.增加字段

说明:alter table 表名 add(字段名 字段类型 默认值 是否为空);
eg:alter table tablename add(ID int);
alter table tablename add(ID varchar2(30) default ‘空’ not null);

5.修改字段

说明:alert table 表名 modify(字段名 字段类型 默认值 是否为空);
eg:alter table tablename modify(ID number(4));

6.重名字段

说明:alter table 表名 rename column 列名 to 新列名 (其中:column是关键字)
eg:alter table tablename rname column Id to newId;

7.删除字段

说明:alter table 表名 drop column 字段名;
eg:alter table tablename drop column ID;

8.添加主键

alter table tabname add primary key(col)

9.删除主键

alter table tablename drop primary key(col)

10.创建索引

create [unique] index idxname on tabname(col…)

11.删除索引

drop index idxname
注:索引是不可更改的,想要改必须删除重新建.

12.创建视图

create view viewname as select statement

13.删除视图

drop view viewname

三.Oracle操作数据

1.数据查询

select <列名>from<表名>[where<查询条件表达式>][order by<排序的列名>[asc或desc]]

2.插入数据

insert into 表名 values(所有列的值);
insert into test values(1,‘zhangsan’,20);
insert into 表名(列) values(对应的值);
insert into test(id,name) values(2,‘lisi’);

3.更新数据

update 表 set 列=新的值[where条件]
update test set name=‘zhangsan2’ where name=‘zhangsan’
update 表 set 列=新的值—>更新所有的数据
update test set age=20;

4.删除数据
  • delete from 表名 where 条件 -->删除满足条件的记录
    delete from test where id = 1;
    delete from test -->删除所有
    commit:–提交数据
    rollback;–>回滚数据
    delete方式可以恢复删除的数据,但是提交了,就没有办法了delete删除的时候,会记录日志 -->删除会很慢很慢

  • truncate table 表名
    删除所有数据,不会影响表结构,不会记录日志,数据不能恢复 -->删除很快

  • drop table 表名
    删除所有数据,包括表结构一并删除,不会记录日志,数据不能恢复 --删除很快

5.数据复制
  • 表数据复制
    -insert into table1 (select * from table2)

  • create table table1 select * from table2 where 1>1;

  • 复制表结构和数据
    create table table1 select * from table2;

  • 复制指定字段
    create table table1 as select id,name from table2 where 1>1;

四.数据库复制命令

1.不同的数据库语法不同(SQL Server和Oracle为例),标并且复制包括目标表已存在和目标表不存在的情况,分别回答:
1.SQL Server中,如果目标表存在:

insert into 目标表 select * from 原表;

2.SQL Server中,如果目标表不存在;

select * into 目标表 from 原表;(复制结构和数据)
select * from 目标表 from 原来 where 1=0(只复制表结构)

3.Oracle,如果目标表存在;

insert into 目标表 select * from 原表;
commit;

4.Oracle中,如果目标表不存在;

create table 目标表 as select * from 原表 where 1=0(只复制表结构)
create table 目标表 as select * from 原表;复制表结构和数据

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值