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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!