Oracle SQL Fundamentals Part 1是Oracle官方培训教材中的入门教程,主要讲解了SQL的基础概念和常用功能。本部分的内容涵盖了以下几个关键知识点:
1. DISTINCT:在SQL查询中,`DISTINCT`关键字用于返回唯一的行,忽略重复的值。例如,`SELECT DISTINCT department_id FROM employees`会去除结果集中部门ID的重复项,只显示每个部门ID的不同实例。
2. Concatenate Operator (||):Oracle SQL中的`||`操作符用于连接字符串,如`SELECT last_name || job_id AS employees FROM employees`,这将员工的姓氏和职位号组合成一个新的字段。
3. Character Functions:
- `LOWER()`:将字符串转换为小写,如`INITCAP('oracleSERVER')`会将'oracleSERVER'转换为'OracleServer'。
- `UPPER()`:将字符串转换为大写。
- `SUBSTR()`: 提取子串,如`SUBSTR('HelloWorld', 1, 5)`返回'Hello'。
- `LENGTH()`: 计算字符串长度。
- `INSTR()`: 查找子串在字符串中的位置。
- `LPAD()`: 在字符串左边填充字符,如`LPAD('2400', 10, '*')`变成'2400'。
- `RPAD()`: 在字符串右边填充字符,如`RPAD('24000', 9, '*')`变成'24000'。
- `REPLACE()`: 替换子串,如`REPLACE('jackandjue', 'j', 'bl')`替换为'blackandblue'。
- `TRIM()`: 去除字符串两端的指定字符,如`TRIM('H' FROM 'HelloWorld')`得到'elloWorld'。
4. Numeric Functions:
- `ROUND()`: 四舍五入到指定的小数位,如`ROUND(45.556, 2)`得到`45.56`。
- `TRUNC()`: 截断数字到指定的小数位,如`TRUNC(45.556, 2)`得到`45.55`。
- `MOD()`: 取余数,如`MOD(16, 3)`得到`1`。
5. Conditional Expressions:
- `CASE`语句:用于根据条件执行不同的表达式,例如:
```
CASE expr
WHEN expr1 THEN expr_returned
WHEN expr2 THEN expr_returned2
...
ELSE expr_else
END
```
这在处理复杂条件和返回不同值时非常有用。
6. Table Joins:
- Self-join: 在同一张表上进行连接,如查询员工及其经理的姓名:
```
SELECT e.last_name, m.last_name
FROM employees e
JOIN employees m
ON (e.manager_id = m.employee_id)
```
- Cross Join (Cartesian Join):返回两个表的所有可能组合,如查询员工与部门的名称组合:
```
SELECT last_name, department_name
FROM employees
CROSS JOIN departments
```
这部分内容提供了基础的SQL查询语法、数据操作以及简单联接,对于初学者理解和掌握Oracle SQL语言至关重要。通过学习这些基础知识,可以更好地构建复杂的查询并管理数据库中的数据。