常见查询与数据操作
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 原表名;