1、Oracle数据库基本操作
A.创建表空间和用户
以下数据库基本操作未使用创建的表空间关联的用户进行conn连接,系列操作皆在sys系统用户数据库执行(系统用户数据库表多,内容庞大,容易乱,不建议这样做,最好参见前一篇文章创建个人的表用户空间和用户进行下面的系列操作)
1.Oracle创建数据库(数据库表空间)、表和用户
B.创建数据库
create database databasename;
C.删除数据库
drop database dbname;
D.备份数据库
1.完全备份
exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=y;
demo:用户名、密码
buffer: 缓存大小
file: 具体的备份文件地址
full: 是否导出全部文件
ignore: 忽略错误,如果表已经存在,则也是覆盖
2.按用户导出
exp demo/demo@orcl file=d:\backup\1.dmp owner=(system,sys);
owner:指定要导出的用户表
3.导出指定的表
exp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students);
tables:导出的表名
4.按过滤条件导出
exp demo/demo@orcl file=d:\back.dmp tables=(table1) query=" where filed1 like 'fg%'";
5.导出时压缩/日志
compress=y
log=d:\log.txt
6.备份远程服务器的数据库
exp 用户名/密码@远程的IP:端口/实例 file=存放的位置:\文件名称.dmp full=y;
E.导入数据库
1.完整导入
imp demo/demo@orcl file=d:\back.dmp full=y ignore=y log=D:\implog.txt;
2.导入指定表
imp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students);
3.导入至远程服务器Oracle数据库
imp 用户名/密码@远程的IP:端口/实例 file=存放的位置:\文件名称.dmp full=y;
2、Oracle表操作
A.创建表
1.创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],…);
2.根据已有表创建新表
# 使用旧表创建新表
select * into table_new from table_old;
# 仅适用于Oracle
create table tab_new as select col1,col2… from tab_old definition only;
B.删除表
drop table tabname;
C.重命名表
alter table 表名 rename to 新表名;
alter table tablename rename to newtablename;
D.增加字段
alter table 表名 add (字段名 字段类型 默认值 是否为空);
alter table tablename add (ID int);
alter table tablename add (ID varchar2(30) default ‘空’ not null);
E.修改字段
alter table 表名 modify (字段名 字段类型 默认值 是否为空);
alter table tablename modify (ID number(4));
F.重命名字段
# column是关键字
alter table 表名 rename column 列名 to 新列名;
alter table tablename rename column ID to newID;
G.删除字段
alter table 表名 drop column 字段名;
alter table tablename drop column ID;
H.添加主键
alter table tabname add primary key(col);
I.删除主键
alter table tabname drop primary key(col);
J.创建索引
create [unique] index idxname on tabname(col….);
K.删除索引
索引是不可更改的,想更改必须删除重新建
drop index idxname;
L.创建视图
create view viewname as select statement;
M.删除视图
drop view viewname;
3、Oracle操作数据
A.查询-SELECT
select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]
B.插入-INSERT
insert into 表名 values(所有列的值);
insert into test values(1,'zhangsan',20);
insert into 表名(列) values(对应的值);
insert into test(id,name) values(2,'lisi');
C.更新-UPDATE
update 表 set 列=新的值 [where 条件] -->更新满足条件的记录
update test set name='zhangsan1' where name='zhangsan'
update 表 set 列=新的值 -->更新所有的数据
update test set age =20;
D.删除-DELETE
delete from 表名 where 条件; -->删除满足条件的记录
delete from test where id = 1;
delete from test; -->删除所有
commit; -->提交数据
rollback; -->回滚数据
delete方式可以恢复删除的数据,但是提交了,就没办法了 delete删除的时候,会记录日志 -->删除会很慢
truncate table 表名;
删除所有数据,不会影响表结构,不会记录日志,数据不能恢复 -->删除很快
drop table 表名;
删除所有数据,包括表结构一并删除,不会记录日志,数据不能恢复–>删除很快
E.数据复制
1.表数据复制
insert into table1 (select * from table2);
2.复制表结构
create table table1 select * from table2 where 1>1;
3.复制表结构和数据
create table table1 select * from table2;
4.复制指定字段
create table table1 as select id, name from table2 where 1>1;