常用Oracle数据库命令

本文主要用于记录常用的Oracle基本命令,由于多使用图形工具进行查询,命令使用较少,便于个人在以后使用时参考,其中有不正确的地方请指正。

image002

本文主要用于记录常用的Oracle基本命令,由于多使用图形工具进行查询,命令使用较少,便于个人在以后使用时参考,其中有不正确的地方请指正。

1.查看Oracle版本

select * from product_component_version;

2.表管理命令

创建table:

1
CREATE TABLE AAA(AA VARCHAR (5),BB VARCHAR (10), CC VARCHAR (90));

删除table:

1
DROP TABLE AAA;

增加column:

1
2
3
ALTER TABLE AA ADD FNAME NUMBER NOT NULL;

ALTER TABLE AA ADD FID VARCHAR (100) PRIMARY KEY;

增加value

1
INSERT INTO AA (A, B) VALUES ('12345', '9099889');

更新value

1
UPDATE AA SET A = '000' WHERE AA.B = '9';

删除value

1
DELETE FROM IPOUSER.AA WHERE AA.A = '00000';

3.表查询命令

基础查询:

1
SELECT A.B.FCODINGS AS 代码,A.B.FNAME AS 名称 FROM A.B;

BETWEEN用法:

1
SELECT A.B.C,A.B.D FROM A.B WHERE A.B.C BETWEEN '210882' AND '250883';

AND和OR用法:

1
SELECT * FROM A.B WHERE A.B.FKINDNAME = 'ABC' AND (A.B.FNAME = '威克岛' OR A.B.FNAME = '津巴布韦');

ORDER BY用法:

1
SELECT * FROM A.B ORDER BY A.B.FID ASC;

ROWNUM用法:

1
SELECT * FROM A.B WHERE ROWNUM <= 10;

LIKE用法:

1
2
3
SELECT * FROM A.B WHERE A.B.FNAME LIKE '_南省%';

SELECT * FROM A.B WHERE A.B.FNAME LIKE '_南_郑_市%';

IN用法:

1
2
3
SELECT * FROM A.B WHERE FNAME IN ('河南省郑州市', '河南省洛阳市');

SELECT * FROM TCODEENTRYS WHERE FCODINGS IN (SELECT FCODINGS FROM TCODEENTRYS WHERE FCODINGS > '5000');

4.数据去重

1
SELECT DISTINCT NAME FROM USER.NAME;

5.数据去重并统计数量

1
SELECT COUNT(*) AS NUM FROM (SELECT DISTINCT NAME FROM USER.NAME);

6.用户赋权限

1
GRANT SELECT ON USER.NAME TO ADMIN;

7.多表联合查询

1
SELECT A.FNAME, A.FCODE, B.NAME FROM USERA.NAME A, USERB.NAME B WHERE A.CODE = B.CODE;

8.创建视图

1
SELECT * FROM ( SELECT DBMS_LOB.GETLENGTH(PHOTO) AS FPHOTO FROM USER.NAME )WHERE FPSIZE > 10000 AND FPSIZE IS NOT NULL ;

9. 查询字段长度

1
SELECT * FROM USER.NAME WHERE LENGTH(USER.NAME)>3;

10.创建视图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
CREATE OR REPLACE FORCE VIEW ADMIN."企业和用户"

(

"系统",

"编码",

"名称",

"登录名",

"姓名",

"身份证号",

"手机号码",

"证书数量",

"证书号码"

)

AS

SELECT (CASE A.B.FSYSTEMID

WHEN 1 THEN '01'

WHEN 2 THEN '02'

WHEN 3 THEN '03'

WHEN 4 THEN '04'

ELSE '未知

END)

AS 系统,

A.B.FCODE ,

A.B.FNAME ,

C.D.FLOGINNAME ,

C.D.FNAME ,

C.D.FIDCARD ,

C.D.FMOBILEVERIFYPHONE ,

A.B.FMVNUM ,

A.B.FMVCODE

FROM A.B, C.D

WHERE A.B.FID = C.D.FORGANID

AND C.D.FNAME = '测试'

ORDER BY 系统 ASC;

11. MINUS函数

1
2
3
SELECT T1.* FROM (SELECT * FROM ADMIN.TCELECT MINUS SELECT * FROM ADMIN.TALLHOTELS)T1;

查询当前表中数据是否在领一张表中存在,结果显示不存在的数据

12. INSTR函数

1
2
3
SELECT INSTR ('ABBCC','C',1,1) FROM DUAL;

从源信息中查找目标信息,从'ABBCC'中第一位开始查找第一个'C';

13. REPLACE函数

1
2
3
REPLACE (CONTENT,'aoe','000')

REPLACE (源字段,“源信息“,“新信息“),实例中为将字段CONTENT的内容由'aoe'替换为'000';

14. HAVING函数

1
2
3
4
5
6
7
SELECT CODE, COUNT (*) AS NUM FROM ABCTABLE GROUP BY CODE HAVING COUNT (*) > 1;

WHERE不能在GROUP BY 后面;

HAVING是和GROUP BY 连在一起用的,放在GROUP BY 后面,用相当于WHERE;

WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以;

15.复制数据的三种方法

1
2
3
4
5
6
7
8
9
10
11
12
13
INSERT INTO A.TABLE1 SELECT * FROM A.TABLE2;

SELECT * INTO A.TABLE1 FROM A.TABLE2;

CREATE TABLE A.TABLE1 AS SELECT * FROM A.TABLE2;

**说明:**

INSERT INTO ...SELECT... 要求目标表必须存在;

SELECT INTO ...FROM...不支持Oracle;

CREATE TABLE ...AS SELECT ....不要求目标表须存在,而且支持Oracle数据库;

16. INNER JOIN函数

1
2
3
4
5
SELECT A.FCODE,A.FNAME FROM A INNER JOIN B ON A.FCODE = B.FCODE;

一般用于多表联合查询或更新;

SELECT CODE,NAME FROM A.TABLE1 UNION ALL SELECT CODE,NAME FROM A.TABLE2;

17.UNION ALL函数

1
2
3
SELECT CODE,NAME FROM A.TABLE1 UNION ALL SELECT CODE,NAME FROM A.TABLE2;

用于结构或字段一致的信息联合查询;

18.CONCAT函数

1
2
3
SELECT CONCAT ('abc', 'aoe') AS rzsj FROM A.TABLE1;

CONCAT函数用于连接同类型的信息;

欢迎关注公众号收藏小程序

河洛先生河洛先生