"Oracle数据库管理知识笔记"
Oracle是一款由Oracle公司开发的高性能、高可靠性的关系型数据库软件,广泛应用于企业级数据存储和管理。以下是对笔记中提到的一些关键知识点的详细解释:
1. 账户锁定与解锁:
- 如果一个账户尝试登录失败超过3次,可以使用`ALTER USER`语句配合`PROFILE`来锁定账户,例如:`ALTER USER aa PROFILE lock_account;`
- 解锁账户则使用`ALTER USER`命令的`ACCOUNT UNLOCK`选项,如:`ALTER USER aaa ACCOUNT UNLOCK;`
2. 创建和修改用户配置文件(PROFILE):
- 创建名为`myprofile`的配置文件,限制密码生命周期为10天,宽限期为2天:`CREATE PROFILE myprofile LIMIT password_life_time 10 password_grace_time 2;`
- 若要修改配置文件,使用`ALTER PROFILE`,例如增加重试次数限制:`ALTER PROFILE myprofile LIMIT failed_login_attempts 3;`
3. 密码策略:
- 可以通过配置文件设置密码历史,防止用户重复使用最近10个密码:`CREATE PROFILE password_history LIMIT password_reuse_time 10;`
- 删除配置文件使用`DROP PROFILE`,加上`CASCADE`选项会删除依赖此配置文件的用户:`DROP PROFILE lock_account CASCADE;`
4. 数据类型:
- `CHAR`类型是固定长度的字符串,不足部分用空格填充,而`VARCHAR2`(通常简写为`VARCHAR`)是可变长度的,更节省空间。
- `NUMBER`类型可以表示整数和浮点数,`NUMBER(x,y)`中`x`是总位数,`y`是小数位数。
5. 表的操作:
- 添加列:`ALTER TABLE ADD (column_name datatype);`
- 修改列:`ALTER TABLE MODIFY (column_name new_datatype);`
- 删除列:`ALTER TABLE DROP COLUMN column_name;`
- 重命名列:`ALTER TABLE RENAME COLUMN old_name TO new_name;`
6. 日期格式:
- Oracle默认日期格式可能与需求不符,可以使用`ALTER SESSION SET NLS_DATE_FORMAT`设置自定义日期格式,如:`ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd';`
7. 数据插入与查询:
- 插入数据时,允许指定列并提供值,例如:`INSERT INTO student (col1, col2, col3) VALUES ('a', 'b', NULL);`
- 查询非空值:`SELECT * FROM WHERE col1 IS NOT NULL;`
8. 事务管理:
- 设置保存点:`SAVEPOINT aa;`用于记录当前事务的一个状态点。
- 回滚到保存点:`ROLLBACK TO aa;`撤销到保存点之间的所有更改。
- 事务结束时,未提交的更改在退出或系统异常时会丢失。
9. 数据删除:
- `TRUNCATE TABLE`快速删除表中所有数据,不记录日志,效率高但不可回滚。
- `DELETE`语句删除数据并记录日志,可回滚,但速度较慢。
10. SQL执行时间:
- 使用`SET TIMING ON;`开启查询执行时间的显示,方便性能分析。
11. 空值处理:
- `NVL`函数用于处理NULL值,如`NVL(aa, 'default_value')`,当`aa`为空时返回`default_value`。
12. 查询子句:
- 在`INSERT INTO`中,可以使用`SELECT * FROM`从一个表复制所有数据到另一个表。
13. 空值判断:
- 当判断字段`aa`是否为NULL时,使用`aa IS NULL`或`aa IS NOT NULL`。
这些知识点涵盖了Oracle数据库的基本操作,包括账户管理、数据类型、表结构操作、日期格式、数据插入和查询、事务控制、数据删除、性能监控以及空值处理等方面,对于理解和使用Oracle数据库至关重要。