Oracle学习笔记:基础查询与MySQL对比

需积分: 1 0 下载量 5 浏览量 更新于2024-07-19 收藏 636KB DOCX 举报
"Oracle学习笔记,涉及基本操作、查询语法、SQL优化原则以及处理NULL的方法。" 在Oracle数据库的学习过程中,第一天通常会涵盖基础的操作和查询语法。首先,我们需要确保已经安装了Oracle数据库,并且能够通过管理员权限的CMD窗口连接到数据库,如在本例中,数据库名为orcl,其默认监听端口是1521,这与MySQL的默认端口3306不同。 在Oracle中,我们可以执行一些基本查询来了解当前环境。例如,查询当前用户、查看数据库中的表、清屏(在Windows中使用`host cls`或在Linux中使用`host clear`)。要查看表结构,可以使用`desc 表名`命令,如`desc emp`来获取EMP表的列信息。基本的查询包括选择所有列(`SELECT * FROM emp`)、选择特定列(`SELECT ename FROM emp`)以及给列取别名,例如`SELECT ename AS "姓名", sal AS "工资" FROM emp`。这里要注意,Oracle中别名使用双引号,而单引号用于字符和日期。 在查询中处理重复数据时,可以使用`DISTINCT`关键字,如`SELECT DISTINCT deptno FROM emp`。对于NULL值,Oracle提供了`NVL()`函数,将NULL转换为指定值,如`NVL(comm, 0)`。此外,字符串连接在Oracle中通过`||`操作符完成,不同于MySQL中的`CONCAT()`函数。例如,`SELECT ename || '的薪水是' || sal AS 信息 FROM emp`会显示员工姓名和薪水的组合信息。 对于SQL的优化,建议遵循一些基本原则,如尽量使用列名而非*进行查询,遵循WHERE子句的解析顺序,优先考虑多表查询而非子查询,并避免不必要的集合运算。处理NULL问题时,需要注意NULL的特殊性,如`NULL != NULL`且不能直接用`IN()`或`NOT IN()`与NULL比较,此时应使用`IS NULL`或`IS NOT NULL`。在分组函数中,NULL会被自动忽略,可以使用`NVL()`结合分组函数处理这种情况,如`SELECT AVG(NVL(comm, 0)) FROM emp`。 Oracle学习的第一天主要涵盖了数据库连接、基本查询语法、NULL处理和SQL优化的一些基本概念,为后续深入学习打下基础。
2024-11-29 上传