Oracle 常用Sql语句

查询表的数据条数

select num_rows from user_tables 

查询所有表名

select table_name from user_tables where table_name = UPPER('table_name');

查询所有字段名

select column_name from user_col_comments;

查询指定表的所有字段名

select column_name from user_col_comments  where table_name = UPPER('table_name');

查询指定表的所有字段名和字段说明

select column_name, comments from user_col_comments  where table_name = UPPER('table_name');

查询所有表的表名和表说明

select t.table_name, c.comments from user_tables t inner join user_tab_comments c on t.table_name = c.table_name;

查询模糊表名的表名和表说明

select table_name from user_tables where table_name like UPPER('table_name');

select t.table_name, c.comments from user_tables t inner join user_tab_comments c on t.table_name = c.table_name where t.table_name like UPPER('table_name');

并集

把多个查询的结果合并起来,列数要相同,对应列的数据类型要相容:
去重

select fields from table_name
union
select fields from table_name;

不去重

select field from table_name
union all
select field from table_name;

交集

多个查询结果的共同部分

select field from table_name
intersect
select field from table_name;

补集

有顺序,将a结果中,和b结果重合的部分去掉,剩下的部分

select field from table_name
minus
select field from table_name;

分页

select * from (select * from table_name where rownum <= max) where rownum >= min;

select * from (select a.*, rownum rn from table_name where rownum <= max) where rn >= min

查看序列

查看当前用户所有序列

select * from user_sequences;

查看指定用户所有序列

-- 必须以管理员身份登录
select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where sequence_owner='userName';

导出

表方式导出

exp 用户名/密码@IP地址/实例名 file='文件存放路径.dmp' log='本次导出.log,日志存放路径' tables=(表1,表2,表n,)

exp TMESH/TMesh729@127.0.0.1/orcl file='D:\back\2020-testback.dmp' log='D:\back\2020-testback.log' tables=(user,test)

用户方式导出

exp 用户名/密码@IP地址/实例名 file='文件存放路径.dmp' log='本次导出,日志存放路径.log'

exp TMESH/TMesh729@127.0.0.1/orcl file='D:\back\2020-testback2.dmp' log='D:\back\2020-testback2.log'

全库方式导出(使用dba用户,sys、system)

exp DBA用户/密码@IP地址/实例名 file='文件存放路径.dmp 'log='本次导出,日志存放路径.log' full=y

exp system/TMsh729@127.0.0.1/orcl file='D:\back\2020-testback3.dmp 'log='D:\back\2020-testback3.log' full=y

导入

表方式导入

给用户hr导入两张scott用户的emp、dept表,导入后提交,出现问题忽略

imp 用户名/密码@IP地址/实例名 file='dmp文件存放路径.dmp' log='导入记录日志存放路径.log' tables=(表1,表2,表n) fromuser=来自哪个用户的用户名  touser=导入到哪个用户的用户名  commit=y ignore=y

imp TMESH/TMesh729@127.0.0.1/orcl file='D:\back\2020-testback.dmp' log='D:\back\2020-testback.log' tables=(emp,dept) fromuser=scott  touser=hr  commit=y ignore=y

用户方式导入(dba用户)

imp DBA用户/密码@IP地址/实例名 file='dmp文件存放路径.dmp' log='导入记录日志存放路径.log'  fromuser=来自哪个用户的用户名  touser=导入到哪个用户的用户名  commit=y ignore=y

imp system/TMsh729@127.0.0.1/orcl file='D:\back\2020-testback2.dmp' log='D:\back\2020-testback2.log'  fromuser=scott  touser=hr  commit=y ignore=y

全库方式导入(使用dba用户,sys、system)

imp system/TMsh729@127.0.0.1/orcl file='D:\back\2020-testback3.dmp' log='D:\back\2020-testback3.log' full=y commit=y ignore=y destroy=y

导入时会出现部分报错,但数据会被导入

复制表

复制表结构及其数据:

create table table_name_new as select * from table_name_old

只复制表结构:

create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old

只复制表数据:

如果两个表结构一样:

insert into table_name_new select * from table_name_old

如果两个表结构不一样:

insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
posted @   Thousand_Mesh  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示