Oracle常用命令

本文介绍SQLPlus的基本命令,包括执行操作系统命令、退出、帮助、清屏、显示当前用户、设定行宽和每页行数等。还详细讲解了视图的概念、创建、使用及删除方法,并提供示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.列出当前用户的全部表:

select * from tab;

 

2.sqlplus还可以执行操作系统本身的命令。命令格式为:HOST 操作系统命令

例如打开windows注册表,使用:host regedit;打开词本程序使用:host notepad

 

3.退出sqlplus

exit或quit

 

4.help命令

格式为:help 命令名称

如:help desc

 

5.清屏命令

clear screen或clear src

在sqlplus中也可以使用host cls;来清屏

 

6.显示当前用户

show user

 

7.set linesize 设定行宽

 

8.set pagesize 设定每页的行数

 

9.distinct关键字用来消除重复

 

10.in和not in

 

11.and,or,not,between...and,order by,like

 

12.SQL(structured query language)结构查询语言

DML(Data Manipulation Language)数据操作语言---用于检索或者修改数据

DDL(Data Definition Language)数据定义语言---用于定义数据的结构,如创建、修改或者删除数据库对象

DCL(Data Control Language)数据控制语言---用于定义数据库用户的权限

 

13.数据库系统中,各个数据库之间的最大区别就在于函数的支持上,使用函数可以完成一系列的操作功能。

 

14.使用ed buf.sql(文件名随便取),会新建一个buf.sql文本文件,我们的sql脚本可以写在buf.sql上。保存,然后运行@buf.sql(对于*.sql形式的文本,直接运行@buf.sql也可以)。

就可以执行刚才在buf.sql上保存的sql脚本。

 

15.针对14,使用start 文件名也可以的。例如,start buf.sql

 

16.视图是一种特殊的表,是建立在基表上的虚表。它可以由一个基表中选择的某些行和列组成,也可以由几个表中满足一定条件的数据行组成。视图反映了一个或多个基表的局部

数据,但它本身并不存放数据,其数据仍然存储在基表中。因此,视图是基表的一个数据窗口,但通过视图可对表中数据操作。视图是实现对数据的保密及数据安全性的一种手段,

同时也简化了对数据库的存取操作。要引用视图必须先创建视图,视图创建后,可以通过视图对数据库表中的数据进行查询、增加、删除等操作。对已创建的视图,如果不再使用

也可以将其删除。

●创建视图的一般格式为:

create view 视图名(视图列表名)

as [select语句]

例如:创建一个视图,使它包含10号部门职员的职工名、工程、月工资及全年的工资总额的信息。可输入如下命令:

create index emp10_view(person,title,salary,annual_sal)

as 

select ename,job,sal,sal*12 from emp where deptno = 10;

 

●视图的使用

视图是基表的数据窗口,通过视图可对基表中数据进行查询、增加、删除及修改数据等操作,这对用户来讲,对视图可如同对表一样进行操作。

要求通过视图emp10_view查询10号部门中工资低于5000元的职工的有关信息。并按工资由高到低顺序显示。

select * from emp10_view where salary<5000 order by salary desc;

对基表emp查询查询10号部门中工资低于5000元的职工的有关信息。并按工资由高到低顺序显示。

select * from emp where sal<5000 and deptno=10 order by sal desc;

通过视图执行查询与通过对应的基表执行查询,其结果相同。

对视图进行查询,实际是用户通过视图对数据库基表中的数据进行查询。但使用视图简化了用户查询命令,因为视图定义的子查询中,可带有一定的条件,这样对表进行

复杂查询的部分条件可放在视图定义中,所以用户不需要复杂的条件就能通过视图获得相同的信息。

视图查询所用条件"salary<5000"等价于基表所用的查询条件"deptno=10 and sal<5000"的部分。

通过视图对表中对表中的数据做增,删,改等更新操作,如同对基表操作一样,但需要注意以下几点:

●删除操作(delete)

①仅能对意表创建的视图进行操作

②定义视图的子查询中,不含有group by子句,distinct子句及各分组函数等项。

●更新操作(update)

①仅能对意表创建的视图进行操作

②定义视图的子查询中,不含有group by子句,distinct子句及各分组函数等项。

③子查询中没有定义任何带有表达式的更新列

●插入操作(insert)

①仅能对意表创建的视图进行操作

②定义视图的子查询中,不含有group by子句,distinct子句及各分组函数等项。

③子查询中没有定义任何带有表达式的更新列

④定义视图的基表中所有"not null"列,都要在该视图中出现。

 

●删除视图

drop view 视图名

 

17.子查询中不能含有"order by"子句,因为子查询的结果不显示,只作主查询的条件。

 

18.in 和not in表示是否包含,是否在;any表示的语义是"至少比..."。all表示的主义是"比所有的都"。

 

19.索引(index)

①建立索引

create [unique] index 索引名 on 表名(字段...)

如:为emp表建立以empno为索引列的惟一性索引

create unique index index_no on emp(empno);

②删除索引

drop index 索引名称

 

20.oracle时间函数

①当前日期

select sysdate from dual; 或者 select current_date from dual;

②to_char函数

●取得时间的年月日

select hiredate,to_char(hiredate,'YYYY') year,to_char(hiredate,'MM') month,to_char(hiredate,'dd') day from emp;

 

 

21.常用聚焦函数

●count():求出全部的记录籽

●max():求出一组中的最大值

●min():求出一组中的最小值

●avg():求出平均值

●sum():求和

 

22.分组统计

范例:求出每个部门的员工数量

select deptno,count(empno) from emp group by deptno;

如下sql脚本是错误的:select deptno,max(sal) from emp;会提示:不是单组分组函数。需要遵循的如下:

①如果程序中使用了分组函数,则有两种可以使用的情况。

●程序中存在了group by,并指定了分组条件,这样可以将分组条件一起查询出来。

●如果不使用分组的话,则只能单独使用分组函数

②在使用分组函数时,不能出现分组函数和分组条件之外的字段

select deptno,empno,count(empno) from emp group by deptno;

这里会报错,提示empno不是group by 表达式。这里违反了②。

③分组函数只能在分组中使用,不允许在where子句中出现。而只能通过having子句。

④全部分组函数都忽略空值(null),只有count(*)除外(注意只有是*的时候不忽略)。

 

23.union运算符

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。(需要记住它去掉了重复行)当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 使用union必须要保证两个中间结果具有相同的列数,且对应列数的数据类型要一致。

 

 

24.表复制

create talbe 表名 as select * from talbe_name

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值