oracle操作

以下是 SQL*Plus 常用的一些命令:

1. CONNECT:连接到 Oracle 数据库,语法为 `CONNECT username/password@database`。

2. EXIT 或 QUIT:退出 SQL*Plus 工具,语法为 `EXIT` 或 `QUIT`。

3. SELECT:执行 SQL 查询,语法为 `SELECT column1, column2 FROM table_name WHERE condition`。

4. DESC[RIBE]:查看表或视图的结构,语法为 `DESC[RIPTION] table_name` 或 `DESC[RIPTION] view_name`。

5. SHOW:显示 SQL*Plus 环境变量和系统状态,语法为 `SHOW variable`。例如,`SHOW ALL` 将显示所有当前设置的环境变量。

6. COLUMN:定义列的格式,包括标题、数据类型、对齐方式等,语法为 `COLUMN column_name FORMAT format`。

7. SET:设置 SQL*Plus 环境变量和系统选项,语法为 `SET option value`。例如,`SET PAGESIZE 20` 将设置每页显示的行数为 20 行。

8. SPOOL:将查询结果输出到文件中,语法为 `SPOOL filename`。例如,`SPOOL output.txt` 将查询结果保存到名为 output.txt 的文件中。

9. START 和 @:执行 SQL 脚本文件,语法为 `START file_path` 或 `@file_path`。例如,`START script.sql` 或 `@script.sql` 将执行名为 script.sql 的 SQL 脚本文件。

10. PROMPT:显示文本消息,在 SQL*Plus 提示符下方显示,语法为 `PROMPT message`。例如,`PROMPT "Hello, SQL*Plus!"` 将在 SQL*Plus 提示符下方显示消息 "Hello, SQL*Plus!"。

以上命令只是 SQL*Plus 工具中一些常用的命令,SQL*Plus 还有很多其他可用的命令和选项。要了解更多信息,请参考 Oracle 官方文档或使用 `HELP` 命令来查找特定命令的帮助信息。
#设置页大小
set pagesize xxx;
#设置行大小
set linesize xxx;

使用sqlplus查询显示结果,显示很乱,下面有种方法可以让她显示的更好看些。
1.设置显示的宽度:
设置前可以先查看当前宽度: 
SQL> show linesize;
linesize 100
SQL> set linesize 1000;
SQL> show linesize;
linesize 1000
2.你还可以设置显示的条数。
SQL> show pagesize;
pagesize 14
SQL> set pagesize 30;
SQL> show pagesize;
pagesize 30
这样就好了。
#Oracle中视图DDL查询

SELECT text FROM ALL_VIEWS WHERE VIEW_NAME = '<view_name>';


#查询学生表中年龄大于10岁的同学,从记录行21开始返回结果,最大返回10条记录。

select * from student where age>10 limit 20,10

#或这样写

select * from student where age>10 limit 10 offset 20

查看表结构
SELECT DBMS_METADATA.GET_DDL('TABLE','T_USER') FROM DUAL;

需要注意的是,这几个都是大写:
DBMS_METADATA.GET_DDL
TABLE
T_USER

查看视图结构
SELECT DBMS_METADATA.GET_DDL('VIEW','T_USER_VIEW') FROM DUAL;
oracle的数据字典一般都有user、all、dba开始的三份,这里就以all开始的举例(注意权限,否则结果会很大)

1、all_tables:查询所有表相关信息

select OWNER,TABLE_NAME from all_tables;
2、all_tab_comments:查询所有表及视图注释

select OWNER,TABLE_NAME,TABLE_TYPE,COMMENTS from all_tab_comments;
 3、all_views:查询所有视图及视图定义语句

select OWNER,VIEW_NAME,TEXT from all_views;
4、all_tab_columns、all_tab_cols:这两个都表示查询所有表及视图结构,区别是后者包含隐藏列

select 
	OWNER "用户名",TABLE_NAME "表名",COLUMN_NAME "字段名",
	case 
		when DATA_PRECISION is null then DATA_TYPE || '(' || DATA_LENGTH || ')'
		else DATA_TYPE || '(' || DATA_PRECISION || ',' || DATA_SCALE || ')'
	end as "字段类型"
from all_tab_columns
--where OWNER='SCOTT'
order by OWNER,TABLE_NAME,COLUMN_ID
5、all_col_comments:查询所有表及视图的字段信息和字段注释

select OWNER,TABLE_NAME,COLUMN_NAME,COMMENTS from all_col_comments;
ORACLE数据库使用ROWNUM来实现LIMIT相同功能:

SELECT * FROM table WHERE ROWNUM<10;

但不要想当然的认为实现OFFSET功能就是简单的ROWNUM>5 and ROWNUM<10。好吧,最初我也是这么认为的,但是ORACLE的ROWNUM实现认为这个条件不成立。常见的写法有下面几种:

//方法1:

SELECT * FROM tablex WHERE rowid NOT IN(SELECT rowid FROM tablex WHERE ROWNUM<=5) and ROWNUM<=10

//方法2:

SELECT * FROM (SELECT A.*, ROWNUM r FROM (SELECT * FROM tablex) A WHERE ROWNUM <= 10) B WHERE r > 5

//方法3:

SELECT * FROM table WHERE ROWNUM<10

MINUS

SELECT * FROM table WHERE ROWNUM<5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值