51个Oracle实用语句,助你高效工作,快来收藏吧!

文章导读
1. 查看当前数据库版本:SELECT * FROM v$version;(来源:Oracle官方文档)
📋 目录
  1. 常见查询与数据操作
  2. 实用查询技巧与连接
  3. 系统管理与性能
A A

常见查询与数据操作

1. 查看当前数据库版本:SELECT * FROM v$version;(来源:Oracle官方文档)

2. 查看当前用户:SELECT USER FROM DUAL;

3. 查看所有表名:SELECT TABLE_NAME FROM USER_TABLES;

4. 查看表结构:DESC 表名; 或 SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '表名';

5. 简单查询所有数据:SELECT * FROM 表名;

6. 查询前N条记录:SELECT * FROM 表名 WHERE ROWNUM <= N;

7. 插入数据:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);

8. 更新数据:UPDATE 表名 SET 列名 = 新值 WHERE 条件;

9. 删除数据:DELETE FROM 表名 WHERE 条件;

10. 清空表:TRUNCATE TABLE 表名;

11. 创建表:CREATE TABLE 表名 (列1 数据类型, 列2 数据类型);

12. 删除表:DROP TABLE 表名;

13. 添加列:ALTER TABLE 表名 ADD (新列名 数据类型);

14. 修改列类型:ALTER TABLE 表名 MODIFY (列名 新数据类型);

15. 删除列:ALTER TABLE 表名 DROP COLUMN 列名;

16. 重命名表:RENAME 旧表名 TO 新表名;

17. 创建索引:CREATE INDEX 索引名 ON 表名 (列名);

18. 删除索引:DROP INDEX 索引名;

19. 查询所有索引:SELECT INDEX_NAME, TABLE_NAME FROM USER_INDEXES;

20. 统计表行数:SELECT COUNT(*) FROM 表名;

实用查询技巧与连接

21. 去重查询:SELECT DISTINCT 列名 FROM 表名;

22. 排序:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;

23. 条件查询:SELECT * FROM 表名 WHERE 条件;

24. 模糊查询:SELECT * FROM 表名 WHERE 列名 LIKE '%关键词%';

25. 范围查询:SELECT * FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;

26. 列表查询:SELECT * FROM 表名 WHERE 列名 IN (值1, 值2);

27. 分组统计:SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;

28. 分组后过滤:SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING COUNT(*) > 1;

29. 内连接:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.关联列 = 表2.关联列;

30. 左连接:SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.关联列 = 表2.关联列;

31. 右连接:SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.关联列 = 表2.关联列;

32. 全外连接:SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.关联列 = 表2.关联列;

33. 子查询:SELECT * FROM 表1 WHERE 列名 IN (SELECT 列名 FROM 表2 WHERE 条件);

34. 合并查询结果:SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2;

35. 合并所有结果(包括重复):SELECT 列名 FROM 表1 UNION ALL SELECT 列名 FROM 表2;

系统管理与性能

36. 查看所有用户:SELECT USERNAME FROM ALL_USERS;

37. 查看用户权限:SELECT * FROM USER_SYS_PRIVS;

38. 查看用户角色:SELECT * FROM USER_ROLE_PRIVS;

39. 查看表空间:SELECT TABLESPACE_NAME FROM USER_TABLESPACES;

40. 查看数据文件:SELECT FILE_NAME, TABLESPACE_NAME FROM DBA_DATA_FILES;(来源:Oracle官方文档)

41. 查看会话信息:SELECT SID, SERIAL#, USERNAME FROM V$SESSION;

42. 结束会话:ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

43. 查看锁信息:SELECT * FROM V$LOCKED_OBJECT;

44. 查看正在执行的SQL:SELECT SQL_TEXT FROM V$SQL WHERE EXECUTIONS > 0;

45. 查看对象大小:SELECT SEGMENT_NAME, BYTES FROM USER_SEGMENTS WHERE SEGMENT_TYPE = 'TABLE';

46. 分析表统计信息:EXEC DBMS_STATS.GATHER_TABLE_STATS('用户名', '表名');(来源:Oracle官方文档)

47. 创建用户:CREATE USER 用户名 IDENTIFIED BY 密码;

48. 授予权限:GRANT 权限 TO 用户名;

49. 撤销权限:REVOKE 权限 FROM 用户名;

50. 修改密码:ALTER USER 用户名 IDENTIFIED BY 新密码;

51. 备份表:CREATE TABLE 备份表名 AS SELECT * FROM 原表名;