Oracle SQL查询详解:从DML到SELECT

需积分: 50 55 下载量 10 浏览量 更新于2024-08-15 收藏 3.47MB PPT 举报
"Oracle SQL DML命令详解及SELECT查询实例" 在Oracle数据库中,DML(Data Manipulation Language)命令用于管理和操作数据。主要包括以下几种命令: 1. **INSERT**:用于向表中添加新的行。例如,如果你想插入一个新的员工记录,你可以编写如下SQL语句: ```sql INSERT INTO s_emp (last_name, first_name, hire_date, salary, dept_id) VALUES ('Doe', 'John', '2022-01-01', 5000, 10); ``` 2. **UPDATE**:用于修改表中已存在的行。例如,如果你想更新某个员工的工资,你可以这样做: ```sql UPDATE s_emp SET salary = 6000 WHERE last_name = 'Doe' AND first_name = 'John'; ``` 3. **DELETE**:用于从表中删除现有行。例如,如果你想删除某个员工的记录: ```sql DELETE FROM s_emp WHERE last_name = 'Doe' AND first_name = 'John'; ``` 4. **COMMIT**:使所有待处理的更改永久化。在事务处理中,当你完成一系列操作并希望保存这些变化时,需要使用COMMIT。 5. **SAVEPOINT**:设置一个保存点,允许你回滚到该标记点。这对于部分回滚事务非常有用。 6. **ROLLBACK**:撤销自上一次提交以来的所有更改,或回滚到指定的保存点。 **SELECT**查询是DML中用于检索数据的核心命令,它的基本语法是: ```sql SELECT <列名> FROM <表名>; ``` 例如,要从`s_emp`表中获取所有员工的信息,你可以使用: ```sql SELECT * FROM s_emp; ``` 而如果只对特定列感兴趣,如部门ID和工资,可以这样写: ```sql SELECT dept_id, salary FROM s_emp; ``` 在SELECT查询中,你可以使用算术表达式,如乘法、加法等,来计算字段的值。例如,计算员工的年薪: ```sql SELECT salary * 12 AS annual_salary FROM s_emp; ``` 注意,运算符的优先级可以通过括号来调整,比如: ```sql SELECT last_name, salary, (12 * salary) + 100 AS bonus FROM s_emp; ``` 这将先计算乘法,然后是加法。 在处理查询时,你还可以进行以下操作: - 使用**表达式**和**运算符**进行复杂的条件筛选。 - 使用**NULL**处理空值,如`IS NULL`或`IS NOT NULL`。 - 给查询字段起**别名**,如`AS`关键字后的名称。 - 进行**字段连接**,如`CONCAT()`函数或直接用逗号分隔字段。 - 结合**WHERE**子句过滤结果。 - 使用**GROUP BY**和**HAVING**进行数据分组和聚合操作。 - 使用**ORDER BY**对结果进行排序。 - 使用**JOIN**操作连接多个表的数据。 在学习和使用Oracle SQL时,掌握这些基本概念和操作至关重要,它们构成了数据查询和管理的基础。通过不断实践和探索,你可以构建出更复杂、更高效的查询来满足不同的业务需求。