Oracle数据库讲义
### Oracle数据库基础知识精讲 #### 一、Oracle数据库概述 Oracle数据库是一款由Oracle公司开发的关系型数据库管理系统(RDBMS),被广泛应用于企业级应用环境中。Oracle数据库以其强大的功能、高度的安全性和可靠性著称,是业界领先的数据库解决方案之一。本文档主要针对Oracle 10g版本,适合初学者作为入门教材。 #### 二、SQL基础 **1. 基本查询语句** - **实验1:** 编写一个简单的SQL语句来查询表中的所有行和所有列。例如,如果表名为`employees`,则查询语句为`SELECT * FROM employees;`。 - **实验2:** 查询表中的所有行,但按特定顺序显示列。例如,`SELECT last_name, first_name, salary FROM employees;`。 - **实验3:** 查询表中的某些列,并在这些列上执行计算或函数操作。例如,`SELECT employee_id, salary * 12 AS annual_salary FROM employees;`。 - **实验4:** 使用SQL*Plus工具执行上述查询。首先打开SQL*Plus,然后输入查询语句执行。 **2. SQL*Plus操作** - **实验5:** 在SQL*Plus中查看当前用户所有的表和视图。可以使用`SHOW USER;`命令查看当前登录用户,再使用`SELECT * FROM all_tables WHERE owner = UPPER(USER);`来获取该用户下的所有表。 **3. 处理NULL值** - **实验6:** 学习如何处理NULL值。例如,使用`NVL`函数将NULL值替换为其他值:`SELECT NVL(commission_pct, 0) FROM employees;`。 **4. 列别名** - **实验7:** 给查询结果中的列指定别名。例如,`SELECT last_name "Employee Name", salary FROM employees;`。 **5. 去重查询** - **实验8:** 使用`DISTINCT`关键字去除查询结果中的重复行。例如,`SELECT DISTINCT department_id FROM employees;`。 **6. 条件筛选** - **实验9:** 使用`WHERE`子句来筛选符合条件的记录。例如,`SELECT * FROM employees WHERE salary > 10000;`。 - **实验10:** 使用`LIKE`关键字查询模糊匹配的值。例如,`SELECT * FROM employees WHERE last_name LIKE 'S%';`。 **7. 排序** - **实验11:** 使用`ORDER BY`子句来对查询结果进行排序。例如,`SELECT * FROM employees ORDER BY salary DESC;`。 **8. 字符串函数** - **实验12:** 学习使用字符串函数如`UPPER`, `LOWER`, `CONCAT`等。例如,`SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;`。 **9. 数字函数** - **实验13:** 学习使用数字函数如`ROUND`, `TRUNC`等。例如,`SELECT ROUND(salary, -1) AS rounded_salary FROM employees;`。 **10. 日期函数** - **实验14:** 学习使用日期函数如`SYSDATE`, `ADD_MONTHS`等。例如,`SELECT ADD_MONTHS(hire_date, 12) AS one_year_later FROM employees;`。 **11. NULL值处理函数** - **实验15:** 学习使用`NULLIF`函数来比较两个可能为NULL的值。例如,`SELECT NULLIF(salary, commission_pct) FROM employees;`。 **12. 分支函数** - **实验16:** 学习使用`CASE`语句来创建条件逻辑。例如,`SELECT CASE WHEN salary > 10000 THEN 'High Salary' ELSE 'Low Salary' END AS salary_status FROM employees;`。 **13. 分组统计函数** - **实验17:** 学习使用聚合函数如`COUNT`, `SUM`, `AVG`等进行分组统计。例如,`SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id;`。 **14. 表连接** - **实验18:** 学习使用`INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN`等进行表连接。例如,`SELECT e.first_name, d.department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id;`。 **15. SQL99连接语法** - **实验19:** 学习使用SQL99标准中的连接语法。例如,`SELECT e.first_name, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id;`。 **16. 子查询** - **实验20:** 学习如何使用子查询来嵌套查询语句。例如,`SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`。 #### 三、DDL与DML操作 **1. DDL操作** - **实验21:** 创建表、添加/删除列、更改表结构等。例如,`CREATE TABLE new_employees (employee_id NUMBER PRIMARY KEY, first_name VARCHAR2(20));`。 **2. DML操作** - **实验22:** 插入、删除和更新表中的数据。例如,`INSERT INTO new_employees (employee_id, first_name) VALUES (101, 'John');`。 **3. 事务控制** - **实验23:** 学习如何开始事务、提交事务和回滚事务。例如,`BEGIN TRANSACTION; INSERT INTO new_employees ... COMMIT;`。 **4. 视图操作** - **实验24:** 创建视图、查询视图、更新视图等。例如,`CREATE VIEW emp_view AS SELECT * FROM employees;`。 通过以上实验的学习,初学者可以逐步掌握Oracle数据库的基础知识,并能够进行简单的数据查询和管理。接下来的部分将继续介绍更高级的主题,包括数据库的体系结构、网络配置、备份与恢复以及性能优化等方面的知识点。
剩余63页未读,继续阅读
- niumengmeng2012-05-01东西简单 适合入门
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助