Oracle数据库命令集
1、sqlplus启动方式:
Dos下运行sqlplus 用户名/密码 as sysdba
例如:c:>sqlplus sys/password AS sydba(系统帐户)
或者:c:>sqlplus scott/password
2、用户连接(切换)操作:
sql>conn Scott/password(默认为tiger)
注:conn与connect使用方法一样
3、手动解锁:
sql>ALTER USER scott Account Unlock;(将scott帐户解锁)
4、查看用户(两种方式):
sql>select user form dual;
sql>show user;
5、sql帮助:
sql>help index;
6、数据库卸载和加载
sql>shutdown [NORMAL][IMMEDLATE][ABORT][TRANSACTIONAL];
sql>startup;
7、查询select操作:
sql>select *from dept;
sql>select dname,loc from dept;
sql>select *from emp where deptno=20;
注:在sql中,字符串使用单引号。
8、字段别名的定义:
sql>select hiredate AS 雇用日期 from emp
AS可以省略,但是推荐使用。
9、字符串连接
sql>selcet dname||loc from dept;
10、提取表中的前N个记录:
sql>select *from emp where rownum<=N;
11、null的使用:
sql>select ename,job from emp where comm is[not] null;
注:null参与数学表达式计算时,结果一定为null。
12、like关键字(字符串匹配):
sql>select dname from dept where dname like '_S%';
注:_代表单个字符,%代表多个字符。
13、in关键字:
sql>select dname,dpart,log from dept where deptno in(10,20);
注:只选择输出deptno值为10或20的记录。
类似于:where deptno=10 or deptno=20;
14、between and关键字:
sql>select * from dept where deptno between 10 and 30;
包括10和30.
15、set关键字:
sql>set pagesize 10;
sql>set linesize 100;
16、连接查询:
求解sal大于平均值的记录
sql>select * from emp
where sal>(select avg(sal) from emp);
17、联合查询:
字段个数和类型必须保持一致,合并为一个查询结果。
sql>select empno,ename from emp
union[ALL]
select deptno,dname from dept;
ALL:代表可以有重复记录。
18、内连接查询:
内连接查询分为2中:一是在form后直接加表名,中间用逗号分隔。
sql>select * from emp e,dept d (e d为表的别名)
where e.deptno=d.deptno;
二是使用join关键字,条件使用ON
sql>select * from emp join dept
ON emp.deptno=dept.deptno;
19、自连接查询:将一个表起不同的别名,使其在逻辑上成为两张表。
sql>select * from emp a,emp b
where a.mgr=b.empno;
20、外连接查询:
左外连接查询:left join 左表全部显示
右外连接查询:right join右表全部显示
全外连接查询:full join 左右表均全部显示
以左外连接为例:
sql>select * from dept
left join emp
on dept.deptno=emp.deptno;
左表(dept)信息全部显示,右表(emp)中不符合条件的记录为null。
21、集合函数(数学表达式):
sql>select AVG(sal) from emp;
sql>select Count([distinct]sal) from emp;
distinct表示不计算重复数据。
22、插入记录:
sql>Insert Into tablename (字段列表) values(属性类表);
sql>Insert Into emp(eno,ename,dept) values(1,'java',20);
23、修改(更新)记录:
sql>UpDate emp set deptno=80
where deptno=81;
24、删除记录:
sql>Delete from tablename where 条件
sql>Delete from emp where deptno=80;
25、创建视图:注意权限,本操作是在sys帐户下进行的。
sql>create view view_name(ename,dname)
AS
select emp.ename,dept.dname
from scott.emp,scott.dept
with read only;
sql>select * from view_name;
26、同义词
create synonym 同义词名称 for 原对象
sql>create synonym empbak for scott.emp;
sql>select * from empbak;
27、修改对象(表、视图等)结构ALTER:
sql>alter table 表名 add("book_id"VARCHAR2(10));//添加字段,注意双引号
sql>alter table 表名 modify("book_id",not null);
28、修改表的操作
sql>rename 原表名 to 新表名//修改表名
sql>select * from tab;//查找当前用户表信息
sql>desc 表名//查看表结构
sql>drop table 表名//删除表
sql>truncate table 表名//删除表中数据,保留表结构
29、事务处理
sql>commit 成功提交事务
sql>rollback 返回到事务未开始的状态
sql>savepoint A 创建事务的保存点
sql>rollback to [savepoint] A 返回保存点
30、EXISTS关键字
sql>select * from dept where EXISTS (select deptno from emp);
31、从另外一个表中拷贝记录
sql>Insert Into emp(empno,job)
select dname from dept where deptno=50;
sql>insert into (select deptno,dname from dept)
values (50,'Java');
32、更新(2个表操作)表记录:
sql>update emp set ename=(select dname from dept where deptno=50 ),
job=(select loc from dept where deptno=50 )
where ename like 'S%'
33、删除(2个表操作)操作:
sql>delete from emp where empno=
(select deptno from dept where deptno=50)
34、合并操作MERGE INTO:
sql>MERGE INTO 表名
Using 表名
ON(条件)
when Matched then (匹配)
update set ....
when not Matched then
insert into....
34、any/some操作,代表满足any后面的任何一个条件即可:
sql>select * from emp
where sal<=any(2500,6000,10000);
35、all操作,代表满足all后面的所有条件:
sql>select * from emp
where sal<=all(2500,6000,10000);
37、list操作:列出缓冲区的内容,可简写l,后接整型数字或为空
sql>list(n)
38、/操作:执行缓冲区sql命令或PL/SQL块
39、change操作:修改缓冲区里的信息,可简写c
sql>c/fron/from
将fron改写为from
40、del操作:删除指定行缓冲区命令
sql>del 2 3 删除第2行、第3行的信息。
41、在缓冲区中追加信息(追加到末尾)
sql>append where select;
42、save命令,保存缓冲区内容到指定的文件中:
sql>save c:\select.sql;
43、get命名(与save对应)
sql>get c:\select.sql;
44、@命令(与get相似,get是加载语句,然后执行,而@是加载和执行同时进行)
sql>@ c:\select.sql;
45、edit命令,载入windows操作系统的可编辑窗口,简写ed:
sql>edit
1、sqlplus启动方式:
Dos下运行sqlplus 用户名/密码 as sysdba
例如:c:>sqlplus sys/password AS sydba(系统帐户)
或者:c:>sqlplus scott/password
2、用户连接(切换)操作:
sql>conn Scott/password(默认为tiger)
注:conn与connect使用方法一样
3、手动解锁:
sql>ALTER USER scott Account Unlock;(将scott帐户解锁)
4、查看用户(两种方式):
sql>select user form dual;
sql>show user;
5、sql帮助:
sql>help index;
6、数据库卸载和加载
sql>shutdown [NORMAL][IMMEDLATE][ABORT][TRANSACTIONAL];
sql>startup;
7、查询select操作:
sql>select *from dept;
sql>select dname,loc from dept;
sql>select *from emp where deptno=20;
注:在sql中,字符串使用单引号。
8、字段别名的定义:
sql>select hiredate AS 雇用日期 from emp
AS可以省略,但是推荐使用。
9、字符串连接
sql>selcet dname||loc from dept;
10、提取表中的前N个记录:
sql>select *from emp where rownum<=N;
11、null的使用:
sql>select ename,job from emp where comm is[not] null;
注:null参与数学表达式计算时,结果一定为null。
12、like关键字(字符串匹配):
sql>select dname from dept where dname like '_S%';
注:_代表单个字符,%代表多个字符。
13、in关键字:
sql>select dname,dpart,log from dept where deptno in(10,20);
注:只选择输出deptno值为10或20的记录。
类似于:where deptno=10 or deptno=20;
14、between and关键字:
sql>select * from dept where deptno between 10 and 30;
包括10和30.
15、set关键字:
sql>set pagesize 10;
sql>set linesize 100;
16、连接查询:
求解sal大于平均值的记录
sql>select * from emp
where sal>(select avg(sal) from emp);
17、联合查询:
字段个数和类型必须保持一致,合并为一个查询结果。
sql>select empno,ename from emp
union[ALL]
select deptno,dname from dept;
ALL:代表可以有重复记录。
18、内连接查询:
内连接查询分为2中:一是在form后直接加表名,中间用逗号分隔。
sql>select * from emp e,dept d (e d为表的别名)
where e.deptno=d.deptno;
二是使用join关键字,条件使用ON
sql>select * from emp join dept
ON emp.deptno=dept.deptno;
19、自连接查询:将一个表起不同的别名,使其在逻辑上成为两张表。
sql>select * from emp a,emp b
where a.mgr=b.empno;
20、外连接查询:
左外连接查询:left join 左表全部显示
右外连接查询:right join右表全部显示
全外连接查询:full join 左右表均全部显示
以左外连接为例:
sql>select * from dept
left join emp
on dept.deptno=emp.deptno;
左表(dept)信息全部显示,右表(emp)中不符合条件的记录为null。
21、集合函数(数学表达式):
sql>select AVG(sal) from emp;
sql>select Count([distinct]sal) from emp;
distinct表示不计算重复数据。
22、插入记录:
sql>Insert Into tablename (字段列表) values(属性类表);
sql>Insert Into emp(eno,ename,dept) values(1,'java',20);
23、修改(更新)记录:
sql>UpDate emp set deptno=80
where deptno=81;
24、删除记录:
sql>Delete from tablename where 条件
sql>Delete from emp where deptno=80;
25、创建视图:注意权限,本操作是在sys帐户下进行的。
sql>create view view_name(ename,dname)
AS
select emp.ename,dept.dname
from scott.emp,scott.dept
with read only;
sql>select * from view_name;
26、同义词
create synonym 同义词名称 for 原对象
sql>create synonym empbak for scott.emp;
sql>select * from empbak;
27、修改对象(表、视图等)结构ALTER:
sql>alter table 表名 add("book_id"VARCHAR2(10));//添加字段,注意双引号
sql>alter table 表名 modify("book_id",not null);
28、修改表的操作
sql>rename 原表名 to 新表名//修改表名
sql>select * from tab;//查找当前用户表信息
sql>desc 表名//查看表结构
sql>drop table 表名//删除表
sql>truncate table 表名//删除表中数据,保留表结构
29、事务处理
sql>commit 成功提交事务
sql>rollback 返回到事务未开始的状态
sql>savepoint A 创建事务的保存点
sql>rollback to [savepoint] A 返回保存点
30、EXISTS关键字
sql>select * from dept where EXISTS (select deptno from emp);
31、从另外一个表中拷贝记录
sql>Insert Into emp(empno,job)
select dname from dept where deptno=50;
sql>insert into (select deptno,dname from dept)
values (50,'Java');
32、更新(2个表操作)表记录:
sql>update emp set ename=(select dname from dept where deptno=50 ),
job=(select loc from dept where deptno=50 )
where ename like 'S%'
33、删除(2个表操作)操作:
sql>delete from emp where empno=
(select deptno from dept where deptno=50)
34、合并操作MERGE INTO:
sql>MERGE INTO 表名
Using 表名
ON(条件)
when Matched then (匹配)
update set ....
when not Matched then
insert into....
34、any/some操作,代表满足any后面的任何一个条件即可:
sql>select * from emp
where sal<=any(2500,6000,10000);
35、all操作,代表满足all后面的所有条件:
sql>select * from emp
where sal<=all(2500,6000,10000);
37、list操作:列出缓冲区的内容,可简写l,后接整型数字或为空
sql>list(n)
38、/操作:执行缓冲区sql命令或PL/SQL块
39、change操作:修改缓冲区里的信息,可简写c
sql>c/fron/from
将fron改写为from
40、del操作:删除指定行缓冲区命令
sql>del 2 3 删除第2行、第3行的信息。
41、在缓冲区中追加信息(追加到末尾)
sql>append where select;
42、save命令,保存缓冲区内容到指定的文件中:
sql>save c:\select.sql;
43、get命名(与save对应)
sql>get c:\select.sql;
44、@命令(与get相似,get是加载语句,然后执行,而@是加载和执行同时进行)
sql>@ c:\select.sql;
45、edit命令,载入windows操作系统的可编辑窗口,简写ed:
sql>edit