"这是一份关于Oracle数据库管理的笔记,主要涵盖了基础的SQL命令,包括对数据的增、删、改、查操作,以及表的连接等关键知识点。"
Oracle数据库是世界上最流行的数据库管理系统之一,尤其在企业级应用中广泛使用。这份笔记详细列举了一些在Oracle环境中常用的SQL命令:
1. 用户管理:例如,使用`ALTER USER scott ACCOUNT UNLOCK;`命令可以解锁名为`scott`的用户账户,以便用户能够正常登录。
2. 数据查询:基本的查询语句如`SELECT ename, sal*12 FROM emp;`可以用于获取员工姓名(ename)及其年薪(年薪等于月工资乘以12)。
3. 数学运算:`SELECT 2*3 FROM dual;`在Oracle中,`dual`是一个特殊的表,用于执行不涉及实际表的简单计算。
4. 字段重命名:`SELECT ename, sal*12 AS annual_sal FROM emp;`使用`AS`关键字可以给查询结果的列指定别名,此处的`annual_sal`表示年度薪资。
5. 字符串操作:`SELECT ename || sal FROM emp;`通过`||`操作符可以将两个字段拼接起来,此处将姓名与薪水合并成一个新的字符串。
6. 字符串格式化:`SELECT ename || 'afasjkj' FROM emp;`这种情况下,`afasjkj`是一个固定字符串,可以用于添加额外的信息。
7. 去重查询:`SELECT DISTINCT deptno FROM emp;`用于获取员工表中部门编号(deptno)的所有不同值。
8. 多字段去重:`SELECT DISTINCT deptno, job FROM emp;`可以同时去除部门编号和职位(job)的组合重复。
9. 条件查询:例如,`SELECT * FROM emp WHERE deptno = 10;`用于筛选部门编号为10的员工记录。
10. 不等于条件:`SELECT * FROM emp WHERE empno > 10;`用于查找员工编号大于10的记录。
11. 模糊查询:`SELECT * FROM emp WHERE ename > 'cba';`在Oracle中,字符比较是基于ASCII码的,所以`>`符号在这里表示按字母顺序查找名字在`cba`之后的员工。
12. 区间查询:`SELECT ename, sal FROM emp WHERE sal BETWEEN 800 AND 1500;`可以找出薪水在800到1500之间的员工。
13. 空值处理:`SELECT ename, sal, comm FROM emp WHERE comm IS NULL;`用来查找佣金(comm)为空的员工记录。
14. 非空值处理:`SELECT ename, sal, comm FROM emp WHERE comm IS NOT NULL;`则相反,找出佣金不为空的员工记录。
15. in操作符:`SELECT ename, sal FROM emp WHERE sal IN (800, 1500, 2000);`用于筛选薪水在给定列表中的员工。
16. 日期比较:`SELECT ename, sal, hiredate FROM emp WHERE hiredate > '02-2-1981';`可以找出入职日期晚于1981年2月2日的员工。
17. 或逻辑:`SELECT ename, sal FROM emp WHERE deptno = 10 OR sal > 1000;`会返回部门编号为10或薪水大于1000的员工记录。
以上只是笔记的部分内容,实际Oracle SQL还包括更复杂的联接操作(JOINs)、子查询、聚合函数(如COUNT, SUM, AVG, MAX, MIN)等高级功能。对于数据库管理员和开发人员来说,熟练掌握这些基础操作是至关重要的。