### Oracle笔记大全知识点详解
#### 一、Oracle SQL 基础
- **SQL (Structured Query Language)**: 结构化查询语言,用于操作关系型数据库中的数据和对象。
- **DDL (Data Definition Language)**: 数据定义语言,主要用于创建、删除数据库对象如表、视图等。例如:
- `CREATE TABLE`:创建表。
- `DROP TABLE`:删除表。
- `ALTER TABLE`:修改表结构。
- **DML (Data Manipulation Language)**: 数据操作语言,用于插入、更新、删除表中的数据。例如:
- `INSERT INTO`:向表中插入数据。
- `UPDATE`:更新表中的数据。
- `DELETE FROM`:从表中删除数据。
- **事务控制语句**:
- `COMMIT;`: 提交事务,使所有更改永久保存到数据库。
- `ROLLBACK;`: 回滚事务,撤销对数据库所做的更改。
- **授权语句**: 控制用户对数据库对象的访问权限。
#### 二、SQL 查询语句
- **SELECT 语句**:
- 投影操作:仅选择特定列的数据。
- 过滤操作(选择操作):基于条件筛选记录。
- 表连接(关联查询):从多个表中检索数据。
- **SQL*Plus**:
- 登录数据库:`sqlplus 用户名/密码@服务名`。
- 查看当前用户:`SHOW USER`。
- 查看表结构:`DESC 表名`。
- 在 SQL*Plus 中执行 Shell 命令:`!shell命令`。
- **查询示例**:
- 查询表的所有字段:`SELECT * FROM 表名;`
- 查询特定字段:`SELECT 字段名1, 字段名2 FROM 表名;`
- 使用别名:`SELECT 字段名 AS 别名 FROM 表名;`
#### 三、Oracle 数据库连接与管理
- **本地访问/远程访问**: 可以通过 SQL*Plus 或其他工具连接到本地或远程数据库。
- **系统表**:
- 用户表:用户使用的表。
- 系统表:数据库系统维护的表,例如数据字典。
- 查询当前用户下的所有表:`SELECT TABLE_NAME FROM USER_TABLES;`
#### 四、Oracle SQL 语法与功能
- **表达式**:
- 支持基本数学运算:加、减、乘、除。
- 运算符优先级:先乘除后加减。
- 使用括号改变运算顺序。
- **字符串操作**:
- 字符串拼接:使用 `||` 符号。
- 示例:`SELECT 字段名1 || ' ' || 字段名2 FROM 表名;`
- **空值处理**:
- Oracle 将空值视为无穷大。
- 控制处理函数 `NVL()` 用于将空值替换为指定值。
- 示例:`SELECT NVL(字段名, 替换值) FROM 表名;`
- **去重操作**:
- `DISTINCT` 关键词用于去除查询结果中的重复行。
- 示例:`SELECT DISTINCT 字段名 FROM 表名;`
#### 五、SQL 脚本与 SQL*Plus 命令
- **SQL 脚本**:
- SQL 脚本是包含一个或多个 SQL 语句的文本文件。
- 在 SQL*Plus 中运行 SQL 脚本:`sqlplus 用户名/密码@脚本文件名.sql`
- **SQL*Plus 命令**:
- 缓存与执行:使用 `/` 执行最近一次的 SQL 语句,使用 `EDIT` 或 `ED` 编辑。
- 清屏命令:`!clear` 或 `CLEAR SCREEN`。
- 设置显示选项:`SET PAUSE ON/OFF`, `SET HEAD OFF`, `SET FEED OFF`, `SET ECHO OFF`。
- 写入文件:`SPOOL 文件名.sql`,关闭写入:`SPOOL OFF`。
- 列格式定义:`COLUMN 目标列名 FORMAT a..`,设置列标题:`COLUMN 目标列名 HEADING '标题'`。
#### 六、高级查询技巧
- **多表查询**:
- 内连接:`INNER JOIN`。
- 外连接:`LEFT JOIN`, `RIGHT JOIN`, `FULL JOIN`。
- 自连接:同一表的不同实例之间的连接。
- **子查询**:
- 单行子查询:结果只能有一行一列。
- 多行子查询:结果可以有多行多列。
- 子查询可以在 `WHERE` 子句中使用。
- **分组与聚合函数**:
- 分组:`GROUP BY`。
- 聚合函数:`COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`。
- 与 `HAVING` 子句结合使用,过滤分组后的结果。
以上知识点涵盖了 Oracle 数据库的基本操作与管理,对于学习和掌握 Oracle 数据库技术具有重要意义。通过这些知识点的学习,可以更好地理解和应用 Oracle 数据库中的各种功能和技术,提高工作效率和解决问题的能力。