Oracle培训笔记

preview
需积分: 0 1 下载量 112 浏览量 更新于2012-02-17 1 收藏 134KB PDF 举报
### Oracle培训笔记知识点详解 #### 一、关系数据库理论 关系数据库是基于关系模型构建的数据库,它由一系列的对象组成,这些对象主要包括表、视图等。为了保证数据的完整性和一致性,在插入、更新或删除数据时需要遵循一定的规则。 1. **数据库对象**:数据库由一系列对象组成,如表、视图、索引、存储过程等。 2. **数据操作**:通过SQL(Structured Query Language)等工具来实现对这些对象的操作。 3. **数据完整性**:为了保证数据的完整性,插入到数据库中的数据必须遵循一定的规则(数据约束),如主键约束、唯一性约束、非空约束等。 #### 二、SQL命令 SQL是一种用于管理关系数据库的标准语言,用于查询、更新、管理和控制数据库中的数据。SQL可以分为以下几类: 1. **数据检索语言 (Data Retrieval)**: - `SELECT`:用于从数据库中检索数据。 - 示例:`SELECT id "ID" FROM test;` - 使用双引号指定列别名。 2. **数据操纵语言 (Data Manipulation Language, DML)**: - `INSERT`:向表中插入新行。 - `UPDATE`:更新现有行中的数据。 - `DELETE`:删除行。 - 示例:使用`||`连接字符串。 - `SELECT 'stuId:' || id FROM test;` 3. **数据定义语言 (Data Definition Language, DDL)**: - `CREATE`:创建新的数据库对象。 - `ALTER`:修改现有对象。 - `DROP`:删除对象。 - `RENAME`:重命名对象。 - `TRUNCATE`:清空表中的所有数据。 - 示例:`CREATE TABLE example (id NUMBER);` 4. **事务控制**: - `COMMIT`:提交事务,使更改成为永久性的。 - `ROLLBACK`:撤销事务,放弃所做的更改。 - `SAVEPOINT`:设置事务的保存点,可以回滚到该点。 5. **数据控制**: - `GRANT`:授予用户对数据库对象的权限。 - `REVOKE`:收回用户的权限。 #### 三、SELECT命令 1. **使用双引号定义别名**: - `SELECT id "ID" FROM test;` 2. **字符串连接**: - `SELECT 'stuId:' || id FROM test;` 3. **NVL函数**:用于处理NULL值。 - `SELECT salary * NVL(salary, 0) FROM emp;` - 如果`salary`为空,则将其视为0。 #### 四、Oracle基本数据类型 1. **数字类型**: - `NUMBER(n, m)`:表示一个数值,其中`n`是总的位数,`m`是小数位数。 - `NUMBER`:表示一个非常大的数。 - `NUMBER(3, 2)`:表示总长度为3位,其中包含2位小数。 - 示例:`NUMBER(5, 2)`,输入`2010.3256`将四舍五入为`2010.33`。 2. **字符串类型**: - `CHAR(n)`:固定长度的字符串,默认长度为1个字节。 - `VARCHAR2(n)`:变长字符串,`n`为最大长度。 3. **日期类型**: - `DATE`:用于存储日期时间值,包括世纪、年、月、日、时、分、秒。 #### 五、Oracle客户端软件(SQL\*Plus)命令 1. **文件操作**: - `SAVE 文件名`:保存当前SQL语句到服务器指定的文件。 - `GET 文件名`:从指定文件中读取SQL语句到内存缓冲区。 - `START @文件名`:读取并执行指定文件中的SQL语句。 2. **屏幕输出**: - `SPOOL`:开始记录屏幕输出。 - `SPOOL OFF`:结束记录屏幕输出。 3. **其他命令**: - `APPEND`:向缓冲区追加内容。 - `CHANGE`:修改缓冲区中的某行内容。 - `CLEAR BUFFER`:清除缓冲区内容。 - `DEL N`:删除缓冲区中的第N行。 - `INPUT 内容`:在缓冲区的最后一行后面追加内容。 - `LIST N`:查看缓冲区中的内容(N为行号)。 - `/`:执行缓冲区中的命令。 #### 六、ORDER BY `ORDER BY`用于对查询结果进行排序。 1. **排序类型**: - 列名 - 列号 - 别名 - 表达式 2. **多列排序**: - 当有多列排序时,先按照第一列排序,若第一列相同,则按第二列排序。 - 示例:`SELECT * FROM t_salary ORDER BY salary, name;` - 首先根据`salary`排序,如果`salary`相同,则按照`name`排序。 #### 七、WHERE子句 `WHERE`子句用于过滤查询结果。 1. **比较操作符**: - `IN`:匹配列表中的值。 - `BETWEEN...AND...`:匹配某个范围内的值。 - `LIKE`:模糊匹配。 - `%`:表示任意多个字符。 - `_`:表示单个字符。 通过以上内容的学习,您可以掌握Oracle数据库的基础知识和常用的SQL命令,这对于日常的数据库管理和开发工作都是非常有用的。